Meldas 64
Meldas 64
Meldas 64
C6/C64/C64T
PROGRAMMING MANUAL
BNP-B2260B(ENG)
Introduction
This manual is a guide for using the MELDAS C6/C64/C64T.
Programming is described in this manual, so read this manual thoroughly before starting
programming. Thoroughly study the "Precautions for Safety" on the following page to
ensure safe use of the this NC unit.
CAUTION
For items described in "Restrictions" or "Usable State", the instruction manual issued by the
machine manufacturer takes precedence over this manual.
An effort has been made to note as many special handling methods in this user's manual. Items
not described in this manual must be interpreted as "not possible".
This manual has been written on the assumption that all option functions are added.
Refer to the specifications issued by the machine manufacturer before starting use.
Refer to the Instruction Manual issued by each machine manufacturer for details on each
machine tool.
Some screens and functions may differ depending on the NC system or its version, and some
functions may not be possible. Please confirm the specifications before use.
General precautions
(1)
WARNING
CAUTION
When the user may be subject to injuries or when physical damage may
occur if handling is mistaken.
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 manufacturer takes precedence over this manual.
An effort has been made to describe special handling of this machine, but items that are
not described must be interpreted as "not possible".
This manual is written on the assumption that all option functions are added. Refer to the
specifications issued by the machine manufacturer before starting use.
Refer to the Instruction Manual issued by each machine manufacturer for details on each
machine tool.
Some screens and functions may differ depending on the NC system or its version, and
some functions may not be possible. Please confirm the specifications before use.
2. Items related to operation
Before starting actual machining, always carry out dry operation to confirm the machining
program, tool offset amount and workpiece offset amount, etc.
If the workpiece coordinate system offset amount is changed during single block stop, the
new setting will be valid from the next block.
(Continued on next page)
CAUTION
Turn the mirror image ON and OFF at the mirror image center.
If the tool offset amount is changed during automatic operation (including during single
block stop), it will be validated from the next block or blocks onwards.
3. Items related to programming
The commands with "no value after G" will be handled as "G00".
" ; " "EOB" and " %" "EOR" are explanatory notations. The actual codes are "Line feed"
and "%" for ISO, and "End of block" and "End of Record" for EIA.
When creating the machining program, select the appropriate machining conditions, and
make sure that the performance, capacity and limits of the machine and NC are not
exceeded. The examples do not consider the machining conditions.
Do not change fixed cycle programs without the prior approval of the machine
manufacturer.
When programming the multi-part system, take special care to the movements of the
programs for other part systems.
Contents
Page
1. Control Axes .............................................................................................................................. 1
1.1 Coordinate word and control axis ...................................................................................... 1
1.2 Coordinate systems and coordinate zero point symbols................................................... 2
2. Input Command Units ............................................................................................................... 3
2.1 Input command units.......................................................................................................... 3
2.2 Input setting units ............................................................................................................... 3
3. Data Formats.............................................................................................................................. 4
3.1 Tape codes ........................................................................................................................ 4
3.2 Program formats ................................................................................................................ 7
3.3 Program address check function ....................................................................................... 9
3.4 Tape memory format.......................................................................................................... 9
3.5 Optional block skip ; / ....................................................................................................... 10
3.6 Program/sequence/block numbers ; O, N ....................................................................... 11
3.7 Parity H/V ......................................................................................................................... 12
3.8 G code lists....................................................................................................................... 13
3.9 Precautions before starting machining ............................................................................ 16
4. Buffer Register......................................................................................................................... 17
4.1 Pre-read buffers ............................................................................................................... 17
5. Position Commands................................................................................................................ 18
5.1 Position command methods ; G90, G91.......................................................................... 18
5.2 Inch/metric command change; G20, G21........................................................................ 20
5.3 Decimal point input........................................................................................................... 21
6. Interpolation Functions .......................................................................................................... 25
6.1 Positioning (Rapid traverse); G00.................................................................................... 25
6.2 Linear interpolation; G01.................................................................................................. 31
6.3 Plane selection; G17, G18, G19 ...................................................................................... 33
6.4 Circular interpolation; G02, G03 ...................................................................................... 35
6.5 R-specified circular interpolation; G02, G03.................................................................... 39
6.6 Helical interpolation ; G17 to G19, G02, G03 .................................................................. 41
6.7 Thread cutting .................................................................................................................. 45
6.7.1 Constant lead thread cutting ; G33 .......................................................................... 45
6.7.2 Inch thread cutting; G33........................................................................................... 48
6.8 Uni-directional positioning; G60....................................................................................... 49
7. Feed Functions ........................................................................................................................ 51
7.1 Rapid traverse rate........................................................................................................... 51
7.2 Cutting feed rate............................................................................................................... 51
7.3 F1-digit feed ..................................................................................................................... 52
7.4 Synchronous feed; G94, G95 .......................................................................................... 54
7.5 Feedrate designation and effects on control axes........................................................... 56
7.6 Automatic acceleration/deceleration................................................................................ 59
7.7 Speed clamp .................................................................................................................... 59
7.8 Exact stop check; G09 ..................................................................................................... 60
7.9 Exact stop check mode ; G61.......................................................................................... 63
7.10 Automatic corner override ; G62.................................................................................... 64
7.11 Tapping mode ; G63 ...................................................................................................... 69
7.12 Cutting mode ; G64........................................................................................................ 69
8. Dwell.......................................................................................................................................... 70
8.1 Per-second dwell ; G04.................................................................................................... 70
9. Miscellaneous Functions........................................................................................................ 72
9.1 Miscellaneous functions (M8-digits BCD)........................................................................ 72
9.2 Secondary miscellaneous functions (B8-digits, A8 or C8-digits)..................................... 74
III
1. Control Axes
1.1
1. Control Axes
1.1 Coordinate word and control axis
Function and purpose
In the standard specifications, there are 3 control axes, but, by adding an additional axis, up to 14
axes can be controlled.
The designation of the processing direction responds to those axes and uses a coordinate word
made up of alphabet characters that have been decided beforehand.
X-Y table
+Z
+Z
+Y
+X
Program coordinates
Workpiece
X-Y table
+Y
Bed
Direction of
table movement
+X
Direction of
table movement
+X
Direction of table
movement
+Y
+C
Direction of table
revolution
+Z
+Y +C
+X
Program coordinates
1. Control Axes
1.2
Reference point
-X
Machine
zero point
x1
y1
y3
Work coordinate
system 3 (G56)
y2
1st reference
point
Work coordinate
system 1 (G54)
Work coordinate
system 2 (G55)
x2
x3
y5
Work coordinate
system 6 (G59)
Work coordinate
system 5 (G58)
x
Work
coordinate
system 4
(G57)
x5
Local
coordinate
system
(G52)
y
-Y
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. The input setting units can be selected from the following types common to axes. (For
further details on settings, refer to the Instruction Manual.)
Linear axis
Input unit
parameters
Input command
unit
Min. movement
unit
Input setting unit
Millimeter
Diameter Radius
command command
0.001
0.001
0.0001
0.0001
0.0005
0.001
0.00005
0.0001
0.001
0.001
0.0001
0.0001
#1015 cunit = 10
= 1
#1003 iunit = B
=C
#1003 iunit = B
=C
Inch
Rotation
axis ()
Diameter Radius
command command
0.0001
0.0001
0.001
0.00001
0.00001
0.0001
0.00005
0.0001
0.001
0.000005 0.00001
0.0001
0.0001
0.0001
0.001
0.00001
0.00001
0.0001
(Note 1) Inch/metric conversion is performed in either of 2 ways: conversion from the parameter
screen ("#1041 I_inch: valid only when the power is switched on) and conversion using
the G command (G20 or G21).
However, when a G command is used for the conversion, the conversion applies only to
the input command units and not to the input setting units.
Consequently, the tool offset amounts and other compensation amounts as well as the
variable data should be preset to correspond to inches or millimeters.
(Note 2) The millimeter and inch systems cannot be used together.
(Note 3) During circular interpolation on an axis where the input command units are different, the
center command (I, J, K) and the radius command (R) can be designated by the input
setting units. (Use a decimal point to avoid confusion.)
3. Data Formats
3.1
Tape codes
3. Data Formats
3.1 Tape codes
Function and purpose
The tape command codes used for this controller are combinations of alphabet letters (A, B, C, ...
Z), numbers (0, 1, 2 ... 9) and signs (+, , / ...). These alphabet letters, numbers and signs are
referred to as characters. Each character is represented by a combination of 8 holes which may, or
may not, be present.
These combinations make up what is called codes.
This controller uses, the ISO code (R-840).
(Note 1) If a code not given in the tape code table in Fig. 1 is assigned during operation, program
error (P32) will result.
(Note 2) For the sake of convenience, a semicolon " ; " has been used in the CNC display to
indicate the end of a block (EOB/IF) which separates one block from another. Do not use
the semicolon key, however, in actual programming but use the keys in the following
table instead.
CAUTION
" ; " "EOB" and " %" "EOR" are explanatory notations. The actual codes are "Line feed" and
"%" for ISO, and "End of block" and "End of Record" for EIA.
Detailed description
ISO
Screen display
End of block
LF or NL
End of record
Key used
3. Data Formats
3.1
Tape codes
Operator information print-out example
Information in this section is ignored and nothing is executed.
% 10cm ;
(EOR)
2m
(EOB)
(EOB)
Initial block
;
(EOB)
; 10cm %
(EOB)
Last block
(EOR)
2m
If a tape handler is not used, there is no need for the 2-meter dummy at both ends of the tape
and for the head EOR (%) code.
3. Data Formats
3.1
Tape codes
3 2 1
Channel No.
1
2
3
4
5
6
7
8
9
0
A
B
C
D
E
F
G
H
I
J
K
L
M
N
O
P
Q
R
S
T
U
V
W
X
Y
Z
+
.
,
/
%
LF(Line Feed) or NL
( (Control Out)
) (Control In)
:
#
*
=
[
]
SP(Space)
CR(Carriage Return)
BS(Back Space)
HT(Horizontal Tab)
&
!
$
(Apostrophe)
;
<
>
?
@
DEL(Delete)
NULL
DEL(Delete)
Code A are stored on tape but an error results (except when they are used in the comment
section) during operation.
The B codes are non-working codes and are always ignored. Parity V check is not executed.
Table of tape codes
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
*
Numerals
Alphabet (address)
Word configuration
The alphabet letter at the head of the word is the address. It defines the meaning of the
numerical information which follows it.
For details of the types of words and the number of significant digits of words used for this
controller, refer to the "format details".
(2) Blocks
A block is a collection of words. It includes the information which is required for the machine to
execute specific operations. One block unit constitutes a complete command. The end of each
block is marked with an EOB (end-of-block) code.
(Example 1:)
G0X - 1000 ;
G1X - 2000F500 ;
2 blocks
(Example 2:)
(G0X - 1000 ; )
G1X - 2000F500 ;
(3) Programs
A program is a collection of several blocks.
(Note 1) When there is no number following the alphabetic character in the actual program,
the numeric value following the alphabetic character is handled as a 0.
(Example) G28XYZ; G28X0Y0Z0;
7
3. Data Formats
3.2
Item
Program number
Sequence number
Preparatory function
Input
Movement setting unit
axis
Input
setting unit
Input
Additional setting unit
axis
Input
setting unit
Input
setting unit
Dwell
Input
setting unit
Feed
function
Fixed
cycle
Input
setting unit
Input
setting unit
Input
setting unit
Input
setting unit
Metric command
Program formats
Inch command
O8
N5
G2/G21
0.01(), mm
0.001(), mm/
0.0001 inch
0.01(), mm
0.001(), mm/
0.0001 inch
0.01(rev), mm
X53 P8
0.001(rev),
mm/
0.0001 inch
X53 P8
0.01(), mm
F53
0.001(), mm/
0.0001 inch
F53
0.01(), mm
R+52 Q52 P8 L4
0.001(), mm/
0.0001 inch
R+53 Q53 P8 L4
X53 P8
F44
Tool offset
Miscellaneous function
Spindle function
Tool function
2nd miscellaneous function
Subprogram
Variable number
R+44 Q+44 P8 L4
H3/D3
M8
S6/S8
T8
A8/B8/C8
P8H5L4
#5
3. Data Formats
3.3
The program can be checked in word units when operating machining programs.
Detailed description
3. Data Formats
3.5
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.
Example : N20 G1 X25./Y25. ;..... NG (User macro, a division instruction; a program error
results.)
/N20 G1 X25. Y25. ; .... OK
(2) Parity checks (H and V) are conducted regardless of the optional block skip switch position.
(3) The optional block skip is processed immediately before the pre-read buffer.
Consequently, it is not possible to skip up to the block which has been read into the pre-read
buffer.
(4) This function is valid even during a sequence number search.
(5) All blocks with the "/" code are also input and output during tape storing and tape output,
regardless of the position of the optional block skip switch.
10
3. Data Formats
3.6
Program/sequence/block numbers ; O, N
These numbers are used for monitoring the execution of the machining programs and for calling
both machining programs and specific stages in machining programs.
(1) Program numbers are classified by workpiece correspondence or by subprogram units, and
they are designated by the address "0" followed by a number with up to 8 digits.
(2) Sequence numbers are attached where appropriate to command blocks which configure
machining programs, and they are designated by the address "N" followed by a number with
up to 5 digits.
(3) Block numbers are automatically provided internally. They are preset to zero every time a
program number or sequence number is read, and they are counted up one at a time unless
program numbers or sequence numbers are commanded in blocks which are subsequently
read.
Consequently, all the blocks of the machining programs given in the table below can be
determined without further consideration by combinations of program numbers, sequence
numbers and block numbers.
Machining program
O12345678 (DEMO, PROG) ;
G92 X0 Y0 ;
G90 G51 X-150. P0.75 ;
N100 G00 X-50. Y-25. ;
N110 G01 X250. F300 ;
Y-225. ;
X-50. ;
Y-25.;
N120 G51 Y-125. P0.5 ;
N130 G00 X-100. Y-75. ;
N140 G01 X-200. ;
Y-175. ;
X-100. ;
Y-75. ;
N150 G00 G50 X0 Y0 ;
N160 M02 ;
%
Program No.
12345678
12345678
12345678
12345678
12345678
12345678
12345678
12345678
12345678
12345678
12345678
12345678
12345678
12345678
12345678
12345678
11
Monitor display
Sequence No.
0
0
0
100
110
110
110
110
120
130
140
140
140
140
150
160
Block No.
0
1
2
0
0
1
2
3
0
0
0
1
2
3
0
0
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.
(a) ISO code
When a code with an odd number of holes in a significant data section has been detected.
Parity H error example
(2) Parity V
A parity V check is done during tape operation, tape input and sequence number search when
the I/O PARA #9n15 (n is the unit No.1 to 5) parity V check function is set to "1". It is not done
during memory operation.
A parity V error occurs in the following case: when the number of codes from the first
significant code to the EOB (;) in the significant data section in the vertical direction of the tape
is an odd number, that is, when the number of characters in one block is odd.
When a parity V error is detected, the tape stops at the code following the EOB (;).
(Note 1) Among the tape codes, there are codes which are counted as characters for parity
and codes which are not counted as such. For details, refer to the "Table of tape
codes" in "3.1 Tape Codes".
(Note 2) Any space codes which may appear within the section from the initial EOB code to
the address code or "/" code are counted for parity V check.
12
3. Data Formats
3.8
G code lists
G code
Group
Function
00
01
Positioning
* 01
01
Linear interpolation
02
01
03
01
04
00
Dwell
09
00
10
00
11
00
12
00
13
00
* 17
02
18
02
19
02
20
06
Inch command
* 21
06
Metric command
00
28
00
29
00
30
00
30.1
00
30.2
00
30.3
00
30.4
00
30.5
00
30.6
00
31
00
31.1
00
31.2
00
31.3
00
01
Thread cutting
06
07
08
14
15
16
22
23
24
25
26
27
32
33
13
3. Data Formats
3.8
G code
Group
G code lists
Function
34
00
35
00
36
00
37
00
37.1
00
38
00
39
00
* 40
07
41
07
42
07
43
08
44
08
* 49
08
* 50.1
19
51.1
19
52
00
53
00
* 54
12
55
12
56
12
57
12
58
12
59
12
54.1
12
60
00
Uni-directional positioning
61
13
61.1
13
62
13
63
13
Tapping mode
* 64
13
Cutting mode
65
00
66
14
66.1
14
* 67
14
70
71
72
73
09
74
09
75
76
77
78
79
* 80
09
81
09
14
3. Data Formats
3.8
G code
Group
G code lists
Function
82
09
83
09
84
09
85
09
86
09
87
09
88
09
89
09
90
03
* 91
03
92
00
93
* 94
05
95
05
96
17
* 97
17
* 98
10
99
10
113
00
114.1
00
115
00
116
00
117
00
00
100 ~ 255
(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-part 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 manufacturer.
15
3. Data Formats
3.8
G code lists
(Note 6) Whether the modal is initialized differs for each reset input.
(1) "Reset 1"
The modal is initialized when the reset initialization parameter (#1151 rstinit) is ON.
(2) "Reset 2 "and "Reset and Rewind"
The modal is initialized when the signal is input.
(3) Reset at emergency stop release
Conforms to "Reset 1".
(4) When an automatic reset is carried out at the start of individual functions, such as
reference point return.
Conforms to "Reset and Rewind".
CAUTION
The commands with "no value after G" will be handled as "G00".
CAUTION
When creating the machining program, select the appropriate machining conditions so that the
machine, NC performance, capacity and limits are not exceeded. The examples do not allow
for the machining conditions.
Carry out dry operation before actually machining, and confirm the machining program, tool
offset and workpiece offset amount.
16
4. Buffer Register
4.1
Pre-read buffers
4. Buffer Register
Analysis processing
Max. 5 execution blocks
Pre-read
buffer 5
buffer 4
buffer 3
Memory
buffer 2
Mode
switching
Keyboard
buffer 1
Arithmetic
processing
MDI data
Note : Data equivalent to 1 block are stored in 1 pre-read buffer.
During automatic processing, the contents of 1 block are normally pre-read so that program
analysis processing is conducted smoothly. However, during tool radius compensation, a
maximum of 5 blocks are pre-read for the intersection point calculation including interference
check.
The specifications of the data in 1 block are as follows:
(1) The data of 1 block are stored in this buffer.
(2) Only the significant codes in the significant data section are read into the pre-read buffer.
(3) When codes are sandwiched in the control in and control out, and the optional block skip
function is ON, the data extending from the "/" (slash) code up to the EOB code are not read
into the pre-read buffer.
(4) The pre-read buffer contents are cleared with resetting.
(5) When the single block function is ON during continuous operation, the pre-read buffer stores
the following block data and then stops operation.
Precautions
(1) Depending on whether the program is executed continuously or by single blocks, the timing of
the valid/invalid for the external control signals for the block skip and others will differ.
(2) If the external control signal such as optional block skip is turned ON/OFF with the M
command, the external control operation will not be effective on the program pre-read with the
buffer register.
(3) According to the M command that operates the external controls, it prohibits pre-reading, and
the recalculation is as follows:
The M command that commands the external controls is distinguished at the PLC, and the
"recalculation request" for PLC -> NC interface table is turned ON.
(When the "recalculation request" is ON, the program that has been pre-read is reprocessed.)
17
5. Position Commands
5.1
5. Position Commands
5.1 Position command methods ; G90, G91
Function and purpose
By using the G90 and G91 commands, it is possible to execute the next coordinate commands
using absolute values or incremental values.
The R-designated circle radius and the center of the circle determined by I, J, K are always
incremental value commands.
Command format
G91
:Incremental command
:Additional axis
Detailed description
Y 200.
Tool
100. N1
N2
W
200.
100.
X
300.
Y 200.
N 3 X100. Y100.;
The axis moves to the workpiece
coordinate system X = 100mm and
Y = 100mm position.
100.
N3
(G91)
N 3 X100. Y50.;
100.
200.
X
300.
18
5. Position Commands
5.1
(3) Since multiple commands can be issued in the same block, it is possible to command specific
addresses as either absolute values or incremental
values.
Y
200.
19
5. Position Commands
5.2
These G commands are used to change between the inch and millimeter (metric) systems.
Command format
G20/G21;
G20
: Inch command
G21
: Metric command
Detailed description
G20 and G21 selection is meaningful only for linear axes and it is meaningless for rotary axes.
The input unit for G20 and G21 will not change just by changing the command unit.
In other words, if the machining program command unit changes to an inch unit at G20 when the
initial inch is OFF, the setting unit of the tool offset amount will remain metric. Thus, take note to the
setting value.
(Example 1) Relationship between input command units and G20/G21 commands
(with decimal point input type 1)
Axis
X
Y
Z
X
Y
Z
Input command
unit type (cunit)
10
10
10
1
1
1
Command
example
X100;
Y100;
Z100;
X100;
Y100;
Z100;
G21
0.100 mm
0.100 mm
0.100 mm
0.0100mm
0.0100mm
0.0100mm
G20
0.254 mm
0.254 mm
0.254 mm
0.0254 mm
0.0254 mm
0.0254 mm
G21
0.0039 inch
0.0039 inch
0.0039 inch
0.00039inch
0.00039inch
0.00039inch
G20
0.0100 inch
0.0100 inch
0.0100 inch
0.00100inch
0.00100inch
0.00100inch
(Note 1) When changing between G20 and G21 with program commands, it is necessary in
advance, to convert the parameters, variables, and the offsets for the tool diameter, tool
position, tool length, to the units in the input settings of the input setting unit system (for
each axis) that have inch or metric commands, and make the settings using the
parameter tape.
(Example 2) Input setting unit #1015 cunit=10, #1041 I_inch=0
Position command unit ..... 0.001mm
Compensation amount setting unit
..... When the compensation amount is 0.05mm for
0.001mm
In the above example, when changing from G21 to G20, the compensation amount
.
must be set to 0.002 (0.05 25.4 =. 0.002).
(Note 2) Since the data before the change will be executed at the command unit after the change,
command the F speed command for the change so that it is the correct speed command
for the command unit system applied after the change.
20
5. Position Commands
5.3
This function enables the decimal point command to be input. It assigns the decimal point in
millimeter or inch units for the machining program input information that defines the tool paths,
distances and speeds. A parameter "#1078 Decpt2" selects whether type 1 (minimum input
command unit) or type 2 (zero point) is to apply for the least significant digit of data without a
decimal point.
Command format
: Metric command
: Inch command
Detailed description
(1) The decimal point command is valid for the distances, angles, times, speeds and scaling rate,
in machining programs. (Note, only after G51)
(2) In decimal point input type 1 and type 2, the values of the data commands without the decimal
points are shown in the table below.
Command
X1 ;
Type 1
1 (m, 104 inch, 103 )
0.1
Type 2
1 (mm, inch, )
1
(3) The valid addresses for the decimal points are X, Y, Z, U, V, W, A, B, C, I, J, K, E, F, P, Q, and
R. However, P is valid only during scaling. For details, refer to the list.
(4) See below for the number of significant digits in decimal point commands. (Input command
unit cunit = 10)
Movement
command (linear)
Decimal
Integer
part
MM
0. to
(milli99999.
meter)
INCH
0. to 9999.
(inch)
Movement
command (rotary)
Decimal
Integer
part
.000 to
.999
0. to
99999.
.0000 to
.9999
99999.
(359.)
.000
to.999
Feed rate
Dwell
Integer
Decimal
part
Integer
Decimal
part
0. to
60000.
.00 to .99
0. to
99999.
.000 to
.999
.000 to
.999
.0 to .99
.000 to
.999
.0 to .999 0. to 2362.
(5) The decimal point command is valid even for commands defining the variable data used in
subprograms.
(6) While the smallest decimal point command is validated, the smallest unit for a command
without a decimal point designation is the smallest command input unit set in the
specifications (1m, 10m, etc.) or mm can be selected. This selection can be made with
parameter "#1078 Decpt2".
(7) Decimal point commands for decimal point invalid addresses are processed as integer data
only and everything below the decimal point is ignored. Addresses which are invalid for the
decimal point are D, H, L, M, N, O, S and T. All variable commands, however, are treated as
data with decimal points.
21
5. Position Commands
5.3
Example of program
When 1 = 1m
Program example
G0X123.45
(decimal points are all mm X123.450mm
points)
X12.345mm
G0X12345
(last digit is 1m
unit)
#111 = 123, #112 = 5.55
X123.000mm,
X#111 Y#112
Y5,5550mm
#113 = #111+#112
#113 = 128.550
(addition)
#114 = #111#112
#114 = 117.450
(subtraction)
#115 = #111#112
#115 = 682.650
(multiplication)
#116 = #111/#112
#116 = 22.162
#117 = #112/#111
#117 = 0.045
(division)
When 1 = 10m
Decimal point
command 2
1 = 1mm
X123.450mm
X123.450mm
X123.450mm
X12345.000mm
X123.000mm,
Y5.550mm
X123.000mm,
Y5.550mm
#113 = 128.550
#113 = 128.550
#114 = 117.450
#114 = 117.450
#115 = 682.650
#115 = 682.650
#116 = 22.162
#117 = 0.045
#116 = 22.162
#117 = 0.045
If a command does not use a decimal point at an address where a decimal point command is valid
in the table on the following page, it is handled differently between decimal point input I and II
modes as explained below.
A command using a decimal point is handled the same way in either the decimal point input I or II
mode.
(1) Decimal point input I
The least significant digit place of command data corresponds to the command unit.
(Example) Command "X1" in the 1m system is equivalent to command "X0.001".
(2) Decimal point input II
The least significant digit place of command data corresponds to the decimal point.
(Example) Command "X1" in the 1m system is equivalent to command "X1.".
(Note) When a four rules operator is contained, the data will be handled as that with a decimal
point.
(Example) When the min. input command unit is 1m :
G0 x 123 + 0 ; ... X axis 123mm command. It will not be 123m.
22
5. Position Commands
5.3
Decimal point
command
Valid
Invalid
Valid
Invalid
Valid
Invalid
Valid
Invalid
Valid
Invalid
Valid
E
F
Application
Coordinate position data
Revolving table, miscellaneous function code
Angle data
Data settings, axis numbers (G10)
Coordinate position data
Revolving table, miscellaneous function code
Coordinate position data
Revolving table, miscellaneous function code
Corner chamfering amount
Automatic tool length measurement, deceleration range d
Invalid
Invalid
Valid
Valid
Feed rate
Thread lead
Valid
Invalid
Invalid
Invalid
Invalid
Invalid
,c
Valid
Remarks
Valid
Valid
Valid
Valid
Valid
Valid
Valid
Valid
Valid
Invalid
Invalid
Invalid
Invalid
L50
Invalid
4 bytes
Invalid
(Note 1) All decimal points are valid for the user macro arguments.
23
5. Position Commands
5.3
Address
Decimal point
command
Invalid
Sequence numbers
Invalid
Invalid
Program numbers
O
P
Valid
Dwell time
Remarks
Parameter
Invalid
Invalid
Invalid
Invalid
Invalid
Invalid
Invalid
Invalid
Invalid
Valid
Valid
Valid
Valid
Valid
Valid
Valid
Valid
Invalid
Application
Invalid
Invalid
R
,R
Valid
Valid
Invalid
Invalid
Invalid
Invalid
Invalid
Valid
Valid
Dwell time
Valid
Valid
Valid
Valid
Dwell time
Valid
Valid
(Note 1) All decimal points are valid for the user macro arguments.
24
2 bytes
6. Interpolation Functions
6.1
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 or G33 command in the 01 group is issued. If the next
command is G00, all that is required is simply that the coordinate words be specified.
(2) In the G00 mode, the tool is always accelerated at the start point of the block and decelerated at
the end point. Refer to (Note4) of "Example of program".
(3) If multiple axes are controlled, the next block will be executed after confirming that the position
error amounts of all the moving axes become within the specified in-position width for each part
system.
(4) Any G command (G72 to G89) in the 09 group is cancelled (G80) by the G00 command.
(5) 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.
(6) Refer to "Operation during in-position check" for the programmable in-position check
positioning command.
CAUTION
The commands "no value after G" will be handled as "G00" .
25
6. Interpolation Functions
6.1
Example of program
Tool
+300
End point
(-120,+200,+300)
+150
Start point
(+150,-100,+150)
-100
-120
+150
Unit : mm
+200
(Note 1) When parameter "#1086 G0Intp" is set to "0", the path along which the tool is positioned
is the shortest path connecting the start and end points. The positioning speed is
automatically calculated so that the shortest distribution time is obtained in order that the
commanded speeds for each axis do not exceed the rapid traverse rate.
When for instance, the Y-axis and Z-axis rapid traverse rates are both 9600mm/min, the
tool will follow the path in the figure below if the following is programmed:
G91 G00 X-300000 Y200000 ; (With an input setting unit of 0.001mm)
End point
200
Y
fy
X
Start point
(Unit : mm)
300
fx
Actual X axis rate : 9600mm/min
26
6. Interpolation Functions
6.1
(Note 2) When parameter "#1086 G0Intp" is set to 1, the tool will move along the path from the
start point to the end point at the rapid traverse rate of each axis.
When, for instance, the Y-axis and Z-axis rapid traverse rates are both 9600mm/min, the
tool will follow the path in the figure below if the following is programmed:
G91 G00 X-300000 Y200000 ; (With an input setting unit of 0.001mm
End point
200
Y
fy
X
Start point
(Unit : mm)
300
fx
Actual X axis rate : 9600mm/min
(Note 3) The rapid traverse rate for each axis with the G00 command differs according to the
individual machine and so reference should be made to the machine specifications
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".
When inpos = 1
Upon completion of the rapid traverse (G00), the next block will be executed after
confirming that the remaining distances for each axis are below the fixed amounts.
(Refer to the following drawing.)
The confirmation of the remaining distance should be done with the imposition width,
LR. LR is the setting value for the servo parameter "#2224 SV024".
The purpose of checking the rapid traverse deceleration is to minimize the time it takes
for positioning. The bigger the setting value for the servo parameter "#2224 SV024",
the longer the reduced time is, but the remaining distance of the previous block at the
starting time of the next block also becomes larger, and this could become an obstacle
in the actual processing work. The check for the remaining distance is done at set
intervals. Accordingly, it may not be possible to get the actual amount of time reduction
for positioning with the setting value SV024.
27
6. Interpolation Functions
6.1
When inpos = 0
Upon completion of the rapid traverse (G00), the next block will be executed after the
deceleration check time (Td) has elapsed. The deceleration check time (Td) is as
follows, depending on the acceleration/deceleration type.
Td = Ts +
Next block
Previous block
Ts
Td
Previous block
Td = 2 Ts +
Next block
2 Ts
Td
Ts
Ts : Acceleration/deceleration
time constant
Td : Deceleration check time
Td = 2 Ts + ( 0 ~ 14ms)
Previous block
Td = 2 Ts +
Next block
Ts
Td
Ts : Acceleration/deceleration
time constant
Td : Deceleration check time
Td = 2 Ts + ( 0 ~ 14ms)
28
6. Interpolation Functions
6.1
Execution of the next block starts after confirming that the position error amount of the positioning
(rapid traverse: G00) command block and the block that carries out deceleration check with the
linear interpolation (G01) command is less than the in-position width issued in this command.
The in-position width in this command is valid only in the command block, so the deceleration
check method set in base specification parameter "#1193 inpos" is used for blocks that do not have
the in-position width command.
When there are several movement axes, the system confirms that the position error amount of
each movement axis in each system is less than the in-position width issued in this command
before executing the next block.
The differences of when the in-position check is validated with the parameter (base specification
parameter "#1193 inpos" set to 1; refer to next page for in-position width) and when validated with
this command are shown in the following drawing.
Differences between in-position check with this command and in-position check with parameter
In-position check with ",I" address command
After starting deceleration of the command
system, the position error amount and
commanded in-position width are compared.
Servo
Command
Servo
In-position width
(Error amount of command
end point and machine
position)
Block being
executed
Ts
Command
In-position width
(Servo system position
error amount)
Block being
executed
Ts
Td
Td
Start of in-position
check with ",I" address command
29
Start of in-position
check with parameter
6. Interpolation Functions
6.1
When the servo parameter "#2224 SV024" setting value is smaller than the setting value of the G0
in-position width "#2077 G0inps" and the G1 in-position width "#2078 G1inps", the in-position
check is carried out with the G0 in-position width and the G1 in-position width.
In-position check using the
G0inps value
Command to motor
Command to motor
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 command 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.
30
6. Interpolation Functions
6.2
Linear interpolation
Detailed description
(1) Once this command is issued, the mode is maintained until another G function (G00, G02,
G03, G33) in the 01 group which changes the G01 mode is issued. Therefore, if the next
command is also G01 and if the feedrate is the same, all that is required to be done is to
specify the coordinate words. If no F command is given in the first G01 command block,
program error (P62) results.
(2) The feedrate for a rotary axis is commanded by /min (decimal point position unit). (F300 =
300/min)
(3) The G functions (G70 - G89) in the 09 group are cancelled (G80) by the G01 command.
31
6. Interpolation Functions
6.2
Linear interpolation
Example of program
30
P2
P3
30
P1
20
20
20
Unit: mm
Input setting unit: 0.001mm
P4
P0
G90
G00
G01
X20000
X20000
X30000
X-20000
X-30000 ;
Y20000 ;
Y30000 F300
;
Y-30000 ;
P0 P1
P1 P2
P2 P3
P3 P4
P4 P1
This command commands the in-position width for the linear interpolation command from the
machining program.
The commanded in-position width is valid in the linear interpolation command only when carrying
out deceleration check.
When the error detect switch is ON.
When G09 (exact stop check) is commanded in the same block.
When G61 (exact stop check mode) is selected.
G01 X__ Y__ Z__ F__ , I__ ;
In-position width
Feedrate
Linear interpolation coordinate value of each axis
(Note 1)
Refer to the section "6.1 Positioning (rapid traverse); G00" for details on the in-position
check operation.
32
6. Interpolation Functions
6.3
Plane selection
The plane to which the movement of the tool during the circle interpolation (including helical
cutting) and tool diameter compensation command belongs is selected.
By registering the basic three axes and the corresponding parallel axis as parameters, a plane can
be selected by two axes that are not the parallel axis. If the rotary axis is registered as a parallel
axis, a plane that contains the rotary axis can be selected.
The plane selection is as follows:
Plane that executes circular interpolation (including helical cutting)
Plane that executes tool diameter compensation
Plane that executes fixed cycle positioning.
Command format
G17 ;
G18 ;
G19 ;
#1026 to 1028
base_I,J,K
#1029 to 1039
aux_I,J,K
33
6. Interpolation Functions
6.3
Plane selection
In Table 1,
I is the horizontal axis for the G17 plane or the vertical axis for the G18 plane
J is the vertical axis for the G17 plane or the horizontal axis for the G19 plane
K is the horizontal axis for the G18 plane or the vertical axis for the G19 plane
In other words,
G17 ..... IJ plane
G18 ..... KI plane
G19 ..... JK plane
(1) The axis address commanded in the same block as the plane selection (G17, G18, G19)
determines which basic axis or parallel axis is used for the plane selection.
For the parameter registration example in Table 1.
G17X__Y__ ;
XY plane
G18X__V__ ;
VX plane
G18U__V__ ;
VU plane
G19Y__Z__ ;
YZ plane
G19Y__V__ ;
YV plane
(2) The plane will not changeover at a block where a plane selection G code (G17, G18, G19) is
not commanded.
G17X__Y__ ;
XY plane
Y__Z__ ;
XY plane (plane does not change)
(3) I f the axis address is omitted in the block where the plane selection G code (G17, G18, G19)
is commanded, it will be viewed as though the basic three axes address has been omitted.
For the parameter registration example in Table 1.
G17 ;
XY plane
G17U__ ;
UY plane
G18U__ ;
ZU plane
G18V__ ;
VX plane
G19Y__ ;
YZ plane
G19V__ ;
YV plane
(4) The axis command that does not exist in the plane determined by the plane selection G code
(G17, G18, G19) is irrelevant to the plane selection.
For the parameter registration example in Table 1.
G17U__Z__ ;
(5) If the above is commanded, the UY plane will be selected, and Z will move regardless of the
plane.
If the basic axis and parallel axis are commanded in duplicate in the same block as the plane
selection G code (G17, G18, G19), the plane will be determined in the priority order of basic
axis and parallel axis.
For the parameter registration example in Table 1.
G17U__Y__W__-;
If the above is commanded, the UY plane will be selected, and W will move regardless of the
plane.
(Note 1) The plane set with parameter "#1025 I_plane" will be selected when the power is
turned ON or reset.
34
6. Interpolation Functions
6.4
Circular interpolation
G02
G03
Xx, Yy
Ii, Jj
Ff
: Clockwise (CW)
: Counterclockwise (CCW)
: End point
: Arc center
: Feedrate
For the arc command, the arc end point coordinates are assigned with addresses X, Y (or Z, or
parallel axis X, Y, Z), and the arc center coordinate value is assigned with addresses I, J (or K).
Either an absolute value or incremental value can be used for the arc end point coordinate value
command, but the arc center coordinate value must always be commanded with an incremental
value from the start point.
The arc center coordinate value is commanded with an input setting unit. Caution is required for
the arc command of an axis for which the input command value differs. Command with a decimal
point to avoid confusion.
35
6. Interpolation Functions
6.4
Circular interpolation
Detailed description
(1) G02 (or G03) is retained until another G command (G00, G01 or G33) in the 01 group that
changes its mode is issued.
The arc rotation direction is distinguished by G02 and G03.
G02 Clockwise (CW)
G03 Counterclockwise (CCW)
Z
G3
G2
G3
G3
G2
G2
G03
G03
G03
G02
G02
G02
X
G18(Z-X)plane
G17(X-Y)plane
Y
G19(Y-Z)plane
(2) An arc which extends for more than one quadrant can be executed with a single block
command.
(3) The following information is needed for circular interpolation.
(a) Plane selection................... : Is there an arc parallel to one of the XY, ZX or YZ planes?
(b) Rotation direction ............... : Clockwise (G02) or counterclockwise (G03)?
(c) Arc end point coordinates .. : Given by addresses X, Y, Z
(d) Arc center coordinates ....... : Given by addresses I, J, K (incremental commands)
(e) Feed rate ............................ : Given by address F
36
6. Interpolation Functions
6.4
Circular interpolation
Example of program
(Example 1)
+Y
Y axis
Feedrate
F = 500mm/min
Circle center
J = 50mm
+X
X axis
Start point/end point
Circle command
(Example 2)
Y axis
Feedrate
F = 500mm/min
+Y
Arc center
J = 50mm
X axis
End point
X50 Y50mm
+X
Start point
37
3/4 command
6. Interpolation Functions
6.4
Circular interpolation
Plane selection
The planes in which the arc exists are the following three planes (refer to the detailed drawings),
and are selected with the following method.
XY plane
G17; Command with a (plane selection G code)
ZX plane
G18; Command with a (plane selection G code)
YZ plane
G19; Command with a (plane selection G code)
Precautions for circular interpolation
(1) The terms "clockwise" (G02) and "counterclockwise" (G03) used for arc operations are
defined as a case where in a right-hand coordinate system, the negative direction is viewed
from the position direction of the coordinate axis which is at right angles to the plane in
question.
(2) When all the end point coordinates are omitted or when the end point is the same position as
the start point, a 360 arc (full circle) is commanded when the center is commanded using I, J
and K.
(3) The following occurs when the start and end point radius do not match in an arc command :
(a) Program error (P70) results at the arc start point when error R is greater than parameter
"#1084 RadErr".
(G91) G02X9.899I 5. ;
Alarm stop
Start point
Center
Start point radius
End point
(b) Spiral interpolation in the direction of the commanded end point results when error R is
less than the parameter value.
(G91) G02X9.9I 5. ;
Spiral interpolation
#1084 RadErr parameter value 0.100
Start point radius = 5.000
End point radius = 4.900
Error R = 0.100
Center
Start point
End point
38
6. Interpolation Functions
6.5
Along with the conventional circular interpolation commands based on the arc center coordinate (I,
J, K) designation, these commands can also be issued by directly designating the arc radius R.
Command format
G02 (G03) Xx Yy Rr Ff ;
x
y
r
f
The arc radius is commanded with an input setting unit. Caution is required for the arc command of
an axis for which the input command value differs. Command with a decimal point to avoid
confusion.
Detailed description
The arc center is on the bisector line which is perpendicular to the line connecting the start and end
points of the arc. The point, where the arc with the specified radius whose start point is the center
intersects the perpendicular bisector line, serves as the center coordinates of the arc command.
If the R sign of the commanded program is plus, the arc is smaller than a semisphere; if it is minus,
the arc is larger than a semisphere.
02
Center
point
Center point
L
Start point
End point
The following condition must be met with an R-specified arc interpolation command:
L/(2xr) 1
39
6. Interpolation Functions
6.5
Example of program
(Example 1)
(Example 2)
(Example 3)
(Example 4)
40
6. Interpolation Functions
6.6
Helical interpolation
While circular interpolating with G02/G03 within the plane selected with the plane selection G code
(G17, G18, G19), the 3rd axis can be linearly interpolated.
Command format
G17 G02 (G03) Xx1 Yy1 Zz1 Ii1 Jj1 Pp1 Ff1 ;
G17 G02 (G03) Xx2 Yy2 Zz2 Rr2 Ff2 ;
The arc center coordinate value and arc radius value are commanded with an input setting input.
Caution is required for the helical interpolation command of an axis for which the input command
value differs.
Command with a decimal point to avoid confusion.
41
6. Interpolation Functions
6.6
Helical interpolation
Detailed description
Z axis
e
P1 time
End point
Z1
Second time
Y axis
First time
X
Start point
X axis
(1) For this command, command a linear axis (multiple axes can be commanded) that does not
contain a circular axis in the circular interpolation command.
(2) For feedrate F, command the X, Y Z axis composite element directions speed.
(3) Pitch l is obtained with the following expression.
Z1
l=
(2 P1 + ) / 2
ys
1 ye
tan1
(0 < 2)
= E s = tan
xe
xs
Where xs, ys are the start point coordinates from the arc center
xe, ye are the end point coordinates from the arc center
(4) If pitch No. is 0, address P can be omitted.
(Note) The pitch No. P command range is 0 to 99.
The pitch No. designation (P command) cannot be made with the R-specified arc.
42
6. Interpolation Functions
6.6
Helical interpolation
Example of program
(Example 1)
Z axis
Y axis
z1
X axis
G17 ;
G03 Xx1 Yy1 Zz1 Ii1 Jj1 P0 Ff1 ;
XY plane
XY plane arc, Z axis linear
z1
r1
X axis
G17 ;
G02 Xx1 Yy1 Zz1 Rr1 Ff1 ;
XY plane
XY plane arc, Z axis linear
(Example 3)
Z axis
Y axis
z1
U axis
G17 G03 Uu1 Yy1 Zz1 Ii1 Jj1 P2 Ff1 ; UY plane arc, Z axis linear
(Example 4)
u1
U axis X axis
x1
Z axis
z1
(Note) If the same system is used, the standard axis will perform circular interpolation
and the additional axis will perform linear interpolation.
43
6. Interpolation Functions
6.6
Helical interpolation
(Example 5)
G18 G02 Xx1 Uu1 Yy1 Zz1 Ii1 Jj1 Kk1 ZX plane arc, U axis, Y axis linear
Ff1 ;
(The J command is ignored)
(Note) Two or more axes can be designated for the linear interpolation axis.
44
6. Interpolation Functions
6.7
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 and tapered
thread-cutting. Multiple thread screws, etc., can also be machined by designating the thread
cutting angle.
Command format
G32 Zz Ff1 Qq ;
Zz
Ff
Qq
G33 Zz Ee1 Qq ;
Zz
Ee
Qq
Detailed description
(1) The E command is also used for the number of ridges in inch thread cutting, and whether the
ridge number or precision lead is to be designated can be selected by parameter setting.
(Precision lead is designated by setting the parameter "#1229 set 01/bit 1" to 1.)
(2) The lead in the long axis direction is commanded for the taper thread lead.
Z
LZ
a
LX
When a<45 lead is LZ
When a>45 lead is LX
When a=45 lead can be in either LX or LZ
B (0.001mm)
Command address
F (mm/rev)
Minimum command
unit
1 (= 1.000),
(1.=1.000)
0.001 to
999.999
Command range
E (mm/rev)
C (0.0001mm)
E (threads/
inch)
1 (= 1.00),
(1.=1.00)
F (mm/rev)
1 (= 1.00000),
1 (= 1.0000),
(1.=1.00000)
(1.=1.0000)
0.00001 to
0.00001 to
0.03 to 999.99
99.9999
999.99999
45
E (mm/rev)
1(=1.00000),
(1.=1.00000)
0.000001 to
99.99999
E (threads/
inch)
1 (= 1.000),
(1.=1.000)
0.1 to
2559999.999
6. Interpolation Functions
6.7
Thread cutting
B (0.0001inch)
Command address
F (inch/rev)
Minimum command
unit
1(=1.0000),
(1.=1.0000)
Command range
0.0001 to
99.9999
E (inch/rev)
C (0.00001inch)
E (threads/
inch)
1(=1.000000), 1 (= 1.0000),
(1.=1.000000) (1.=1.0000)
0.000001 to
39370078
0.0255 to
9999.9999
F (inch/rev)
E (inch/rev)
E (threads/
inch)
1(=1.00000),
(1.=1.00000)
1(=1.000000),
(1.=1.000000)
1(=1.0000),
(1.=1.0000)
0.00001 to
3937009
0.000001 to
3937009
0.25401 to
999.9999
(Note 1) It is not possible to assign a lead where the feed rate as converted into per-minute
feed exceeds the maximum cutting feed rate.
(3) The thread cutting will start by the one rotation synchronous signal from the encoder installed
on the spindle.
(4) The spindle speed should be kept constant throughout from the rough cutting until the
finishing.
(5) If the feed hold function is employed during thread cutting to stop the feed, the thread ridges
will lose their shape. For this reason, feed hold does not function during thread cutting.
If the feed hold switch is pressed during thread cutting, block stop will result at the end point of
the block following the block in which thread cutting is completed (no longer G33 mode).
(6) The converted cutting feedrate is compared with the cutting feed clamp rate when thread
cutting starts, and if it is found to exceed the clamp rate, an operation error will result.
(7) In order to protect the lead during thread cutting, a cutting feed rate which has been converted
may sometimes exceed the cutting feed clamp rate.
(8) An illegal lead is normally produced at the start of the thread and at the end of the cutting
because of servo system delay and other such factors.
Therefore, it is necessary to command a thread length which is determined by adding the
illegal lead lengths to the required thread length.
(9) The spindle speed is subject to the following restriction :
Maximum feedrate
1R
Thread lead
Where R Permissible speed of encoder (r/min)
R
: Spindle speed (r/min)
Thread lead
: mm or inches
Maximum feedrate : mm/min or inch/mm (This is subject to the restrictions imposed
by the machine specifications).
(10) The thread cutting start angle is designated with an integer or 0 to 360.
46
6. Interpolation Functions
6.7
Thread cutting
Example of program
Z
10
50
10
N110 G90 G0 X-200. Y-200. S50 M3 ; The spindle center is positioned to the workpiece
center, and the spindle rotates in the forward direction.
N111 Z110. ;
N112 G33 Z40. F6.0 ;
The first thread cutting is executed. Thread lead =
6.0mm
N113 M19 ;
Spindle orientation is executed with the M19
command.
N114 G0X-210. ;
The tool is evaded in the X axis direction.
N115 Z110. M0 ;
The tool rises to the top of the workpiece, and the
program stops with M00.
Adjust the tool if required.
N116 X-200. ;
Preparation for second thread cutting is done.
M3 ;
N117 G04 X5.0 ;
Command dwell to stabilize the spindle rotation if
necessary.
N11 G33 Z40. ;
The second thread cutting is executed.
47
6. Interpolation Functions
6.7
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 and tapered thread-cutting can be performed.
Command format
G33 Zz Ee Qq ;
Zz
Ee
Qq
Detailed description
(1) The number of ridges in the long axis direction is assigned as the number of ridges per inch.
(2) The E code is also used to assign the precision lead length, and whether the ridge number of
precision lead length is to be designated can be selected by parameter setting. (The number
of ridges is designated by setting the parameter "#1229 set01/bit1" to 0.)
(3) The E command value should be set within the lead value range when the lead is converted.
48
6. Interpolation Functions
6.7
Thread cutting
Example of program
50.0mm
2
The G60 command can position the tool at a high degree of precision without backlash error by
locating the final tool position from a single determined direction.
49
6. Interpolation Functions
6.8
Uni-directional positioning
Command format
G60 Xx Yy Zz ;
: Additional axis
Detailed description
(1) The creep distance for the final positioning as well as the final positioning direction is set by
parameter.
(2) After the tool has moved at the rapid traverse rate to the position separated from the final
position by an amount equivalent to the creep distance, it move to the final position in
accordance with the rapid traverse setting where its positioning is completed.
G60a
Positioning position
[Final advance direction]
End point
Start point
Start point
Stop once
G60-a
[G60creep distance]
(3) The above positioning operation is performed even when Z-axis commands have been
assigned for Z-axis cancel and machine lock. (Display only)
(4) When the mirror image function is ON, the tool will move in the opposite direction as far as the
intermediate position due to the mirror image function but the operation within the creep
distance during its final advance will not be affected by mirror image.
(5) The tool moves to the end point at the dry run speed during dry run when the G0 dry run
function is valid.
(6) Feed during creep distance movement with final positioning can be stopped by resetting,
emergency stop, interlock, feed hold and rapid traverse override zero.
The tool moves over the creep distance at the rapid traverse setting. Rapid traverse override
is valid.
(7) Uni-directional positioning is not performed for the drilling axis during drilling fixed cycles.
(8) Uni-directional positioning is not performed for shift amount movements during the fine boring
or back boring fixed cycle.
(9) Normal positioning is performed for axes whose creep distance has not been set by
parameter.
(10) Uni-directional positioning is always a non-interpolation type of positioning.
(11) When the same position (movement amount of zero) has been commanded, the tool moves
back and forth over the creep distance and is positioned at its original position from the final
advance direction.
(12) Program error (P61) results when the G60 command is assigned with an NC system which
has not been provided with this particular specification.
50
7. Feed Functions
7.1
7. Feed Functions
7.1 Rapid traverse rate
Function and purpose
The rapid traverse rate can be set independently for each axis. The available speed ranges are
from 1 mm/min to 1,000,000 mm/min for input setting units of 1m. The upper limit is subject to the
restrictions imposed by the machine specifications.
Refer to the specifications manual of the machine for the rapid traverse rate settings.
The feedrate is valid for the G00, G27, G28, G29, G30 and G60 commands.
Two paths are available for positioning: the interpolation type where the area from the start point to
the end point is linearly interpolated or the non-interpolation type where movement proceeds at the
maximum speed of each axis. The type is selected with parameter "#1086 G0Intp". The positioning
time is the same for each type.
The cutting feedrate is assigned with address F and 8 digits (F8-digit direct designation).
The F8 digits are assigned with a decimal point for a 5-digit integer and a 3-digit fraction. The
cutting feedrate is valid for the G01, G02, G03 and G33 commands.
(Examples)
G1 X100. Y100. F200 ;
G1 X100. Y100. F123.4 ;
G1 X100. Y100. F56.789 ;
Feedrate
200.0mm/min
123.4mm/min
56.789mm/min
Remarks
F200. or F200.000 gives the same rate.
Speed range that can be commanded (when input setting unit is 1m or 10m)
Command mode
F command range
mm/min
0.001 to 1000000.000
inch/min
0.0001 to 39370.0787
/min
0.001 to 1000000.000
Remarks
(Note 1) A program error (P62) results when there is no F command in the first cutting command
(G01, G02, G03) after the power has been switched on.
51
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 only in a G01, G02 or G03 modal.
The F1-digit command can also be used for fixed cycle.
Detailed description
Set the corresponding speed of F1 to F5 with the base specification parameters "#1185 spd_F1" to
"#1189 spd_F5" respectively.
Operation alarm "104" will occur when the feedrate is 0.
(1) Operation method
(a) Make the F1-digit command valid. (Set the base specification parameter "#1079 F1digt" to 1.)
(b) Set F1 to F5. (Base specification parameter "1185 spd_F1" to "#1189 spd_F5")
52
7. Feed Functions
7.3
F1-digit feed
Executed feedrate
G modal
G0
G0
G1
F1 contents
G1
(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.
53
7. Feed Functions
7.4
Synchronous 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.
When the G94 command is issued the per-minute feed rate will return to the designated per-minute
feed (asynchronous feed) mode.
Command format
G94;
G95;
G94
G95
The G95 command is a modal command and so it is valid until the G94 command (per-minute
feed) is next assigned.
(1) The F code command range is as follows.
The movement amount per spindle revolution with synchronous feed (per-revolution feed) is
assigned by the F code and the command range is as shown in the table below.
Metric input
Input unit
system
B (0.001mm)
C (0.0001mm)
Command
mode
Command
address
F (mm/min)
E (mm/rev)
F (mm/min)
E (mm/rev)
Minimum
command unit
1 (= 1.00),
(1. = 1.00)
1 (= 0.01),
(1. = 1.00)
1 (= 1.000),
(1. = 1.000)
1 (= 0.01),
(1. = 1.00)
Command
range
0.01 to 1000000.00
0.001 to 999.999
0.001 to 100000.000
0.0001 to 99.9999
Inch input
Input unit
system
B (0.0001inch)
C (0.00001inch)
Command
mode
Command
address
F (inch/min)
E (inch/rev)
F (inch/min)
E (inch/rev)
Minimum
command unit
1 (= 1.000),
(1. = 1.000)
1 (= 0.001),
(1. = 1.000)
1 (= 1.0000),
(1. = 1.0000)
1 (= 0.001),
(1. = 1.000)
Command
range
0.001 to 100000.0000
0.0001 to 999.9999
0.0001 to
10000.00000
0.00001 to 99.99999
(2) The effective speed (actual movement speed of machine) under per-revolution feed
conditions is given in the following formula (Formula 1).
FC = F N OVR ..... (Formula 1)
Where FC
= Effective rate (mm/min, inch/min)
F
= Commanded feedrate (mm/rev, inch/rev)
N
= Spindle speed (r/min)
OVR = Cutting feed override
When a multiple number of axes have been commanded at the same time, the effective rate
FC in formula 1 applies in the vector direction of the command.
54
7. Feed Functions
7.4
Synchronous feed
(Note 1) The effective rate (mm/min or inch/min), which is produced by converting the
commanded speed, the spindle speed and the cutting feed override into the
per-minute speed, appears as the FC on the monitor 1. Screen of the setting and
display unit.
(Note 2) When the above effective rate exceeds the cutting feed clamp rate, it is clamped at
that clamp rate.
(Note 3) If the spindle speed is zero when synchronous feed is executed, operation alarm
"105" results.
(Note 4) During machine lock high-speed processing, the rate will be 60,000mm/min (or
2,362 inch/min, 60,000 /min) regardless of the commanded speed and spindle
speed. When high-speed processing is not undertaken, the rate will be the same as
for non-machine lock conditions.
(Note 5) Under dry run conditions, asynchronous speed applies and movement results at the
externally set rate (mm/min, inch/min, /min).
(Note 6) The fixed cycle G84 (tapping cycle) and G74 (reverse tapping cycle) are executed to
the feed mode that is already designated.
(Note 7) Whether asynchronous feed (G94) or synchronous feed (G95) is to be established
when the power is switched on or when M02 or M30 is executed is set with
parameter "#1074 I_Sync".
55
7. Feed Functions
7.5
It has already been mentioned that a machine has a number of control axes. These control axes
can be divided into linear axes which control linear movement and rotary axes which control rotary
movement. The feedrate is designed to assign the displacement speed of these axes, and the
effect exerted on the tool movement speed which poses problems during cutting differs according
to when control is exercised over the linear axes or when it is exercised over the rotary axes.
The displacement amount for each axis is assigned separately for each axis by a value
corresponding to the respective axis. The feedrate is not assigned for each axis but assigned as a
single value. Therefore, when two or more axes are to be controlled simultaneously, it is necessary
to understand how this will work for each of the axes involved.
The assignment of the feedrate is described with the following related items.
When controlling linear axes
Even when only one machine axis is to be controlled or there are two or more axes to be controlled
simultaneously, the feed rate which is assigned by the F code functions as a linear speed in the
tool advance direction.
(Example) When the feedrate is designated as "f" and linear axes (X and Y) are to be controlled.
Y
x
2
x +y
y
2
2
x +y
Speed in this
direction is "f"
P (Tool start point) x
When only linear axes are to be controlled, it is sufficient to designate the cutting feed in the
program. The feedrate for each axis is such that the designated rate is broken down into the
components corresponding to the movement amounts.
(Note)
When the circular interpolation function is used and the tool is moved along the
circumference of an arc by the linear control axis, the rate in the tool advance
direction, or in other words the tangential direction, will be the feedrate designated in
the program.
Y
P2
P1
x
56
7. Feed Functions
7.5
(Example) When the feedrate is designated as "f" and the linear axes (X and Y) are to be
controlled using the circular interpolation function.
In this case, the feed rate of the X and Z axes will change along with the tool
movement. However, the combined speed will always be maintained at the constant
value "f".
When controlling rotary axes
When rotary axes are to be controlled, the designated feedrate functions as the rotary speed of the
rotary axes or, in other words, as an angular speed.
Consequently, the cutting feed in the tool advance direction, or in other words the linear speed,
varies according to the distance between the center of rotation and the tool. This distance must be
borne in mind when designating the feedrate in the program.
(Example) When the feedrate is designated as "f" and rotary axis (CA) is to be controlled ("f"
units = /min)
P2(tool end point)
Linear speed is : rf
180
P1 (tool start point)
c
Rotation
center
In this case, in order to make the cutting feed (linear feed) in the tool advance
direction "fc" :
fc = f r
180
Therefore, the feedrate to be designated in the program must be :
f = fc
180
r
When linear and rotary axes are to be controlled at the same time
The controller proceeds in exactly the same way whether linear or rotary axes are to be controlled.
When a rotary axis is to be controlled, the numerical value assigned by the coordinate word (A, B,
C) is the angle and the numerical values assigned by the feedrate (F) are all handled as linear
speeds. In other words, 1 of the rotary axis is treated as being equivalent to 1mm of the linear axis.
Consequently, when both linear and rotary axes are to be controlled simultaneously, the
components for each axis of the numerical values assigned by F will be the same as previously
described "When controlling linear axes". However, although in this case both the size and
direction of the speed components based on linear axis control do not vary, the direction of the
speed components based on rotary axis control will change along with the tool movement (their
size will not change). This means, as a result, that the combined tool advance direction feedrate
will vary along with the tool movement.
57
7. Feed Functions
7.5
(Example) When the feed rate is designated as "f" and Linear (X) and rotary axes are to be
controlled simultaneously.
In the X-axis incremental command value is "x" and the C-axis incremental command
values is "c":
ft
fc
P2
fx
fc
ft
P1
c
fx
x
Rotation center
X-axis feedrate (linear speed) "fx" and C-axis feedrate (angular speed) "" are expressed as:
x
x2 + c2
fx = f
c
x2 + c2
=f
........................................................................................ (1)
......................................................................................... (2)
r
.................................................................................................. (3)
180
If the speed in the tool advance direction at start point P1 is "ft" and the component speeds in the
X-axis and Y-axis directions are "ftx" and "fty", respectively, then these can be expressed as:
ftx = rsin (
)
+ fx .............................................................. (4)
180
180
)
..................................................................... (5)
180
180
Where r is the distance between center of rotation and tool (in mm units), and is the angle
between the P1 point and the X axis at the center of rotation (in units ).
The combined speed "ft" according to (1), (2), (3), (4) and (5) is:
fty = rcos (
ft =
ftx + fty
2
=f
x x c rsin (
90
)
180
2
+(
r c )2
180
................... (6)
x +c
x +c
x x c rsin (
)
90
180
+(
rc 2
)
180
.................... (7)
"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.
58
7. Feed Functions
7.6
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
With continuous
commands
TR
Td
TR
TC
TC
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.
59
7. Feed Functions
7.8
In order to prevent roundness during corner cutting and machine shock when the tool feedrate
changes suddenly, there are times when it is desirable to start the commands in the following block
once the in-position state after the machine has decelerated and stopped or the elapsing of the
deceleration check time has been checked. The exact stop check function is designed to
accomplish this purpose.
Either the deceleration check time or in-position state is selected with parameter "#1193 inpos".
In-position check is valid when "#1193 inpos" is set to 1.
The in-position width is set with parameter "#2224 sv024" on the servo parameter screen by the
machine manufacturer.
Command format
G09 ;
The exact stop check command G09 has an effect only with the cutting command (G01 - G03) in its
particular block.
Example of program
N002
Y100.000 ;
Tool
With G09
f (Commanded speed)
N001
X axis
N001
Without G09
Time
Y axis
N002
Solid line indicates speed pattern with G09 command.
Broken line indicates speed pattern without G09 command.
Fig. 1 Exact stop check result
60
N002
7. Feed Functions
7.8
Detailed description
Next block
Previous block
Ts
Fig. 2 Continuous cutting feed command
(2) With cutting feed in-position check
Next block
Previous block
Lc (in-position width)
Ts
Fig. 3
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 in-position width is designed to reduce the roundness at the workpiece corners to below
the constant value.
Next block
Lc
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.
61
7. Feed Functions
7.8
Next block
Previous block
Ts
Td
Previous block
Next block
Ts
Td
Previous block
Next block
2 x Ts
Ts
Td
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.
62
7. Feed Functions
7.9
Whereas the G09 exact stop check command checks the in-position status only for the block in
which the command has been assigned, the G61 command functions as a modal. This means that
deceleration will apply at the end points of each block to all the cutting commands (G01 to G03)
subsequent to G61 and that the in-position status will be checked. G61 is released by
high-accuracy control mode (G61.1), automatic corner override (G62), tapping mode (G63), or
cutting mode (G64).
Command format
G61 ;
In-position check is executed in the G61 block, and thereafter, the in-position check is executed at
the end of the cutting command block is executed until the check mode is canceled.
63
7. Feed Functions
7.10
With tool radius compensation, this function reduces the load during inside cutting of automatic
corner R, or during inside corner cutting, by automatically applying override to the feed rate.
Automatic corner override is valid until the tool radius compensation cancel (G40), exact stop
check mode (G61), high-accuracy control mode (G61.1), tapping mode (G63), or cutting mode
(G64) command is issued.
Command format
G62 ;
Machining inside corners
When cutting an inside corner as in Fig. 1, the machining allowance amount increases and a
greater load is applied to the tool. To remedy this, override is applied automatically within the
corner set range, the feedrate is reduced, the increase in the load is reduced and cutting is
performed effectively.
However, this function is valid only when finished shapes are programmed.
workpiece
Programmed path
(finished shape)
Machining allowance
S
(3)
(1)
(2)
Tool center path
Machining
allowance
Deceleratio
range
Ci
Tool
64
7. Feed Functions
7.10
(1) Operation
Parameter
OVERRIDE
MAX ANGLE
DSC. ZONE
Setting range
0 to 100%
0 to 180
0 to 99999.999mm or 0 to 3937.000 inches
Tool center
path
Work surface
shape
Machining
allowance
Programmed
path
Automatic corner R
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.)
65
7. Feed Functions
7.10
Application example
Tool center
Ci
Tool
Tool center
Ci
Tool
Program
Ci
Tool center
Tool
Tool
N1
N2
Program
Ci
Tool center
66
7. Feed Functions
7.10
Function
Override at corner
Override cancel
Speed clamp
Dry run
Synchronous feed
Thread cutting
G31 skip
Machine lock
Valid
G00
Invalid
G01
Valid
G02, G03
Valid
67
7. Feed Functions
7.10
Precautions
(1) Automatic corner override is valid only in the G01, G02, and G03 modes; it is not effective in
the G00 mode. When switching from the G00 mode to the G01 (or G02 or G03) mode at a
corner (or vice versa), automatic corner override will not be applied at that corner in the G00
block.
(2) Even if the automatic corner override mode is entered, the automatic corner override will not
be applied until the tool diameter compensation mode is entered.
(3) Automatic corner override will not be applied on a corner where the tool radius compensation
is started or canceled.
Program
Start-up block
Cancel
block
Tool center
Automatic corner override will not be applied
(4) Automatic corner override will not be applied on a corner where the tool radius compensation
I, J vector command is issued.
Program
Tool center
Block containing
I, J vector command
(G41X_Y_I_J_;)
(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.
68
7. Feed Functions
7.11
Tapping mode
The G63 command allows the control mode best suited for tapping to be entered, as indicated
below :
(1) Cutting override is fixed at 100%.
(2) Deceleration commands at joints between blocks are invalid.
(3) Feed hold is invalid.
(4) Single block is invalid.
(5) In-tapping mode signal is output.
G63 is released by the exact stop check mode (G61), high-accuracy control mode (G61.1),
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.
This cutting mode is established in the initialized status.
Command format
G64 ;
69
8. Dwell
8.1
Per-second dwell
8. Dwell
The G04 command can delay the start of the next block. The dwell remaining time can be canceled
by adding the multi-step skip function.
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
The input command unit for the dwell time depends on the parameter.
Detailed description
(1) When designating the dwell time with X, the decimal point command is valid.
(2) The dwell time command range is as follows.
0.001 ~ 99999.999 (s)
(3) The dwell time setting unit applied when there is no decimal point can be made 1s by setting 1
in the parameter "#1078 Decpt2". This is effect only for X and P for which the decimal
command is valid.
(4) 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.
(5) The dwell is valid during the interlock.
(6) The dwell is valid even for the machine lock.
(7) 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.
Previous block
cutting command
Next block
Dwell command
Dwell time
70
8. Dwell
8.1
Per-second dwell
Example of program
Command
G04 X500 ;
G04 X5000 ;
G04 X5. ;
G04 X#100 ;
G04 P5000 ;
G04 P12.345 ;
G04 P#100 ;
(Note 1) The above examples are the results under the following conditions.
Input setting unit 0.001mm or 0.0001inch
#100 = 1000 ;
(Note 2) If the input setting unit is 0.0001inch, the X before G04 will be multiplied by 10. For
example for "X5. G04 ;", the dwell time will be 50 sec.
Precautions
(1) When using this function, command X after G04 in order to make sure that the dwell is based
on X.
71
9. Miscellaneous Functions
9.1
9. Miscellaneous Functions
9.1 Miscellaneous functions (M8-digits BCD)
Function and purpose
The miscellaneous (M) functions are also known as auxiliary functions, and they include such
numerically controlled machine functions as spindle forward and reverse rotation, operation stop
and coolant ON/OFF.
These functions are designated by an 8-digit number (0 to 99999999) following the address M with
this controller, and up to 4 groups can be commanded in a single block.
(Example) G00 Xx Mm1 Mm2 Mm3 Mm4 ;
When five or more commands are issued, only the last four will be valid.
The output signal is an 8-digit BCD code and start signal.
The eight commands of M00, M01, M02, M30, M96, M97, M98 and M99 are used as
auxiliary commands for specific objectives and so they cannot be used as general
auxiliary commands. This therefore leaves 92 miscellaneous functions which are
usable as such commands. Reference should be made to the instructions issued by
the machine manufacturer for the actual correspondence between the functions and
numerical values.
When the M00, M01, M02, and M30 functions are used, the next block is not read into
the pre-read buffer due to pre-read inhibiting.
An M function can be specified together with other commands in the same block, and
when such a function is specified together with a movement command in the same
block, there are two possible sequences in which the commands are executed. Which
of these sequences actually applies depends on the machine specifications.
(1) The M function is executed after the movement command.
(2) The M function is executed at the same time as the movement command.
Processing and completion sequences are required in each case for all M commands
except M96, M97, M98 and M99.
The 8 M functions used for specific purposes will now be described.
Program stop : M00
When the NC has read this function, it stops reading the next block. 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.
Optional stop : M01
If the M01 command is read when the optional stop switch on the machine operation board is ON,
reading of the next block will stop and the same effect as with the M00 function will apply.
(Example)
:
N10 G00 X1000 ;
N11 M01 ;
N12 G01 X2000 Z3000 F600 ;
:
72
9. Miscellaneous Functions
9.1
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.
Macro interrupt : M96, M97
M96 and M97 are M codes for user macro interrupt control.
The M code for user macro interrupt control is processed internally, and is not output externally.
To use M96 and M97 as a miscellaneous code, change the setting to another M code with the
parameter (#1109 subs_M and #1110 M96_M, #1111 M97_M).
Subprogram call/completion : M98, M99
These commands are used as the return instructions from branch destination subprograms and
branches to subprograms.
M98 and M99 are processed internally and so M code signals and strobe signals are not output.
Internal processing with M00/M01/M02/M30 commands
Internal processing suspends pre-reading when the M00, M01, M02 or M30 command has been
read. Indexing operation other than M02/M03 and the initialization of modals by resetting differ
according the machine specifications.
73
9. Miscellaneous Functions
9.2
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.
When the A, B and C functions are commanded in the same block as movement commands, there
are 2 sequences in which the commands are executed, as below. The machine specifications
determine which sequence applies.
(1) The A, B or C function is executed after the movement command.
(2) The A, B or C function is executed simultaneously with the movement command.
Processing and completion sequences are required for all secondary miscellaneous functions.
The table below given the various address combinations. It is not possible to use an address which
is the same for the axis name of an additional axis and secondary miscellaneous function.
Additional axis name
Secondary miscellaneous function
A
B
C
(Note)
When A has been assigned as the secondary miscellaneous function address, the
following commands cannot be used.
(1) Linear angle commands
(2) Geometric commands
74
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 S code ranging from
0 to 99, and 100 commands can be designated. In actual fact, however, it depends on the machine
specifications as to how many of these 100 functions are used and which numbers correspond to
which functions, and thus reference should be made to the instruction issued by the machine
manufacturer. When a number exceeding 2 digits is assigned, the last 2 digits will be valid.
When S functions are commanded in the same block as movement commands, there are 2
sequences in which the commands are executed, as below. 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, commands with a 6-dight number following the S code can
be designated. Other commands conform to the S2-digits function.
By assigning a 6-digit number following the S code, these functions enable the appropriate gear
signals, voltages corresponding tot he commanded spindle speed (r/min) and start signals to be
output.
If the gear step is changed manually other than when the S command is being executed, the
voltage will be obtained from the set speed at that gear step and the previously commanded speed,
and then will be output.
The analog signal specifications are given below.
(1) Output voltage.............. 0 to 10V
(2) Resolution .................... 1/4096 (212)
(3) Load conditions............ 10k
(4) Output impedance........ 220
If the parameters for up to 4 gear stages are set in advance, the gear stage corresponding to the S
command will be selected and the gear signal will be output. The analog voltage is calculated in
accordance with the input gear signal.
(1) Parameters corresponding to individual gears .......Limit rotation speed, maximum rotation
speed, shift rotation speed and tapping
rotation speed
(2) Parameters corresponding to all gears ..................Orientation rotation speed, minimum
rotation speed
75
These functions are assigned with an 8-digit (0 to 99999999) number following the address S, and
one group can be assigned in one block.
The output signal is a 32-bit binary data with sign and start signal. Processing and completion
sequences are required for all S commands.
76
Sn= ;
n
Detailed description
77
This function controls which spindles rotation the cutting follows, in addition, designates the
spindle to be selected when "S" command is issued.
Command format
G43.1;
G44.1;
Detailed description
Items
Sselect Select
initial
spindle
control
21049 SPname
Details
Select the initial condition of
spindle control when power is
turned ON or reset.
0: 1st spindle
1: 1st spindle
2: 2nd spindle
3: 3rd spindle
4: 4th spindle
5: 5th spindle
6: 6th spindle
7: 7th spindle
Reset the NC after changing "#1199 Sselect " and "#21049 SPname" parameters. It is no use
to turn the power OFF once and ON again.
(3) As for C6 L-type, T-type, C64 T-type and C64T T-type, there are following restrictions;
A program error (P34) will occur if G44.1 command is issued.
No data can be set to "#1199 Sselect". "0" is set when the NC power is turned ON.
Only one spindle than is selected with "#21049 SPname" can be commanded as "S"
in each part system.
A program error (P33) will occur if the "S0=" command is issued.
(4) If the S command is issued in the same as the spindle selection commands (G43.1, and
G44.1), which spindle the S command is valid for depends on the order that G43.1, G44.1,
and S command are issued.
When S command precedes the G codes, it follows the G43.1 / G44.1 mode before S
command is issued.
When G codes precede, it follows the G43.1 / G44.1 mode issued in the same block.
(5) G43.1 and G44.1 commands can be issued from every part system.
78
(1) The following functions change after the spindle selection command.
(a) Per rotation command (synchronous feed)
Even if F is commanded in the G95 mode, the per rotation feedrate for the selected spindle
(nth spindle) will be applied during G43.1 mode and for the 2nd spindle during G44.1
mode.
(b) S commands (S, Sn=), constant surface speed control, thread cutting
Function
S command during G97/G96
constant surface speed control
Upper limit / Lower limit of spindle
rotation speed command during
constant surface speed control (G92
S_ Q)
Thread cutting
G43.1 mode
Command control for
the selected spindle
(nth spindle).
(Note 1)
G44.1 mode
Command control for
the 2nd spindle.
(Note 1) The spindle selected during G43.1 mode depends on the parameter "#21049
SPname".
(2) The Sn= command can be used to command the other spindle even if it is commanded
during G43.1 or G44.1 mode.
Note that the rotation speed designation will be applied for such command even if the G96
mode is ON.
(Example) When "SPname" = 0;
G43.1;
G97 S1000;
:
S2 = 2000;
:
G96 S100;
:
S2 = 2500;
:
G44.1 S200;
:
S1 = 3000;
:
G97 S4000;
:
Rotation speed
1st spindle
2nd spindle
0(r/min)
1000(r/min)
2000(r/min)
100(m/min)
2500(r/min)
200(m/min)
(Note 2)
3000(r/min)
4000(r/min)
(Note 2) The constant surface speed control will be switched to the 2nd spindle by G44.1
command. Therefore, the 1st spindle retains its rotation speed as that of "G44.1
S200;" command.
The 1st spindle rotation speed will be 3000 (r/min) when "S1=3000;" command is
issued.
79
These commands automatically control the spindle speed in line with the changes in the radius
coordinate values as cutting proceeds in the diametrical direction, and they serve to keep the
cutting point speed constant during the cutting.
Command format
Ss
Pp
(1) The constant surface speed control axis is set by parameter "#1181 G96_ax".
0 : Fixed at 1st axis (P command invalid)
1 : 1st axis
2 : 2nd axis
3 : 3rd axis
(2) When the above-mentioned parameter is not zero, the constant surface speed control axis
can be assigned by address P.
(Example) With G96_ax (1)
Program
G96 S100 ;
1st axis
G96 S100 P3 ;
3rd axis
~ ~
M02 ;
(4) Constant surface speed control can be commanded on the selected spindle (nth spindle) / the
2nd spindle.
Select which spindle (the selected spindle or 2nd one) the commands are made to by the
spindle selection G codes (G43.1 and G44.1).
Select which spindle (the selected spindle or 2nd one) is valid as the initial state with the
parameter (base specifications parameter "#1199 Sselect").
(5) Select whether calculating the surface speed at rapid traverse command is performed
constantly or only at the block end poing.
80
The maximum clamp speed of the spindle can be assigned by address S following G92 and the
minimum clamp speed by address Q.
Command format
G92 Ss Qq;
Ss
Qq
Detailed description
(1) Besides this command, parameters can be used to set the rotational speed range up to 4
stages in 1 r/min units to accommodate gear selection between the spindle and spindle motor.
The lowest upper limit and highest lower limit are valid among the rotational speed ranges
based on the parameters and based on G92 Ss Qq ;
(2) Set in the parameters "#1146 Sclamp" and "#1227 aux11/bit5" whether to carry out rotation
speed clamp only in the constant surface speed mode or even when the constant surface
speed is canceled.
(Note) G92S command and speed clamp operation
Sclamp = 0
aux11/bit5 = 0
aux11/bit5 = 1
In G96
In G97
In G96
In G97
Command
Operation
81
Sclamp = 1
aux11/bit5 = 0
aux11/bit5 = 1
Rotation speed
clamp command
Rotation speed
clamp command
Rotation speed
clamp execution
Rotation speed
clamp execution
Rotation speed
clamp command
Rotation speed
clamp command
Rotation speed
clamp execution
No rotation
speed clamp
In a machine having two or more spindles, this function controls the rotation speed and phase of
one spindle (basic spindle) in synchronization with the rotation of the other spindle (synchronous
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".
With the spindle synchronous control function I, designation of spindles and controls start / stop of
synchronization are commanded using G codes in the machining program.
Command format
This command designates the basic spindle and synchronous spindle, and synchronizes the
two designated spindles. By commanding the synchronous spindle phase shift amount, the
phases of the basic spindle and synchronous spindle can be aligned.
G114.1 H_ D_ R_ A_ ;
H_
Basic spindle selection
D_
Synchronous spindle selection
R_
Spindle synchronization phase shift amount
A_
Spindle synchronization acceleration/deceleration time constant
(2) Spindle synchronous control cancel (G113)
This command cancels the synchronous state of the two spindles rotating in synchronization
with the spindle synchronous command.
G113 ;
Address
Meaning of
address
Basic spindle
selection
Select the No. of the
spindle to be used
as the basic spindle
from the two
spindles.
Command
range (unit)
1 to 7
1: 1st spindle
2: 2nd spindle
:
7: 7th spindle
82
Remarks
A program error (P35) will occur if a
value exceeding the command range
or spindle No. without specifications
is commanded.
A program error (P33) will occur if
there is no command.
A program error (P610) will occur if a
spindle not serially connected is
commanded.
Synchronous
spindle selection
Select the No. of the
spindle to be
synchronized with
the basic spindle
from the two
spindles.
Synchronous spindle
phase shift amount
Command the shift
amount from the
Z-phase point (one
rotation signal) of the
synchronous spindle.
Spindle
synchronization
acceleration/deceleration time constant
Command the
acceleration/deceleration time constant
for when the spindle
synchronous
command rotation
speed changes.
(Command this to
accelerate or
decelerate at a speed
slower than the time
constant set in the
parameters.)
Remarks
83
(1) The rotation speed and rotation direction of the basic spindle and synchronous spindle during
spindle synchronous 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
synchronous control.
(3) The synchronous spindle's rotation command is also valid during spindle synchronous control.
When spindle synchronous 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 synchronous 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 synchronous control.
84
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 ;
:
M03 S1=1000 ;
:
G114.1 H1 D-2 ;
:
S1=500 ;
:
G113 ;
<Operation>
Basic spindle
Synchronous spindle
1000
750
500
Forward
run
Rotation
speed 0
(r/min)
Reverse
run
500
750
1000
2nd spindle (synchronous spindle)
reverse run synchronization
1st spindle (basic spindle) forward run
2nd spindle (synchronous spindle) forward run
85
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 ;
:
M03 S1=1000 ;
:
G114.1 H1 D-2 Rxx ;
:
:
S1=500 ;
:
G113 ;
<Operation>
Basic spindle
Synchronous spindle
1000
750
500
Forward
run
Rotation
speed 0
(r/min)
Reverse
run
500
750
1000
Phase alignment
2nd spindle (synchronous spindle)
reverse run synchronization
1st spindle (basic spindle) forward run
2nd spindle (synchronous spindle) forward run
86
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 and synchronous spindle rotation
commands ON before turning the spindle synchronous control mode ON.
$1 (1st part system)
:
M6 ;
1st spindle chuck close
:
:
!2 ;
M5 S1=0 ;
:
M3 ;
!2 ;
!1 ;
G114.1 H1
D-2 ;
:
:
:
S1=1500 ;
:
S1=0 ;
G113 ;
Synchronous rotation at
S=1500
:
Both spindles stop
Synchronization mode OFF
(2) To chuck the same workpiece with the basic spindle and synchronous spindle in the phase
synchronization mode, align the phases before chucking.
$1
:
M6 ;
:
M3
S1=1500 ;
:
:
:
$2
:
:
:
:
G114.1 H1 D-2 R0 ; Phase synchronization
:
M24 ;
:
:
:
M15 ;
mode ON
2nd spindle rotation
command ON
2nd spindle chuck close
(Note 1)
(Note 1) Close the chuck after confirming that the spindle phase synchronization complete
signal (X42A) has turned ON (phase alignment complete).
87
CAUTION
Do not make the synchronous spindle rotation command OFF with one workpiece
chucked by the basic spindle and synchronous spindle during the spindle
synchronous control mode.
Failure to observe this may cause the synchronous spindle stop, and hazardous
situation.
Precautions and restrictions
(1) To carry out the spindle synchronization, it is required to command spindle rotation for both
basic spindle and synchronous spindle. Note that the rotating direction of the synchronous
spindle follows the rotating direction of the basic spindle and rotating direction designation by
"D" address.
(2) The spindle rotating with spindle synchronous control will stop when emergency stop is
applied.
(3) The rotation speed clamp during spindle synchronization control will follow the smaller clamp
value set for the basic spindle or synchronous spindle.
(4) Orientation of the basic spindle and synchronous spindle is not possible during the spindle
synchronous control mode. To carry out orientation, cancel the spindle synchronous control
mode first.
(5) The rotation speed command (S command) is invalid for the synchronous spindle during the
spindle synchronous control mode. Note that the modal will be updated, so this will be
validated when spindle synchronous control is canceled.
(6) 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.
(7) The rotation speed command (S command) and constant surface speed control for the
synchronous spindle will be validated when spindle synchronous control is canceled. Thus, the
synchronous spindle may carry out different operations when this control is canceled.
(8) An attention should be made that if the phase synchronization command is executed with the
phase error not obtained by the phase shift calculation request signal, the phase shift amount will
not be obtained correctly.
(9) The spindle rotation speed command (S command) and the constant surface speed control for
the synchronous spindle will become valid when the spindle synchronous control is canceled.
Thus, special attention should be made because the synchronous spindle may do different
action than before when the spindle synchronous control is canceld.
(10) 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.
(11) 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.
(12) 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.
(13) 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.
88
(14) The phase offset request signal will be ignored when the phase shift calculation request signal
is ON.
(15) 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.
(16) The phase error of the basic spindle and synchronous spindle saved in the NC is retained until
the spindle synchronization phase shift calculation, in other words, until the rotation
synchronous control command completes with the phase shift calculation request signal is
ON.
(17) Synchronous tapping can not be used during spindle synchronous mode.
(18) When the spindle synchronous control commands are being issued with the PLC I/F method
(#1300 ext36/bit7 OFF), a program error (P610) will occur if the spindle synchronous control is
commanded with G114.1/G113.
89
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.
With the spindle synchronous control II, selection of the spindles and synchronization start, etc.,
are all designated from the PLC.
Basic spindle and synchronous spindle selection
Select the basic spindle and synchronous spindle for synchronous control from the PLC.
Device No.
R157
Signal name
Basic spindle
selection
R158
Synchronous
spindle
selection
Abbrev.
Explanation
90
The spindle synchronous control mode is entered by inputting the spindle synchronous control
signal (SPSYC). The synchronous spindle will be controlled in synchronization with the rotation
speed commanded for the basic spindle during the spindle synchronous control mode.
When the difference of the basic spindle and synchronous spindle rotation speeds reaches the
spindle synchronization rotation speed reach level setting value (#3050 sprlv), the spindle rotation
speed synchronization complete signal (FSPRV) will be output.
The synchronous spindle's rotation direction is designated with the spindle synchronization
rotation direction designation as the same as the basic spindle or the reverse direction.
Device No.
Y432
X42A
X42B
Y434
Signal name
Spindle
synchronous
control
In spindle
synchronous
control
Spindle rotation
speed
synchronization
complete
Abbrev.
SPSYC
Explanation
The spindle synchronous control mode is
entered when this signal turns ON.
SPSYN1
FSPRV
Spindle
SPSDR
synchronization
rotation
direction
designation
91
Spindle phase synchronization starts when the spindle phase synchronous 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.
Y433
Signal name
Spindle phase
synchronous
control
X42C
Spindle phase
FSPPH
synchronization
complete
Phase shift
amount setting
R159
Abbrev.
SPPHS
Explanation
Spindle phase synchronization starts when this
signal is turned ON during the spindle
synchronous control mode.
(Note 1) If this signal is turned ON in a mode
other than the spindle synchronous
control mode, it will be ignored.
This signal is output when the spindle
synchronization phase reach level is reached
after starting spindle phase synchronization.
Designate the synchronous spindle's phase shift
amount.
Unit: 360/4096
(Note 2)
Spindle synchronization
complete (X42B)
Spindle phase synchronous
control (Y433)
Spindle phase synchronization
complete (X42C)
Spindle phase
synchronization complete ON
Spindle phase
Spindle phase
synchronous control ON
synchronous control OFF
Spindle synchronization
complete ON
Spindle synchronization
Spindle synchronous
control ON
control OFF
(Note 2) Turns OFF temporarily to change the rotation speed during phase synchronization.
92
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 grasping the material that the shape of one end
differ from another end.
Device No.
Y435
Signal name
Phase shift
calculation
request
Abbrev.
SSPHM
Y436
Phase offset
request
SSPHF
R55
Phase
difference
output
R59
Phase offset
data
Explanation
If spindle synchronization is carried out while
this signal is ON, the phase difference of the
basic spindle and synchronous spindle will be
obtained and saved.
If spindle phase synchronization is carried out
while this signal is ON, the phases will be
aligned using the position shifted by the saved
phase shift amount as a basic position.
The delay of the synchronous spindle in
respect to the basic spindle is 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.
The phase difference saved with phase shift
calculation is output.
Unit: 360/4096
(Note 3) This data is output only during
spindle synchronous control.
Spindle synchronous
control OFF
Phase shift calculation
request OFF
(Note 4) The phases cannot be aligned while calculating the phase shift.
(Note 5) The synchronous spindle cannot be rotated with the handle when the manual operation
mode is set to the handle mode.
93
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.
Y431
Signal name
Chuck close
X42D
Chuck close
confirmation
Abbrev.
Explanation
SPCMPC This turns ON when the chuck of both spindles
are closed. This signal is ON while the basic
spindle and the synchronous spindle grasp
the same workpiece.
SPCMP
This turns ON when the chuck close signal is
received during the spindle synchronous
control mode.
Chuck close
Chuck close
Chuck open
confirmation Chuck open
Chuck open
Chuck close
confirmation Chuck close
Chuck close
Spindle synchronous
control (Y432)
In spindle synchronous
control (X42A)
Spindle synchronization
complete (X42B)
Chuck close (Y431)
(Note 1) Use the error temporary cancel only when there is still an error between the spindle and
synchronization with the chuck close signal.
Error temporary cancel function
When spindle synchronization is carried out while grasping the workpiece with the basic spindle
and rotating, if the chuck is closed to grasp the workpiece with the synchronous spindle, the speed
will fluctuate due to external factors and an error will occur. If spindle synchronization is continued
without compensating this error, the workpiece will twist.
This torsion can be prevented by temporarily canceling this error.
Device No.
Y437
Signal name
Abbrev.
Error temporary SPDRP0
cancel
Explanation
The error is canceled when this signal is ON.
(Note 1) Even if the chuck close signal (Y431) is OFF, the error will be canceled while this signal
(Y437) is ON.
(Note 2) Turn this signal ON after the both chucks of basic spindle side and synchronous spindle
side are closed to grasp the workpiece.
Turn this signal OFF if even one chuck is opened.
94
R57
R59
Signal name
Phase error
monitor
Phase error
monitor (lower
limit value)
Phase error
monitor (upper
limit value)
Abbrev.
Explanation
The phase error during spindle phase
synchronous control is output as a pulse unit.
The lower limit value of the phase error during
spindle phase synchronous control is output
as a pulse unit.
The upper limit value of the phase error during
spindle phase synchronous control is output
as a pulse unit.
Multi-speed acceleration/deceleration
Rotation speed
Sptc3
(1) Time required from stopped state to sptc1 setting rotation
speed
spt (sptc1/maximum rotation speed)
(2) Time required from sptc1 to sptc2 setting rotation speed
spt ((sptc2sptc1)/maximum rotation speed) spdiv1
(3) Time required from sptc2 to sptc3 setting rotation speed
spt ((sptc3sptc2)/maximum rotation speed) spdiv2
Sptc2
Sptc1
Time
(1)
(2)
(3)
95
(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
speed is commanded 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. Note that the modal is rewritten, thus, 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. However, note that the modal is rewritten and it will be valid after spindle
synchronization is canceled.
(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 and
incorrect operation results.
(10) The spindle rotation speed command (S command) and the constant surface speed control for
the synchronous spindle will become valid when the spindle synchronous control is canceled.
Thus, special attention should be made because the synchronous spindle may do different
action than before when the spindle synchronous control is canceled.
(11) The spindle Z-phase encoder position parameter (sppst) is invalid (ignored) when phase
offset is carried out.
This parameter will be valid when the phase offset request signal is OFF.
(12) If spindle phase synchronization is started while the phase shift calculation request signal is
ON, the error "M01 OPERATION ERROR 1106" will occur.
(13) 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.
(14) The phase offset request signal is ignored when the phase shift calculation request signal
(Y435) is ON.
(15) "M01 OPERATION ERROR 1106" will occur when a spindle No. out of specifications is
designated in the R registers to set the basic spindle and the synchronous spindle, or when
the spindle synchronous control signal (Y432) is turned ON with R resister value illegal.
(16) 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.)
(17) Synchronous tapping can not be used during spindle synchronous mode.
96
The tool functions are also known simply as T functions and they assign the tool numbers and tool
offset number. They are designated with a 8-digit number following the address T, and one set can
be commanded in commanded one block. The output signal is an 8-digit BCD signal and start
signal.
When the T functions are commanded in the same block as movement commands, there are 2
sequences in which the commands are executed, as below. The machine specifications determine
which sequence applies.
(1) The T function is executed after the movement command.
(2) The T function is executed simultaneously with the movement command.
Processing and completion sequences are required for all T commands.
97
Tool offset
The basic tool offset function includes the tool length offset and tool diameter compensation. Each
offset amount is designated with the tool offset No. Each offset amount is input from the setting and
display unit or the program.
Reference
point
Tool length
Tool length offset
(Side view)
Tool diameter compensation
Right
compensation
(Plane view)
Left compensation
98
Tool offset
There are two types of tool offset memories for setting and selecting the tool offset amount. (The
type used is determined by the machine maker specifications.)
The offset amount or offset amount settings are preset with the setting and display unit.
Type 1 is selected when parameter "#1037 cmdtyp" is set to "1", and type 2 is selected when set to
"2".
Type of tool offset
memory
Classification of length
offset, diameter
compensation
Type 1
Not applied
Not applied
Type 2
Applied
Applied
Reference
Reference
tool
Shape
Wear
amount
Tool length
offset
Wear amount
Shape
Tool diameter
compensation
99
Tool offset
Type 1
One offset amount corresponds to one offset No. as shown on the right. Thus, these can be
used commonly regardless of the tool length offset amount, tool diameter offset amount,
shape offset amount and wear offset amount.
(D1) = a1 , (H1) = a1
(D2) = a2 , (H2) = a2
:
:
(Dn) = an , (Hn) = an
Offset No.
1
2
3
Offset amount
a1
a2
a3
an
Type 2
The shape offset amount related to the tool length, wear offset amount, shape offset related to
the tool diameter and the wear offset amount can be set independently for one offset No. as
shown below.
The tool length offset amount is set with H, and the tool diameter offset amount with D.
(H1) = b1 + c1, (D1) = d1 + e1
(H2) = b2 + c2, (D2) = d2 + e2
:
:
(Hn) = bn + cn, (Dn) = dn + en
Offset
No.
Tool diameter(D)/
(Position offset)
Shape offset
Wear offset
amount
amount
d1
e1
Shape offset
amount
b1
Wear offset
amount
c1
b2
c2
d2
e2
b3
c3
d3
e3
bn
cn
dn
en
CAUTION
If the tool offset amount is changed during automatic operation (including during single block
stop), it will be validated from the next block or blocks onwards.
100
Tool offset
Input setting
unit
Metric system
Inch system
Metric system
Inch system
#1015 cunit=100
99999.99mm
9999.999 inch
9999.99 mm
999.999 inch
#1015 cunit=10
9999.999mm
999.9999 inch
999.999 mm
99.9999 inch
101
The end position of the movement command can be offset by the preset amount when this
command is used. A continuity can be applied to the program by setting the actual deviation from
the tool length value decided during programming as the offset amount using this function.
Command format
Detailed description
G43 Zz Hn1 ;
G44 Zz Hh1 ;
G49 Zz
;
Regardless of the absolute value command or incremental value command, the actual end
point will be the point offset by the offset amount designated for the programmed movement
command end point coordinate value.
The G49 (tool length offset cancel) mode is entered when the power is turned ON or when
M02 has been executed.
(Example 1) For absolute value command
H01 = 100000
N1 G28 Z0 T01 M06 ;
N2 G90 G92 Z0 ;
N3 G43 Z5000 H01 ;
N4 G01 Z-50000 F500 ;
102
+5.00
Workpiece
-50.000
lh1
Workpiece
Table
Type 2
G43 Hh1 ;
When the above is commanded, the offset
amount lh1 commanded with offset No. h1 will
be as follows.
lh1: Shape offset (Note) + wear offset amount
R
Wear compensation
amount
lh1
Shape offset
Workpiece
Table
(b) The valid range of the offset No. will differ according to the specifications (No. of offset
sets).
(c) If the commanded offset No. exceeds the specification range, the program error "P170"
will occur.
(d) Tool length cancel will be applied when H0 is designated.
(e) The offset No. commanded in the same block as G43 or G44 will be valid for the following
modals.
(Example 3)
G43 Zz1
:
G45 Xx1
:
G49 Zz2
:
G43 Zz2
(f)
If G43 is commanded in the G43 modal, an offset of the difference between the offset No.
data will be executed.
(Example 4)
G43 Zz1 Hh1 ; ........... Becomes the z1 + (lh1) movement.
:
G43 Zz2 Hh2 ; ........... Becomes the z2 + (lh2 - lh1) movement.
:
The same applies for the G44 command in the G44 modal.
103
Hh1 ;
; ........................ Canceled when reference point is reached.
Hh2 ;
(Same as G49)
(b) The movement is commanded to the G53 machine coordinate system, the axis will move
to the machine position when the tool offset amount is canceled. When the G54 to G49
workpiece coordinate system is returned to, the position returned to will be the
coordinates shifted by the tool offset amount.
104
This function compensates the radius of the tool. The compensation can be done in the random
vector direction by the radius amount of the tool selected with the G command (G38 to G42) and
the D command.
Command format
G40X___Y___ ;
G41X___Y___ ;
G42X___Y___ ;
G38I___J___ ;
The No. of compensation sets will differ according to the machine model.
(The No. of sets is the total of the tool length offset, tool position offset and tool radius
compensation sets.)
The H command is ignored during the tool radius compensation, and only the D command is valid.
The compensation will be executed within the plane designated with the plane selection G code or
axis address 2 axis, and axes other than those included in the designated plane and the axes
parallel to the designated plane will not be affected. Refer to the section on plane selection for
details on selecting the plane with the G code.
105
The tool radius compensation cancel mode is established by any of the following conditions.
(1)
(2)
(3)
(4)
The offset vectors are zero in the compensation cancel mode, and the tool nose point path
coincides with the programmed path.
Programs including tool radius compensation must be terminated in the compensation cancel
mode.
Tool radius compensation start (start-up)
Tool radius compensation starts when all the following conditions are met in the compensation
cancel mode.
(1) A movement command is issued after the G41or G42 command has been issued.
(2) The tool radius compensation offset No. is 0 < D max. offset No.
(3) The movement command of positioning (G00) or linear interpolation (G01) is issued.
At the start of compensation, the operation is executed after at least three movement command
blocks (if three movement command blocks are not available, after five movement command
blocks) have been read regardless of the continuous operation or single block operation.
During compensation, 5 blocks are pre-read and the compensation is arithmetically processed.
Control mode transition diagram
Machining program
T____;
S____;
G00____;
G41____;
G01____;
G02____;
Pre-read buffer
T__;
S__;
Execution block
T__;
S__;
G00_;
G00_;
G41_;
G41_;
G01_;
G02_;
G01_;
G02_;
G01_;
G02_;
There are two ways of starting the compensation operation: type A and type B.
The type can be selected with bit 2 of parameter "#1229 set 01". This type is used in common with
the compensation cancel type.
In the following explanatory figure, "S" denotes the single block stop point.
106
Linear
Linear
Program path
r = Compensation amount
G42
G42
Start point
Program
path
Circular
Start point
Tool center
path
Center of circular
Linear(Type A)
s
Linear
Circular(Type A)
s
Tool center
path
r = Compensation amount
G41
G41
Program path
Start point
Start point
path
Linear
Linear
Linear(Type B)
Point of intersection
s
r
r
Point of intersection
s
r
Program path
G41
Start point
Circular(Type B)
Start point
path
107
Tool center
path
Linear(Type A)
Linear
Circular(Type A)
Center
of circular
Tool center path
s
Tool center path
Program path
Program path
G41
G41
Start point
Linear
Start point
Linear
Linear(Type B)
Circular(Type B)
Center
of circular
Tool center path
s
Tool center path
Program path
Program path
r
G41
G41
Start point
Start point
(Note 1) Where is no axis movement command in the same block as G41 or G42, compensation is
performed perpendicularly to the next block direction.
108
Relative to the program path (G00, G01, G02, G03), the tool center path is found from the straight
line/circular arc to make compensation.
Even if the same compensation command (G41, G42) is issued in the compensation mode, the
command will be ignored.
When 4 or more blocks not accompanying movement are commanded continuously in the
compensation mode, overcutting or undercutting will result.
When the M00 command has been issued during tool radius compensation, pre-reading is
prohibited.
(1) Machining an outer wall
Linear
Linear (90<180)
Linear
Linear (0<<90)
r
s
Program path
Program path
s
Point of intersection
Linear
Circular (90180)
Linear
r
s
Center of circular
109
s
Program path
Circular (0<<90)
Program path
Linear (90<180)
Circular
Center of circular
Linear (0<<90)
Program path
Program path
r
Center of
circular
s
Point of intersection
s
Circular
Circular (90<180)
Circular
Circular (0<<90)
Center of circular
Program path
Program path
r
r
s
Point of
intersection
Center of circular
Tool center
path
Center of circular s
110
Center of circular
Linear
Program path
s
r
Linear
Program path
Linear
Program path
Program path
s
Point of
intersection
Center of
circular
Point of
intersection
Center of circular
Circular
Circular
Center of circular
Program path
s
Point of
intersection
Program path
s
Point of
intersection
Center of circular
111
Point of intersection
s
Circular
Tool center
path
Center of circular
Center of
Program path
Center of
circular
s
Center of
circular
Tool center
path
Point of
intersection
r
Program path
Program path
r
s
r
R
Center of circular
Center of circular A
r
r
Program path
A
Line intersecting
circulars A, B
112
If either of the following conditions is met in the tool radius compensation mode, the compensation
will be canceled. However, the movement command must be a command which is not a circular
command.
If the compensation is canceled by a circular command, program error (P151) results.
(1) The G40 command has been executed.
(2) The D00 tool number has been executed.
The cancel mode is established once the compensation cancel command has been read, 5-block
pre-reading is suspended an 1-block pre-reading is made operational.
Tool radius compensation cancel operation
Linear
Linear
Circular
Program path
r = Compensation amount
Program path
G40
End point
Linear
G40
End point
Tool center
path
Center of circular
113
Linear
Linear (Type A)
s
Circular
Linear (Type A)
s
r = Compensation amount
G40
G40
Program path
End point
End point
Center of
circular
Linear
Linear (Type B)
Circular
r
G40
End point
Linear (Type B)
Point of intersection
s
Point of intersection
s
r
Program
path
Tool center
path
r
r
Program path
G40
Program
path
End point
Center of circular
114
Linear
Circular
Linear (Type A)
Linear (Type A)
Center of circular
s
Program path
r
G40
Program path
G40
End point
End point
Linear
Circular
Linear (Type B)
Linear (Type B)
Center of circular
Tool center path
r
Program path
Program path
G40
G40
End point
End point
115
An arc that uses the compensation amount as the radius is inserted without calculating the point of
intersection at the workpiece corner when G39 (corner arc) is commanded.
Point of
intersection
Inserted
circular
Inserted
circular
Program path
r = Compensation
amount
r = Compensation amount
s
Tool center path
Program path
Point of
intersection
N6
N4
N7
N3
N1
G28X0Y0 ;
N2
G91G01G42X20.Y20.D1F100 ;
N3
G39X40. ;
N4
G39Y40. ;
N5
G39X-40. ;
N6
Y-40. ;
N7
G40X-20.Y-20. ;
N8
M02 ;
N2
D1=5.000
N1
Changing and holding of compensation vector
The compensation vector can be changed or held during tool diameter compensation by using the
G38 command.
(1) Holding of vector: When G38 is commanded in a block having a movement command,
the point of intersection will not be calculated at the program end point,
and instead the vector of the previous block will be held.
G38 Xx Yy ;
This can be used for pick feed, etc.
(2) Changing of vector: A new compensation vector direction can be commanded with I, J
and K, and a new offset amount with D.
(These can be commanded in the same block as the movement
command.)
G38 Ii Jj Dd ; (I, J and K will differ according to the selected
plane.)
116
i +j
j
r2 =
r1
r1
Tool center path
r1
j
N13
N15
N14
i
N16
Program path
N12
N11
N11G1Xx11;N12G38Yy12;N13G38Xx13;N14G38Xx14Yy14;N15G38Xx15IiJjDd2;N16G40Xx16Yy16;
Vector change
Vector hold
The compensation direction is determined by the tool diameter compensation commands (G41,
G42) and compensation amount sign.
Compensation amount
sign
G41
Left-hand compensation
Right-hand compensation
G42
Right-hand compensation
Left-hand compensation
G code
The compensation direction can be changed by changing the compensation command in the
compensation mode without the compensation having to be first canceled. However, no change is
possible in the compensation start block and the following block.
Refer to section 12.3.5 "Precautions for tool diameter compensation" for the movement when the
symbol is changed.
Linear
Linear
Tool center path
r
Point of intersection
r
Program path
G41
G41
G42
r
r
117
If there is no point of
intersection when the
compensation direction
is changed.
Linear Circular
r
r
r
G41
G42
G41
G42
G41
r
Program path
r
Linear return
G41
Tool center path
G42
Program path
Arc exceeding 360 due to compensation
G42
Tool center
path
Program
path
G41
G42
Uncut section
118
When the following command is issued in the compensation mode, the offset vectors are
temporarily eliminated and a return is then made automatically to the compensation mode.
In this case, the compensation is not canceled, and the tool goes directly from the intersection
point vector to the point without vectors or, in other words, to the programmed command point.
When a return is made to the compensation mode, it goes directly to the intersection point.
(1) Reference point return command
S
Intermediate point
N6
N7
N8
N5
Y30.
Y-40.
Y-60.
Y40.
;
;
;
;
(G41)
N5
G91 G01 X60.
N6
G28
X50.
N7
X30.
N8
X70.
(G41)
Point of
intersection
r
Program path
(3) The compensation vector will be eliminated temporarily with the G53 command (basic
machine coordinate system selection).
(Note 1) The offset vectors do not change with the coordinate system setting (G92)
command.
119
Y60.
N2 G41
D10
N3 X20. Y-50.
N4 X50. Y-20.
N3
Block without
movement
N1
N4
X30. Y60. ;
G41 D10 ;
G4 X1000 ;
Block without
F100 ;
movement
S500 ;
M3 ;
X20. Y-50. ;
X50. Y-20. ;
N2, 3, 4, 5, 6
N7
Point of
intersection
N1
N8
N2
N1
N2
N3
N4
N5
N6
N7
120
N5
N6
N1
Point of
intersection
N7
N8
N7
Y200. ;
Block without
movement
P1000 ;
N8 X200. ;
N8
N6
N6
Block N7 is executed
here.
When 4 or more blocks without movement follow in succession or if there is a pre-read inhibit
M code, the offset vectors are created perpendicularly at the end point of the previous block.
N11
N6
X100.
Y200. ;
N7
G4
N8
F100 ;
N9
S500 ;
N6
N7
X1000 ;
Block without
movement
N11
N10
N6
N10 M4 ;
N11 W100. ;
In this case, a cut results.
N6
X100. Y200.
N7
G40
N8
X100. Y50.
N8
;
N7
M5 ;
;
N6
121
(1) If the final movement command block in the four blocks before the G40 block is the G41 or
G42 mode, it will be assumed that the movement is commanded in the vector I, J or K direction
from the end point of the final movement command. After interpolating between the
hypothetical tool center path and point of intersection, it will be canceled. The compensation
direction will not change.
(a,b)
(i,j)
Tool center path
N2
G41
N1 (G41) G1X_ ;
N2 G40XaYbIiJj;
N1
Program path
In this case, the point of intersection will always be obtained, regardless of the compensation
direction, even when the commanded vector is incorrect as shown below.
(a,b)
N2
Tool center path
G41
A
r
N1
Program path
(i,j)
122
If the compensation vector obtained with point of intersection calculation is extremely large, a
perpendicular vector will be created in the block before G40.
(a,b)
G40
Tool center path
G41
Program path
A
r
(i,j)
r
Hypothetical tool center path
(2) If the arc is 360 or more due to the details of I, J and K at G40 after the arc command, an
uncut section will occur.
r
Uncut section
N2
N1 (G42,G91) G01X200. ;
(i,j)
Program path
Tool center path
N2 G02 J150. ;
N3 G40 G1X150. Y-150. I-100. J100. ;
N1
r
G42
G40
N3
Corner movement
When a multiple number of offset vectors are created at the joints between movement command
blocks, the tool will move in a straight line between those vectors.
This action is called corner movement.
When the vectors do not coincide, the tool moves in order to machine the corner although this
movement is part and parcel of the joint block. Consequently, operation in the single block mode
will execute the previous block + corner movement as a single block and the remaining joining
movement + following block will be executed as a single block in the following operation.
N1
Program path
N2
Center of circular
123
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, J type vector (G17 plane) created by this command is now described. (Similar
descriptions apply to vector I, K for the G18 plane and to J, K for the G19 plane.)
As shown in the figures, the vectors with a size equivalent to the offset amount are made to serve
as the I, J type compensation vector perpendicularly to the direction designated by I, J without the
intersection point of the programmed path being calculated. the I, J vector can be commanded
even in the mode (G41/G42 mode in the block before) and even at the compensation start (G40
mode in the block before).
(1) When I, J is commanded at compensation start
N110
N120
N130
N140
N100
X
(G40)
N150
N100
N110
N120
N130
N140
N150
D1
I150. D1 ;
Program path
Tool center path
Y
N3
(G40)
N2
D1 N1
124
N1
G41
I150. D1 ;
N2
N3
(3) When I, J has been commanded in the G41/G42 mode (G17 plane)
(I,J)N110
(2)
D1
(1)
(2)
Program path
N100
N120
(N120)
Y
X
(K,I) N110
(G18
N100 G41
N110 G02
N120 G00
N100
N120
(N120)
G41 G91)
G00 Z150. I50. ;
K50. ;
Z150. ;
Z
(b) G19 plane
(J,K) N110
(G19 G41 G91)
N100 G41 G00 Y150. K50. ;
N110 G02 J50. ;
N120 G00 Y150. ;
N100
N120
(N120)
Z
125
N4
(I,J)
N2
N1
N5
N1
G41
D1
G01
F1000 ;
N2
G91
X100. Y100. ;
N3
G41
I50. ;
N4
X150. ;
N5
G40 ;
D1
Direction of offset vectors
(100, 0 IJ direction)
(-100, 0 IJ direction)
(-100, 0 IJ direction)
126
N1
x
N3
(I,J)
N4
D2
N2
D1
N5
N6
G28
X0 Y0 ;
N2
G41
D1
N3
G01
G91
N4
G42
X100.
N5
X100.
N6
G40 ;
N7
M02 ;
F1000 ;
X100.
I100.
Y100. ;
J-100.
D2 ;
Y-100. ;
The offset amounts are determined by the offset number (modal) in the block with the I, J
designation.
< Example 1>
(G41
A D1
D1
(I,J)
N100
D1 G91)
N110
X
Vector A is the offset amount entered in offset number modal D1 in the N200 block.
< Example 2>
(G41
B
D1
(I,J)
N200
X
D1
G91)
D2
N200
N210
N210
Vector B is the offset amount entered in offset number modal D2 in the N200 block.
127
D2 ;
Precautions
(1) Issue the I, J type vector in a linear mode (G0, G1). If it is issued in an arc mode at the start of
compensation, program error (P151) will result.
An IJ designation in an arc mode functions as an arc center designation in the offset mode.
(2) When the I, J type vector has been designated, it is not deleted (avoidance of interference)
even if there is interference.
Consequently, overcutting may arise in such a case.
Y
Cut section
(I,J)
N2
N4
N5
N6
N1
G28
X0Y0 ;
N2
G42
D1
N3
G91
X100. ;
N4
G42
X100.
N5
X100.
N6
G40 ;
N7
M02 ;
F1000 ;
Y100. I10. ;
Y-100. ;
N3
(3) The vectors differ for the G38 I _J_ (K_) command and the G41/G42 I_J_(K_) command.
(G41)
G41 G91 X100. I50. J50. ;
Example
(G41)
G41/G42
G38
(I J)
(I J)
(Offset amount)
128
(Offset amount)
(4) Refer to the following table for the offset methods based on the presence and/or absence of
the G41 and G42 commands and I, J, (K) command.
G41/G42
I, J (K)
No
No
Offset method
No
Yes
Yes
No
Yes
Yes
I, J, type vector
No insertion block
N3
(I,J)
N4
N1
G91
G01
N2
X-150.
N3
G41
N4
X-150.
N5
G40
G41
X200. D1
F1000 ;
Y150. ;
X300.
I50. ;
Y-150. ;
X-200. ;
N2
Y
During the I, J type vector compensation,
the A insertion block will not exist.
N1
X
N5
129
Tool radius compensation is valid in any automatic operation mode-whether memory or MDI
operation.
An interrupt based on MDI will give the result as in the figure below after block stop during memory
operation.
(1) Interrupt without movement (tool path does not change)
S (Stopping position
for single block)
N1 G41D1;
N2 X20. Y50. ;
MDI interrupt
N2
N3
MDI interrupt
S
MDI interrupt
130
N3
Manual interrupt
Interrupt
Interrupt
131
Workpiece
132
As a principle, the offset No. must not be changed during the compensation mode. If changed, the
movement will be as shown below.
When offset No. (offset amount) is changed:
G41 G01 ............................. Dr1 ;
N101
N102
N103
G0
G0
Xx1
Xx2
Xx3
Yy1
Yy2
Yy3
= 0, 1, 2, 3
;
Dr2 ; ................................... Offset No. changed
;
linear
The offset amount designated
with N102 will be applied.
r2
r1
r1
N102
N101
N103
Program path
r1
r1
Program path
r1
r2
r2
133
r1
r2
circular
r2
r1
N102
G02
r1
N101
Center of circular
r1
Program path
r1
N101
r1
r1
N102
G03
r2
Center of circular
(3) Circular
circular
Tool center path
r1
Program path
N101
r1
N102
r2
Center of circular
Center of circular
r1
r1
r1
r1
r2
Tool center path
Program path
Center of circular
Center of circular
134
Often when starting cutting, a method of applying a radius compensation (normally the XY plane)
beforehand at a position separated for the workpiece, and then cutting in with the Z axis is often
used. When using this method, create the program so that the Z axis movement is divided into the
two steps of rapid traverse and cutting feed after nearing the workpiece.
Example of program
N6
N6
N4
N1
Y
N1
With this program, at the start of the N1 compensation the program will be read to the N6 block.
The relation of N1 and N6 can be judged, and correct compensation can be executed as shown
above.
If the above program's N4 block is divided into two
N1
N1
N2
N3
N4
N5
N6
G01 Z-50.
Y 100.
N6
N4
F1 ;
F2 ;
N5
N6
Y
Cut in
N1
X
In this case, the four blocks N2 to N5 do not have a command in the XY plane, so when the N1
compensation is started, the program cannot be read to the N6 block.
As a result, the compensation is done based only on the information in the N1 block, and the
compensation vector is not created at the start of compensation. Thus, an excessive cut in occurs
as shown above.
135
In this case, consider the calculation of the inner side, and before the Z axis cutting, issue a
command in the same direction as the direction that the Z axis advances in after lowering, to
prevent excessive cutting.
N1
N2
N3
N4
N5
N6
Y100.
S1000 ;
N6
N6
M3 ;
Z-250. ;
G01 Z-50.
N6
N4
F1 ;
N2
N5
N2
Y 100. F2 ;
N1
N1
X
The movement is correctly compensated as the same direction as the N6 advance direction is
commanded in N2.
136
(1) Outline
A tool, whose radius has been compensated with the tool radius compensation function by the
usual 2-block pre-read, may sometimes cut into the workpiece. This is known as interference,
and interference check is the function which prevents this from occurring.
There are three types of interference check, as indicated below, and each can be selected for
use by parameter.
Function
Parameter
Operation
Interference check
alarm function
#8102 : OFF
#8103 : OFF
Interference check
avoidance function
#8102 : ON
#8103 : OFF
Interference check
invalid function
#8103 : ON
(Note)
Detailed description
(Example)
Avoidance path
Outer diameter
of tool
(G41)
N1 G90 G1 X50.
N2 X70. Y-100.;
N3 X120. Y0;
Y-100.;
N1
N3
N2
Cutting with N2
Cutting with N2
137
(1)
(4)'
(3)'
(3)
(2)'
(4)
N3
(1)'
N1
N2
No interference
No interference
Interference
With the above process, the vectors (1), (2), (3)' and (4)' will remain as the valid vectors, and
the path that connects these vectors will be executed as the interference avoidance path.
138
If there is a movement command in three of the five pre-read blocks, and if the compensation
calculation vectors created at the contacts of each movement command intersect, it will be viewed
as an interference.
Tool center path
Program path
r
N3
N1
Vectors intersect
N2
When interference check cannot be executed
N5
Interference check is not possible
N2
N3
N4
139
The movement will be as shown below when the interference avoidance check is used.
Tool center path
Program path
N3
N1
N2
Program path
N2
N3
N1
Linear movement
r
Program path
N2
N1
N3
Center of circular
140
N3
Avoidance
vector
N2
Tool center path
N1
Program path
Avoidance
vector
N4
r2
r1
Avoidance vector 1
Avoidance vector 2
N3
r2
r1
N1
Program path
In the case of the figure below, the groove will be left uncut.
Interference
avoidance path
Tool center path
Program path
141
N2
N1
N2
N3
23
4
(2) When the interference check avoidance function has been selected
(a) When there are valid vectors at the end point of the following block even when all the
vectors at the end point of its own block have been deleted.
(i)
N4
3
N3
Alarm stop
N1
1234
N4
N1
N2
142
N2
N3
Alarm stop
N1
N2
N4
N3
Alarm stop
N1
N2
N4
N3
Angle of
intersection
(c) When the program advance direction and the advance direction after compensation are
reversed
In the following case, interference is still regarded as occurring even when there is
actually no interference.
When grooves which are narrower than the tool radius or which have parallel or widening
walls are programmed
Program path Tool center
path
Stop
143
The tool offset and workpiece offset can be set or changed on the tape using the G10 command.
During the absolute value (G90) mode, the commanded offset amount will become the new offset
amount, and during the incremental value (G91) mode, the commanded offset amount will be
added to the currently set offset amount to create the new offset amount.
Command format
The offset amount in the G91 will be an incremental value and will be cumulated
each time the program is executed. Command G90 or G91 before the G10 as a
cautionary means to prevent this type of error.
: Offset No.
: Offset amount
144
Detailed description
(1) Program error (P171) will occur if this command is input when the specifications are not
available.
(2) G10 is an unmodal command and is valid only in the commanded block.
(3) The G10 command does not contain movement, but must not be used with G commands
other than G21, G22, G54 to G59, G90 or G91.
(4) If an illegal L No. or offset No. is commanded, the program errors (P172 and P170) will occur
respectively.
If the offset amount exceeds the maximum command value, the program error (P35) will
occur.
(5) Decimal point inputs can be used for the offset amount.
(6) The offset amounts for the external workpiece coordinate system and the workpiece
coordinate system are commanded as distances from the basic machine coordinate system
zero point.
(7) The workpiece coordinate system updated by inputting the workpiece coordinate system will
follow the previous modal (G54 to G59) or the modal (G54 to G59) in the same block.
(8) L2 can be omitted when the workpiece offset is input.
(9) Do not command G10 in the same block as fixed cycles and subprogram call commands.
This will cause malfunctioning and program errors.
Example of program
145
G00 X100000 ;
#1 = 1000 ;
M98 P1111 L4 ;
a
b1, b2, b3, b4
Subprogram O1111
N1
G01 G91 G43 Z0 H10 F100 ;
G01 X1000 ;
#1 = #1 1000 ;
G90 G10 L10 P10 R#1 ;
M99;
(b1)
c1
d1
(b2)
(b3)
(b4)
c2
d2
c3
d3
c4
d4
(a)
(Note)
Final offset amount
will be H10= 5000.
G00 X100000 ;
M98 P1111 L4 ;
Subprogram
O1111 N1
G01 G91 G43 Z0 H10 F100 ;
N2
G01 X1000 ;
N3
N4
146
N101
N102
M02 ;
-X
-20.
-10.
N100
-X
-X
N101
(W1)
-10.
N102
W1
-Y
-Y
-20.
-Y
X = +5.000
Y=0
Y = +5.000
147
(4) When using one workpiece coordinate system as multiple workpiece coordinate
systems
#1 = 50. #2 = 10. ;
M98
P200 L5 ;
M02 ;
%
N1
G90 G54 G10 L2 P1 X#1 Y#1 ;
N2
G00 X0 Y0 ;
N3
X5. F100 ;
N4
X0 Y5. ;
N5
Y0 ;
N6
#1 = #1 + #2 ;
N7
M99 ;
%
Main program
Subprogram
O200
-X
-60.
-50.
-40.
-30.
-10.
-20.
G54
-10.
5th time
G54
-20.
4th time
W
G54
-30.
3rd time
G54
G54
-40.
2nd time
-50.
-Y
1st time
Precautions
(1) Even if this command is displayed on the screen, the offset No. and variable details will not be
updated until actually executed.
N1 G90 G10 L10 P10R100 ;
N2 G43 Z10000 H10 ;
N3 G0 X10000 Y10000 ;
N4 G90 G10 L10 P10 R200 ; .. The H10 offset amount is updated when the N4 block is
executed.
148
Canned cycles
These standard canned cycles are used for predetermined sequences of machining operations
such as positioning, hole drilling, boring, tapping, etc. which are specified in a block. The various
sequences in the table below are provided for the standard canned cycles.
By editing the standard canned cycle subprogram, the canned cycle sequence can be changed by
the user. The user can also register and edit an original canned cycle program. For the standard
canned cycle subprogram, refer to the list of the canned cycle subprogram in the appendix of the
operation manual. The list of canned cycle functions for this control unit is shown below.
G code
G80
Application
Cancel
G81
Cutting feed
Rapid feed
G82
Cutting feed
Yes
Rapid feed
Drill, counter
boring cycle
G83
Intermittent feed
Rapid feed
G84
Cutting feed
Yes
Reverse
rotation
Cutting feed
Tapping cycle
G85
Cutting feed
Cutting feed
Boring cycle
G86
Cutting feed
Yes
Stop
Rapid feed
Boring cycle
G87
Cutting feed
Forward
rotation
Cutting feed
G88
Rapid traverse
Yes
Stop
Rapid feed
Boring cycle
G89
Cutting feed
Yes
Cutting feed
Boring cycle
G73
Cutting feed
Yes
Rapid feed
Stepping cycle
G74
Intermittent feed
Yes
Forward
rotation
Cutting feed
Reverse tapping
cycle
G76
Cutting feed
Oriented
spindle stop
Rapid feed
A canned cycle mode is canceled when the G80 or any G command in (G00, G01, G02, G03) is
issued. The various data will also be cleared simultaneously to zero.
149
Canned cycles
Command format
G8 (G7)
X__ Y__ Z__ R__ Q__ P__ F__ L__ S__ , S __ ,R __ ,I__ ,J__;
G8 (G7)
L__
: Number of repetitions
S__
, S__
, R__
: Synchronization changeover
, I__
,J__
As shown above, the format is divided into the hole machining mode, hole positioning data, hole
machining data, No. of repetitions, spindle rotation speed, synchronization changeover (or spindle
rotation speed at during retract), positioning axis in-position width and drilling axis in-position width.
Detailed description
150
Canned cycles
(3) There are 7 actual operations which are each described in turn below.
Operation 1
Operation 2
Initial point
Operation 3
Operation 7
R point
Operation 4
Operation 6
Operation 5
Operation 1 : This indicates the X and Y axes positioning, and executes positioning with G00.
Operation 2 : This is an operation done after positioning is completed (at the initial hole), and
when G87 is commanded, the M10 command is output from the control unit to
the machine. When this M command is executed and the finish signal (FIN) is
received by the control unit, the next operation will start. If the single block stop
switch is ON, the block will stop after positioning.
Operation 3 : The tool is positioned to the R point by rapid traverse.
Operation 4 : Hole machining is conducted by cutting feed.
Operation 5 : This operation takes place at the hole bottom position and it differs according to
the canned cycle mode. Possible actions include spindle stop (M05) spindle
reverse rotation (M04), spindle forward rotation (M03), dwell and tool shift.
Operation 6 : The tool is retracted to the R point.
Operation 7 : The tool is returned to the initial pint at the rapid traverse rate.
Whether the canned cycle is to be completed at operation 6 or 7 can be selected by the
following G commands.
G98 ............ Initial level return
G99 ............ R point level return
These are modal commands, and for example, if G98 is commanded once, the G98 mode will
be entered until G99 is designated. The initial state when the NC is ready is the G98 mode.
The hole machining data will be ignored if X, Y, Z or R is not commanded. This function is
mainly used with the special canned cycled.
(4) Canned cycle addresses and meanings
Address
Significance
Selection of hole machining cycle sequence (G80 to G89, G73, G74, G76)
Designation of cut amount for each cutting pass with G73 or G83, or
designation of the shift amount at G76 or G87 (incremental value)
I, J, K
,S
,R
151
Canned cycles
(5) Difference between absolute value command and incremental value command
For absolute value
-r
R point
R point
+r
-z
-z
Workpiece
Workpiece
, R00
, Rxx
No designation
OFF
, R01
ON
Synchronous/
asynchronous
Asynchronous
Synchronous
G94
G95
Control parameter
F1-digit value
OFF
ON
F command value
Feed designation
F designation
Per-minute feed
Other than F0 to
F8
F0 to F8 (no
decimal point)
F1-digit feed
F designation
Per-revolution feed
,S
Meaning of
address
Spindle rotation
speed during
retract
152
Command range
(unit)
Remarks
Canned cycles
The canned cycle has basic control elements for the positioning plane and hole drilling axis. The
positioning plane is determined by the G17, G18 and G19 plane selection command, and the hole
drilling axis is the axis perpendicular (X, Y, Z or parallel axis) to the above plane.
Plane selection
Positioning plane
G17 (X Y)
Xp Yp
Zp
G18 (Z X)
Zp Xp
Yp
G19 (Y Z)
Yp Zp
Xp
Xp, Yp and Zp indicate the basic axes X, Y and Z or an axis parallel to the basic axis.
A random axis other than the hole drilling axis can be commanded for positioning.
The hole drilling axis is determined by the axis address of the hole drilling axis commanded in the
same block as G81 to G89, G73, G74 or G76. The basic axis will be the hole drilling axis if there is
no designation.
(Example 1) When G17 (XY plane) is selected, and the axis parallel to the Z axis is set as the W
axis.
G81 ... W__;
The W axis is used as the hole drilling axis.
G81 ... Z __;
The Z axis is used as the hole drilling axis.
G81 ... ;
(No Z or W) The Z axis is used as the hole drilling axis.
(Note 1) The hole drilling axis can be fixed to the Z axis with parameter #1080 Dril_Z.
(Note 2) Change over the hole drilling axis in the canned cycle canceled state.
In the following explanations on the movement in each canned cycle mode, the XY plane is used
for the positioning plane and the Z axis for the hole drilling axis.
Note that all command values will be incremental values, the positioning plane will be the XY plane
and the hole drilling axis will be the Z axis.
153
Canned cycles
(1)
r1
(2)
(4)
(3)
(4)
(1)
(2)
(3)
(4)
G0 Xx1 Yy1
G0 Zr1
G1 Zz1 Ff1
G98 mode G0Z (z1+r1)
G99 mode G0Z z1
z1
G98 G99
mode mode
The operation stops at after the (1), (2) and (4) commands during single block operation.
Operation
pattern
i1
(1)
Valid
(2)
Invalid
(3)
Invalid
(4)
Valid
j1
x1 , y1
(1)
(2)
(3)
r1
(5)
(5)
z1
(1)
(2)
(3)
(4)
(5)
G0 Xx1 Yy1
G0 Zr1
G1 Zz1 Ff1
(Dwell)
G4 Pp1
G98 mode G0Z (z1+r1)
G99 mode G0Z z1
G98 G99
mode mode
(4)
Operation
pattern
i1
j1
(1)
Valid
(2)
Invalid
(3)
Invalid
(4)
(5)
Valid
The operation stops at after the (1), (2) and (5) commands during single block operation.
154
Canned cycles
(1)
x1,y1
(2)
r1
q1
(3) (4)
(5)
q1
(6)
Operation
pattern
i1
(1)
Valid
(2)
Invalid
(3)
Invalid
(4)
Invalid
(5)
Invalid
(6)
Invalid
(7)
Invalid
(8)
Invalid
(9)
Invalid
(10)
Invalid
(7)
(8) (10)
(9)
z1
(n)
(n)
(n) - 1
G98 G99
mode mode
j1
:
:
(n)-1
Invalid
(n)
Valid
When executing a second and following cutting in the G83 as shown above, the
movement will change from rapid traverse to cutting feed several mm before the position
machined last. When the hole bottom is reached, the axis will return according to the G98
or G99 mode.
m will differ according to the parameter "#8013 G83 n". Program so that q1>m.
The operation stops at after the (1), (2) and (n) commands during single block operation.
155
Canned cycles
x1 ,y1
r1
(2)
(7)
(3)
(6)
(6)
(4) (5)
G98
mode
Operation
pattern
i1
j1
(1)
Valid
(2)
Invalid
(3)
Invalid
(4)
(5)
(6)
Invalid
(7)
(8)
(9)
Valid
z1
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
G0 Xx1 Yy1
G0 Zr1
G1 Zz1 Ff1
G4 Pp1
M4 (Spindle reverse rotation)
G1 Z z1 Ff1
G4 Pp1
M3 (Spindle forward rotation)
G98 mode G0Z r1
(9)
G99 mode No movement
G99
mode
When r2 = 1, the synchronous tapping mode will be entered, and when r2 = 0, the
asynchronous tapping mode will be entered.
When G84 is executed, the override will be canceled and the override will automatically
be set to 100%.
Dry run is valid when the control parameter "G00 DRY RUN" is on and is valid for the
positioning command. If the feed hold button is pressed during G84 execution, and the
sequence is at (3) to (6), the movement will not stop immediately, and instead will stop
after (6). During the rapid traverse in sequence (1), (2) and (9), the movement will stop
immediately.
The operation stops at after the (1), (2) and (9) commands during single block operation.
During the G84 modal, the "Tapping" NC output signal will be output.
During the G84 synchronous tapping modal, the M3, M4, M5 and S code will not be
output.
156
Canned cycles
T2
T1
T1
T1
S1
S'
S2
Smax
T2
S'
S1
S2
T2
157
Canned cycles
(ii) When synchronous tap changeover spindle rotation speed 2 < spindle rotation speed
during return
Smax
S2
S(S1)
T3
T1
T2
T1
T1
T1
S1
S2
S'(Smax)
T2
T3
S'
S1
S2
T2
T3
158
Canned cycles
x1 , y1
(2)
(5)
(3)
(4)
r1
G0 Xx1 Yy1
G0 Zr1
G1 Zz1 Ff1
G1 Z z1 Ff1
(5) G98 mode G0Z r1
G99 mode No movement
(1)
(2)
(3)
(4)
z1
(4)
G98 G99
mode mode
The operation stops at after the (1), (2), and (4) or (5) commands during single block
operation.
(f)
G86 (Boring)
Program
G86 Xx1 Yy1 Zz1 Rr1 Ff1 Pp1 ;
(1)
x1 , y1
(7)
r1
(2)
(7)
(3)
(4)(5)
(6)
(6)
z1
(1)
(2)
(3)
(4)
(5)
G0 Xx1 Yy1
G0 Zr1
G1 Zz1 Ff1
G4 Pp1
M5 (Spindle stop)
G98 mode G0Z (z1+r1)
(6)
G99 mode G0Z z1
(7) M3 (Spindle forward rotation)
G98 G99
mode mode
The operation stops at after the (1), (2) and (7) commands during single block operation.
159
Canned cycles
(1)
x1 , y1
(3) Xq1(Yq2)
(12)(11)
(2)
(10)
r1
(8) (9)
(4)
(7)
z1
(6) (5)
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
G0 Xx1 Yy1
M19 (Spindle orient)
G0 Xq1 (Yq2) (Shift)
G0 Zr1
G1 Xq1 (Yq2) Ff1 (Shift)
M3 (Spindle forward rotation)
G1 Zz1 Ff1
M19 (Spindle orient)
G0 Xq1 (Yq2) (Shift)
G98
mode G0Z (z1+r1)
(10)
G99 mode G0Z (r1+z1)
(11) G0 Xq1 (Yq2) (Shift)
(12) M3 (Spindle forward rotation)
The operation stops at after the (1), (4), (6) and (11) commands during single block
operation.
When this command is used, high precision drilling machining that does not scratch the
machining surface can be done.
(Positioning to the hole bottom and the escape (return) after cutting is executed in the
state shifted to the direction opposite of the cutter.)
The shift amount is designated as shown below with addresses I, J and K.
Tool during cutting
Tool after cutting
For G17 : I, J
For G18 : K, I
For G19 : J, K
Cutter
Cancel
Cancel
Spindle orient
position
Shift
Shift
Machining hole
Shift amount
The shift amount is executed with linear interpolation, and the feed rate follows the F
command.
Command I, J, and K with incremental values in the same block as the hole position data.
I, J and K will be handled as modals during the canned cycle.
(Note) If the parameter "#1080 Dril_Z" which fixes the hole drilling axis to the Z axis is
set, the shift amount can be designated with address Q instead of I and j. In this
case, whether to shift or not and the shift direction are set with parameter
"#8207 G76/87 IGNR" and "#8208 G76/87 ()". The symbol for the Q value is
ignored and the value is handled as a positive value.
The Q value is a modal during the canned cycle, and will also be used as the
G83, G73 and G76 cutting amount.
160
Canned cycles
x1 , y1
G0 Xx1 Yy1
G0 Zr1
G1 Zz1 Ff1
G4 Pp1
M5 (Spindle stop)
Stop when single block stop
switch is ON.
(7) Automatic start switch ON
G98 mode G0Z (z1+r1)
(8)
G99 mode G0Z z1
(9) M3 (Spindle forward rotation)
(1)
(2)
(3)
(4)
(5)
(6)
(9)
(2)
r1
(9)
(3)
(8)
(8)
(4)(5)(6)(7)
z1
G98 G99
mode mode
The operation stops at after the (1), (2), (6) and (9) commands during single block
operation.
(i)
G89 (Boring)
Program
G89 Xx1 Yy1 Zz1 Rr1 Ff1 Pp1 ;
(1) x1 , y1
(2)
(6)
(3)
(5)
(4)
r1
(5)
z1
(1)
(2)
(3)
(4)
(5)
G0 Xx1 Yy1
G0 Zr1
G1 Zz1 Ff1
G4 Pp1
G1 Z z1 Ff1
(6) G98 mode G0Z r1
G99 mode No movement
G98 G99
mode mode
The operation stops at after the (1), (2) and (5) or (6) commands during single block
operation.
161
Canned cycles
x1 , y1
r1
(2)
q
(3) m
(5)
(6)
(n)
(4)
q
(n)
(1)
(2)
(3)
(4)
(5)
(6)
:
(n)
G0
G0
G1
G4
G0
G1
Xx1 Yy1
Zr1
Zq1 Ff1
Pp1
Zm
Z (q1 + m)
z1
(n) -1
Ff1
G98
mode
G99
mode
When executing a second and following cutting in the G73 as shown above, the
movement will return several m mm with rapid traverse and then will change to cutting
feed.
The return amount m will differ according to the parameter "#8012 G73 n".
The operation stops at after the (1), (2) and (n) commands during single block operation.
162
Canned cycles
x1 ,y1
(2)
(9)
(7)(8)
r1
(7) (8)
(3)
(4)(5)
(6)
(6)
G98
mode
G99
mode
z1
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
G0 Xx1 Yy1
G0 Zr1
G1 Zz1 Ff1
G4 Pp1
M3 (Spindle forward rotation)
G1 Z z1 Ff1
G4 Pp1
M4 (Spindle reverse rotation)
(9) G98 mode G0Z r1
G99 mode No movement
When r2 = 1, the synchronous tapping mode will be entered, and when r2 = 0, the
asynchronous tapping mode will be entered.
When G74 is executed, the override will be canceled and the override will automatically
be set to 100%. Dry run is valid when the control parameter "#1085 G00Drn" is set to "1"
and is valid for the positioning command. If the feed hold button is pressed during G74
execution, and the sequence is at (3) to (6), the movement will not stop immediately, and
instead will stop after (6). During the rapid traverse in sequence (1), (2) and (9), the
movement will stop immediately.
The operation stops at after the (1), (2) and (9) commands during single block operation.
During the G74 and G84 modal, the "Tapping" NC output signal will be output.
During the G74 synchronous tapping modal, the M3, M4, M5 and S code will not be
output.
This function allows spindle acceleration/deceleration pattern to be approached to the
speed loop acceleration/deceleration pattern by dividing the spindle and drilling axis
acceleration/deceleration pattern into up to three stages during synchronous tap.
Refer to the item "d) G84 (Tapping cycle)" for details of multi-stages of the spindle
acceleration/deceleration pattern.
163
Canned cycles
x1 , y1
(1)
(8)
(2)
r1
(7)
(8)
(3)
(6) z1
(6)
G0 Xx1 Yy1
G0 Zr1
G1 Zz1 Ff1
M19 (Spindle orient)
G1 Xq1 (Yq2) Ff1 (Shift)
G98 mode G0Z (z1+r1)
(6)
G99 mode G0Z z1
(7) G0 X q1 (Y q2) Ff1
(Shift)
(8) M3 (Spindle forward rotation)
(1)
(2)
(3)
(4)
(5)
The operation stops at after the (1), (2) and (7) commands during single block operation.
When this command is used, high precision drilling machining that does not scratch the
machining surface can be done.
(Positioning to the hole bottom and the escape (return) after cutting is executed in the
state shifted to the direction opposite of the cutter.)
Tool during cutting
Tool after cutting
Cutter
Spindle
orient
position
Cancel
Cancel
ShiftShift
Machining hole
Shift amount
Command I, J, and K with incremental values in the same block as the hole position data.
I, J and K will be handled as modals during the canned cycle.
(Note)
If the parameter "#1080 Dril_z" which fixes the hole drilling axis to the Z axis is
set, the shift amount can be designated with address Q instead of I and J. In this
case, whether to shift or not and the shift direction are set with parameter
"#8207 G76/87 IGNR" and "#8208 G76/87 ()". The symbol for the Q value is
ignored and the value is handled as a positive value.
The Q value is a modal during the canned cycle, and will also be used as the
G83, G87 and G73 cutting amount.
164
Canned cycles
(1) Before the canned cycle is commanded, the spindle must be rotating in a specific direction
with an M command (M3 ; or M4 ;).
Note that for the G87 (back boring) command, the spindle rotation command is included in the
canned cycle so only the rotation speed command needs to be commanded beforehand.
(2) If there is a basic axis, additional axis or R data in the block during the canned cycle mode, the
hole drilling operation will be executed. If there is not data, the hole will not be drilled.
Note that in the X axis data, if the data is a dwell (G04) time command, the hole will not be
drilled.
(3) Command the hole machining data (Q, P, I, J, K) in a block where hole drilling is executed.
(Block containing a basic axis, additional axis or R data.)
(4) The canned cycle can be canceled by the G00 to G03 or G33 command besides the G80
command. If these are designated in the same block as the canned cycle, the following will
occur.
(Where, 00 to 03 and 33 are m, and the canned cycle code is n)
Gm
Gn X___Y___Z___R___Q___P___L___F___;
Execute Ignore
Gm
Ignore
Gn
Execute
Ignore
Record
X___Y___Z___R___Q___P___L___F___;
Execute
Ignore
Record
Note that for the G02 and G03 commands, R will be handled as the arc radius.
(5) If an M function is commanded in the same block as the canned cycle command, the M code
and MF will be output during the initial positioning. The next operation will be moved to with
FIN (finish signal).
If there is a No. of times designated, the above control will be executed only on the first time.
(6) If another control axis (ex., rotary axis, additional axis) is commanded in the same block as the
canned cycle control axis, the canned cycle will be executed after the other control axis is
moved first.
(7) If the No. of repetitions L is not designated, L1 will be set. If L0 is designated in the same block
as the canned cycle G code command, the hole machining data will be recorded, but the hole
machining will not be executed.
(Example) G73X___Y___Z___R___Q___P___F___L0___;
Execute
(8) When the canned cycle is executed, only the modal command commanded in the canned
cycle program will be valid in the canned cycle subprogram. The modal of the program that
called out the canned cycle will not be affected.
(9) Other subprograms cannot be called from the canned cycle subprogram.
(10) Decimal points in the movement command will be ignored during the canned cycle
subprogram.
(11) If the No. of repetitions L is 2 or more during the incremental value mode, the positioning will
also be incremented each time.
(Example) G91G81X10. Z50.R20.F100.L3 ;
Z
10.
10.
10.
X
165
Canned cycles
Whether to use R point or initial level for the return level in the final sequence of the canned cycle
can be selected.
Command format
G98 ;
G99 ;
G98
G99
Detailed description
The relation of the G98/G99 mode and No. of repetition designation is as shown below.
G98
No. of hole
Program
At power ON, at cancel
G99
drilling
example
with M02, M30, and reset
button
Only one
execution
G81X100.
Y100.
Z50.
R25.
F1000;
Initial point
Initial point
R point
R point
Second and
following
executions
G81X100.
Y100.
Z50.
R25.
L5F1000;
First
time
Second
time
Final
time
First
time
Second
time
Final
time
Example of program
(Example 1)
G82 Zz1 Rr1 Pp1 Ff1 L0 ;
Xx1 Yy1 ;
The No. of canned cycle repetitions is designated with L. If L1 is designated or L not designated,
the canned cycle will be executed once. The setting range is 1 to 9999.
If L0 is commanded, only the hole machining data will be recorded.
G8 (7) Xx1 Yy1 Zz1 Rr1 Pp1 Qq1 Ff1 Ll1 ;
166
Canned cycles
The ideology of the data differs between the absolute value mode (G90) and incremental value
mode (G91) as shown below.
R point
Z axis
absolute
R
value
Z zero point
R point
Designate a command value with a symbol for X, Y and Z. R indicates the coordinate value from
the zero point in the absolute value mode, so a symbol must always be added. However, in the
incremental value the symbol will be ignored and will be viewed as the same symbol as for Z. Note
that the symbols will be viewed in reverse for G87.
The hole machining data is held as shown below in the canned cycle. The hole machining data is
canceled when the G80 command or G commands (G00, G01, G02, G03, G2.1, G3.1, G33) in the
01 group are reached.
(Example 2)
N001 G81 Xx1 Yy1 Zz1 Rr1 Ff1 ;
N002 G81 ;
N004 M22 ;
N008 ;
No work
N012 Ww1 ;
(Note)
When the workpiece coordinates are changed over for address Z and R, re-program
even if the values are the same.
(Example)
G54
G81
G55
Xx4 Yy4 ;
Xx5 Yy5 ;
167
The special canned cycle is used with the standard canned cycle. Before using the special canned
cycle, program the canned cycle sequence selection G code and hole machining data to record
the hole machining data. (If there is no positioning data, the canned cycle will not be executed, and
only the data will be recorded.)
Even after the special canned cycle is executed, the recorded standard canned cycled will be held
until canceled.
If the special canned cycle is designated when not in the canned cycle mode, only positioning will
be executed, and the hole drilling operation will not be done.
Bolt hole circle (G34)
G34 X x1 Y y1 I r J K n ;
X, Y
:Positioning of bolt hole cycle center. This will be affected by G90/G91.
I
:Radius r of the circle. The unit follows the input setting unit, and is given with a
positive number.
J
:Angle of the point to be drilled first. The CCW direction is positive.
(The decimal point position will be the degree class. If there is no decimal point,
the unit will be 0.001.)
K
:No. of holes n to be drilled. 1 to 9999 can be designated, but 0 cannot be
designated. When the value is positive, positioning will take place in the CCW
direction, and when negative, will take place in the CW direction. If 0 is
designated, the alarm P221 Special Canned Holes Zero will occur.
Drilling of n obtained by dividing the circumference by n will start at point created by the Z axis and
angle . The circumference is that of the radius R centering on the coordinates designated with XX
and Y. The hole drilling operation at each hole will hold the drilling data for the standard canned
cycle such as G81.
The movement between hole positions will all be done in the G00 mode. G34 will not hold the data
even when the command is completed.
(Example)
When input setting unit is 0.001mm
N001 G91 ;
N002 G81 Z 10000 R5000 L0
F200 ;
N003 G90 G34 X200000 Y100000 I100000 J20000
N004 G80 ; ............... (Cancel of G81)
N005 G90 G0 X500000 Y100000 ;
x1=200mm
K6
n = 6 holes
20
y1=100mm
I=100mm
(500mm, 100mm)
Position before
N005 G0 command
G34 is executed
As shown in the example, the tool position after the G34 command is completed is over
the final hole. When moving to the next position, the coordinate value must be
calculated to issue the command with an incremental value. Thus, use of the absolute
value mode is handy.
168
G35 X x1 Y y1 I d J K n ;
X, Y
:Designation of start point coordinates. This will be affected by G90/G91.
I
:Interval d. The unit follows the input setting unit. If d is negative, the drilling will
take place in the direction symmetrical to the point that is the center of the start
point.
J
:Angle . The CCW direction is positive.
(The decimal point position will be the degree class. If there is no decimal point,
the unit will be 0.001.)
K
:No. of holes n to be drilled. 1 to 9999 can be designated, and the start point is
included.
Using the position designated by X and Y as the start point, the Zn holes will be drilled with interval
d in the direction created by X axis and angle . The hole drilling operation at each hole position will
be determined by the standard canned cycle, so the hole drilling data (hole machining mode and
hole machining data) must be held beforehand. The movement between hole positions will all be
done in the G00 mode. G35 will not hold the data even when the command is completed.
(Example)
When input setting unit is 0.001mm
G91
G81
G35
;
Z 10000 R5000 L0 F100 ;
X200000 Y100000 I100000 J30000
K5
d=100mm
n = 5 holes
=30
y1=100mm
x1=200mm
Position before
G35 is executed
169
Arc (G36)
G36 X x1 Y y1 I r J P K n ;
X, Y
:Center coordinates of arc. This will be affected by G90/G91.
I
:Radius r of arc. The unit follows the input setting unit, and is given with a positive
No.
J
:Angle of the point to be drilled first. The CCW direction is positive. (The decimal
point position will be the degree class. If there is no decimal point, the unit will be
0.001.)
P
:Angle interval . When the value is positive, the drilling will take place in the CCW
direction, and in the CW direction when negative. (The decimal point position will
be the degree class. If there is no decimal point, the unit will be 0.001.)
K
:No. of holes n to be drilled. 1 to 9999 can be designated.
The n holes aligned at the angle interval will be drilled starting at point created by the X axis and
angle . The circumference is that of the radius R centering on the coordinates designated with XX
and Y. As with the bolt hole circle, the hole drilling operation at each hole will depend on the
standard canned cycle.
The movement between hole positions will all be done in the G00 mode. G36 will not hold the data
even when the command is completed.
(Example)
When input setting unit is 0.001mm
N001
N002
N003
G91
G81
G36
;
Z 10000 R5000 F100 ;
X300000 Y100000 I300000
J10000
P15000
K6 ;
n = 6 holes
=
15
Position before
G36 is executed
=10
y1=100mm
x1=300mm
170
Grid (G37.1)
G37.1 X x1 Y y1 I Dx P nx J Dy K ny ;
X, Y
:Designation of start point coordinates. This will be affected by G90/G91.
I
:Interval Dx of the X axis. The unit will follow the input setting unit. If Dx is positive,
the interval will be in the forward direction looking from the start point, and when
negative, will be in the reverse direction looking from the start point.
P
:No. of holes nx in the X axis direction. The setting range is 1 to 9999.
J
:Interval Dy of the Y axis. The unit will follow the input setting unit. If Dy is positive,
the interval will be in the forward direction looking from the start point, and when
negative, will be in the reverse direction looking from the start point.
K
:No. of holes ny in the Y axis direction. The setting range is 1 to 9999.
The nx points on a grid are drilled with an interval x parallel to the X axis, starting at the position
designated with X, Y. The drilling operation at each hole position will depend on the standard
canned cycle, so the hole drilling data (hole machining mode and hole machining data) must be
held beforehand.
The movement between hole positions will all be done in the G00 mode. G37.1 will not hold the
data even when the command is completed.
(Example)
When input setting unit is 0.01mm
G91 ;
G81 Z 10000 R5000 F20 ;
G37.1 X300000 Y100000 I50000
P10
J100000
Position before
G37 is executed
K8
ny = 8 holes
y=
100mm
y1=100mm
x=50mm
x1=300mm
nx = 10 holes
(Note 3) If a group 0 G command is issued in the same block as the G37.1 command,
the command issued later is the priority.
(Note 4) If there is a G72 to G89 command in the same block as the G37.1 command,
the canned cycle will be ignored, and the G37.1 command will be executed.
171
Subprogram control
Fixed sequences or repeatedly used patterns can be stored in the memory as subprograms which
can then be called from the main program when required. M98 serves to call subprograms and
M99 serves to return operation from the subprogram to the main program. Furthermore, it is
possible to call other subprograms from particular subprograms and the nesting depth can include
as many as 8 levels.
Main program
Subprogram
Subprogram
Subprogram
Subprogram
O0010 ;
O1000 ;
O1200 ;
O2000 ;
O2500 ;
N20 ;
M98 P1000 ;
M98 P1200
H20 ;
M98 P2500 ;
M98 P2000 ;
N60 ;
M02 ;
M99 P60 ;
M99 ;
M99 ;
(Level 1)
(Level 2)
Nesting depth
M99 ;
(Level 3)
(Level 4)
The table below shows the functions which can be executed by adding and combining subprogram
control functions and canned cycle functions.
1. Subprogram control
2. Canned cycles
Case 1
Case 2
Case 3
Case 4
No
No
Yes
No
Yes
Yes
No
Yes
Function
1. Memory operation
2. Subprogram call
3. Subprogram variable designation
(Note 2)
4. Subprogram nesting level call (Note 3)
5. Canned cycles
6. Canned cycle subprogram editing
(Note 1) " " denotes function which can be used and " " a function which cannot be used.
(Note 2) Variables cannot be transferred with the M98 command but variable commands in
subprograms can be used provided that the variable command specifications are
available.
(Note 3) A maximum of 8 nesting levels can be possible.
172
Subprogram control
Command format
Subprogram call
M98 P
P
H
L
L ;
:Program number of subprogram to be called (own program if omitted)
P can only be omitted during memory operation and MDI operation.
(Numerical value with up to 8 digits)
:Sequence number in subprogram to be called (head block if omitted)
(Numerical value with up to 5 digits)
:Number of subprogram repetitions (When omitted, this is interpreted at
L1, and is not excuted when L0)
(1 to 9999 with numerical value up to 4 digits)
For instance
M98
M98
M98
M98
M99 P H Q R L ;
M99
Subprogram return command
P_
Sequence number of return destination (return to the block that follows the
calling block if omitted)
H_
Program number of return destination (return to the main program at calling if
omitted)
Q_
Sequence number to start searching of return destination (the block that
follows the calling block will be handled as the search start position if omitted)
R_
Sequence number to finish searching of return destination (the block that
precedes the calling block will be handled as the search finish position if
omitted)
Number of times after repetition number has been changed ("-1" if omitted)
L_
Creating and entering subprograms
Subprograms have the same format as machining programs for normal memory operation except
that the subprogram completion instruction M99 (P__) is entered as an independent block at the
last block.
O
................................
................................
:
:
................................
M99 ;
% (EOR)
;
;
;
;
;
Subprogram return command
Entry completion code
(1) The above program is entered by editing operations at the setting and display unit. For further
details, refer to the section on program editing in the Control Instructions.
173
Subprogram control
(2) Only those subprogram numbers ranging from 1 through 99999999 designated by the optional
specifications can be used.
(3) No distinction between main programs and subprograms is made since they are entered in the
sequence in which they were read. This means that main programs and subprograms should
not be given the same numbers. (If they are, error "E11" appears during entry.)
Registration example
;
O
;
................................
:
M99
;
%
O
;
................................
:
M99
;
%
O****
;
................................
:
M99
;
%
;
Subprogram A
;
Subprogram B
;
Subprogram C
(4) Main programs can be entered in the memory or program by MDI operation but subprograms
must be entered in the memory.
(5) Besides the M98 command, subprogram nesting is subject to the following commands:
G65
Macro call
G66
Modal call
G66.1 Modal call
G code call
Miscellaneous function call (M, S, T, etc.)
Macro interrupt
MDI interrupt
Automatic tool length measurement
Multi-step skip function
(6) Subprogram nesting is not subject to the following commands which can be called even
beyond the 8th nesting level.
Canned cycles
(7) When the subprogram is to be repeatedly used, it will be repeatedly executed for l1 times
provided that "M98 Pp1 Ll1 ;" is programmed.
174
Subprogram control
Example of program
Sub program 1
Sub program 2
O1;
(1)
M98P1;
O10;
M98P10;
M02;
M98P20;
(3)'
(2)'
M99;
Sequence of execution :
O20;
(3)
(2)
(1)'
Sub program 3
M99;
M99;
(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.
Example of program 2
The M98H__; M99P__; commands designate the sequence numbers in a program with a call
instruction.
For M99P__ ;
For M98H__ ;
O123;
M98H3;
Search
N3___;
M99;
175
N100___;
M98P123;
N200_;
N300___;
N400___;
M99P200;
Subprogram control
Precautions
(1) Program error (P232) results when the designated program number (P) is not located.
(2) Single block stop does not occur with the M98P__; M99; block. If any address except O, N, P,
L or H is used, single block stop can be executed. (With X100. M98 P100;, operation branches
to O100 after X100. Is executed.)
(3) When M99 is commanded by the main program, operation returns to the head. (This is same
for MDI.)
(4) Operation can branch from BTR operation to a subprogram by M98P__ but the sequence
number of the return destination cannot be designated with M99P__;, (P__ is ignored.)
(5) Bear in mind that the search operation will take time when the sequence number is designated
by M99P__; .
176
Variable commands
# =
or # = [formula]
Detailed description
Example
#100
# [-#120]
123
#543
#110+#119
-#120
[#119]
SIN [#110]
"[#6] /2")
#- -5
#[- [-5]]
#- [#1]
#[-#1]
177
Variable commands
Number
50 + 50 number of
part systems
Common variables
1
(Common to part
systems)
#500 to #549
(50 sets)
Common
variables 2
(Provided per part
system)
#100 to #149
(50 sets)
#500 to #599
(100 sets)
#100 to #199
(100 sets)
#500 to #699
(200 sets)
#100 to #199
(100 sets)
Common variables
Local variables
1 to 33
System variables
1000 to
1 to 32
Function
Can be used in common
throughout main, sub
and macro programs.
(Note 1) All common variables are retained even when the power is switched off.
(Note 2) When the power is turned off or reset, the common variables can be set to <null> by
setting the parameter "#1128 RstVC1", "#1129 PwrVC1".
(Note 3) The common variables are divided into the following two types.
Common variables 1 : Used in common through all part systems
Common variables 2 : Used in common in the programs of the part system
178
Variable commands
(Note 1) A variable cannot be defined in the same block as an address. It must be defined in a
separate block.
Incorrect
Correct
X#1 = #3 + 100;
#1 = #3 + 100;
X#1;
(Note 2) Up to five sets of square parentheses [ ] may be used.
#543 = [[[[[#120]/2+15.]3 #100]/#520 + #125 + #128] #130 + #132]
(Note 3) There are no restrictions on the number of characters and number of variables for
variable definition.
(Note 4) The variable values should be within a range form 0 to 99999999.
If this range is exceeded, the arithmetic operations may not be conducted properly.
(Note 5) The variable definitions are valid from the moment that the variables are actually
defined.
#1 = 100 ;.............................. #1 = 100 Valid from the next command
#1 = 200 #2 = #1 + 200 ; ..... #1 = 200, #2 = 400 Valid from the next command
#3 = #1 + 300 ; ..................... #3 = 500 Valid from the next command
(Note 6) Variable quotations are always regarded as having a decimal point at the end.
When #100 = 10, then X#100 ; is treated as X10.
179
By combining the user macros with variable commands, it is possible to use macro program call,
arithmetic operation, data input/output with PLC, control, decision, branch and many other
instructions for measurement and other such applications.
O Main program
O Macro program
....... ;
....... ;
M30 ;
M99 ;
Macro programs use variables, arithmetic instructions and control instructions to create
subprograms which function to provide special-purpose control.
These special-purpose control functions (macro programs) are called by the macro call
instructions exactly when required from the main program.
The following G codes are available for the macro call commands.
G code
Function
G65
G66
G66.1
G67
Detailed description
(1) When the G66 (or 66.1) command is entered, the specified user macro subprogram will be
called after each block has been executed (or after the movement command in the block) with
the movement commands has been executed until the G67 (cancel) command is entered.
(2) The G66 (or G66.1) and G67 commands must be paired in the same program.
180
Included among the macro call commands are the simple calls which apply only to the instructed
block and also modal calls (types A and B) which apply to each block in the call modal.
Simple macro calls
Main program
Subprogram (Oo1)
To subprogram
Oo1
G65Pp1Ll1 <argument>;
M99
To main program
Format
G65 P___ L___ <argument> ;
P___
: Program No.
L___
: No. of repetitions
When the <argument> must be transferred as a local variable to a user macro subprogram, the
actual value should be designated after the address.
Regardless of the address, a sign and decimal point can be used in the argument. There are 2
ways in which arguments are designated.
181
: Can be used.
: Cannot be used.
: Can be used while G66.1 command is modal.
182
G66.1
Argument
designation II
address
J5
K5
I6
J6
K6
I7
J7
K7
I8
J8
K8
I9
J9
K9
I10
J10
K10
Variable within
macro
#1
#2
#3
#4
#5
#6
#7
#8
#9
#10
#11
#12
#13
#14
#15
#16
Variable within
macro
#17
#18
#19
#20
#21
#22
#23
#24
#25
#26
#27
#28
#29
#30
#31
#32
#33
(Note 1) The numbers 1 through 10 accompanying I, J and K denote the sequence of the
commanded groups and they are not required for the actual instructions.
G65
#1 : 1.1
#2 : 2.2
#4 : 4.4
#5 :
#6 :
#7 : 3.3
A1.1
B-2.2 D3.3
I4.4
I7.7 ;
7.7
In the above example, the last I7.7 argument is valid when both arguments D3.3 and
I7.7 are commanded for the #7 variable.
183
Subprogram
Main program
To subprogram
Oo1
G65Pp1Ll1 <argument>;
M99
G67
To main program
To subprogram
When the block with a movement command is commanded between G66 and G67, the movement
command is first executed and then the designated user macro subprogram is executed. The
number of times the subprogram is executed is l1 times with each call.
The <argument> is the same as for a simple call.
Format
G66 P___ L___ <argument> ;
P___
: Program No.
L___
: No. of repetitions
Detailed description
(1) When the G66 command is entered, the specified user macro subprogram will be called after
the movement command in the block with the movement commands has been executed until
the G67 (cancel) command is entered.
(2) The G66 and G67 commands must be paired in the same program.
A program error will result when G67 is issued without the G66 command.
(Example) Drill cycle
N1 G90 G54 G0 X0Y 0Z0;
N2 G91 G00 X-50.Y-50. Z-200.;
N3 G66 P9010 R-10. Z-30.F100;
O 9010
N4 X-50.Y-50.;
N5 X-50.;
N6 G67;
To main program
~
X
-150. -100.
-50.
M99;
W
N1
N2
N3
N10
-50.
N4
N20
Subprogram
Subprogram
N5
Argument R
N30
Argument Z
-100.
Argument F
Y
(Note 1) After the axis command is executed in the main program, the subprogram is
executed.
(Note 2) The subprogram is not executed in the blocks following G67.
184
The specified user macro subprogram is called unconditionally for each command block which is
assigned between G66.1 and G67 and the subprogram is executed the number of times
designated with L address.
Format
G66.1 P___ L___ <argument> ;
P___
: Program No.
L___
: No. of repetitions
Detailed description
(1) In the G66.1 mode, everything except the O, N and G codes in the various command blocks
which are read are handled as the argument without being executed. Any G code designated
last or any N code commanded after anything except O and N will function as the argument.
(2) The same applies as when G65P__ is assigned at the head of a block for all significant blocks
in the G66.1 mode.
(Example 1)
(Note 1)
N100 G01 G90 X100. Y200. F400 R1000; in the G66.1 P1000; mode is the
same as: N100 G65 P1000 G01 G90 X100. Y200. F400 R1000;
The Call is performed even in the G66.1 command block in the G66.1 mode and
the correspondence between the argument address and the variable number is
the same as for G65 (simple call).
(3) The range of the G and N command values which can be used anew as variables in the G66.1
mode is subject to the restrictions applying to values as normal NC command values.
(4) Program number O, sequence numbers N and modal G codes are updated as modal
information.
G code macro call
User macro subprogram with prescribed program numbers can be called merely by issuing the G
code command.
Format
G <argument> ;
G
Detailed description
(1) The above instruction functions in the same way as the instructions below, and parameters
are set for each G code to determine the correspondence with the instructions.
a. M98P ;
b. G65P <argument> ;
c. G66P <argument> ;
d. G66.1P <argument> ;
When the parameters corresponding to c and d above are set, issue the cancel command
(G67) either in the user macro or after the call code has been commanded so as to cancel the
modal call.
185
(2) The correspondence between the "XX" which conducts the macro call and the program
number P of the macro to be called is set by parameter.
(3) Up to 10 G codes from G100 to G255 can be used with this instruction. (G01 to 99 can also be
used with parameter "#1081 Gmac_P").
(Note 1)
G101 to G110 and G200 to G202 are user macro I codes, but if the parameters
are set as the G code call codes, the G code call will be the priority, and these
codes cannot be used for user macro I.
(4) These commands cannot be issued during a user macro subprogram which has been called
by a G code.
O9016
Program example
G16X100. Y100. Z100. F500 ;
M99 ;
The user macro subprogram of the specified program number can be called merely by issuing an
M (or S, T, B) code. (Only entered codes apply for M but all S, T and B codes apply.)
Format
M ; (or S ;, T ;, B ;)
M
Detailed description
(1) The above instruction functions in the same way as the instructions below, and parameters
are set for each M code to determine the correspondence with the instructions. (Same for S, T
and B codes)
a:
M98 P ;
M98, M are not output
b:
G65 P M ;
c:
G66 P M ;
d:
G66. 1P M ;
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 "M" which conducts the macro call and the program
number P of the macro to be called is set by parameter. Up to 10 M codes from M00 to
M95 can be entered. Note that the codes to be registered are the codes basically required for
the machine, and codes excluding M0, M1, M2, M30 and M96 to M99.
(3) As with M98, it is displayed on the screen display of the setting and display unit but the M
codes and MF are not output.
186
(4) Even if the miscellaneous command entered above is issued during a user macro subprogram
called by the M code, macro call will not result and it will be handled as an ordinary
miscellaneous command.
(5) All S, T and B codes call the subprograms in the prescribed program numbers of the
corresponding S, T and B functions.
(6) A maximum of 10 M codes can be set. However when not setting all 10. Set the parameters as
shown below.
[ MACRO ]
<Code> <Type> <Program No.>
M [01]
20
0
8000
M [02]
21
0
8001
M [03] 9999
0
199999999
M [04] 9999
0
199999999
M [05] 9999
0
199999999
:
:
:
:
:
:
M [10] 9999
0
199999999
(1) The argument can be designated for G65 but not for M98.
(2) The sequence number can be designated for M98 but no for G65, G66 and G66.1.
(3) M98 executes a subprogram after all the commands except M, P, H and L in the M98 block
have been executed, but G65 branches to the subprogram without any further operation.
(4) When any address except O, N, P, H or L is included in the M98 block, single block stop
results. This is not the case with G65.
(5) The level of the M98 local variables is fixed but it can be varied in accordance with the nesting
depth for G65. (#1, for instance, has the same significance either before or after M98 but a
different significance in each case with G65.)
(6) The M98 nesting depth extends up to 8 levels in combination with G65, G66 and G66.1. The
G65 nesting depth extends up to only 4 levels in combination with G66 and G66.1.
Macro call command nesting depth
Up to 4 nesting levels are available for macro subprogram calls based on simple call or modal call.
The argument with a macro call instruction is valid only on the called macro level. Since the nesting
depth for macro calls extends up to 4 levels, the argument can be used as a local variable for the
program with each respective macro call.
(Note 1)
When a G65, G66, G66.1 G code macro call or miscellaneous command macro call
is conducted, this is regarded as nesting level 1 and the level of the local variables is
also incremented by one.
(Note 2)
The designated user macro subprogram is called every time the movement
command is executed with modal call A. However, when the G66 command has
been duplicated, the next user macro subprogram is called every time an axis is
moved even with movement commands in the macro.
User macro subprograms are called in sequence from the subprogram commanded
last.
187
(Example 1)
Main program
Macro p1
G66Pp1; (p1 call)
Zz1
;
After Z1 execution
y1
x2
M99
x1
y1
x2
M99
Macro p2
(p2 cancel)
Macro p1
Macro p1
Macro p1
Macro p1
Zz3
G67
; (p1 cancel)
Zz4
Zz5
;
;
After Z3 execution
x1
y1
x2
M99
13.5.3 Variables
Function and purpose
Both the variable specifications and user macro specifications are required for the variables which
are used with the user macros.
The offset amounts of the local, common and system variables among the variables for this
MELDAS NC system except #33 are retained even when the unit's power is switched off.
(Common variables can also be cleared by parameter "#1129 PwrVC1".)
Use of multiple variables
When the user macro specifications applied, variable numbers can be turned into variables
(multiple use of variables) or replaced by <formula>. Only one of the four basic arithmetic rule (+, ,
, ) operations can be conducted with <formula>.
(Example 1) Multiple use of variables
#1 = 10 #10 = 20 #20 = 30 ;
#5 = #[#[#1]] ;
#1 = 20 #10 = 20 #20 = 30 #5
= 1000 ;
#[#[#1]] = #5 ;
188
Variables applying with the user macro specifications such as variables which have not been used
even once after the power was switched on or local variables not quoted by the G65, G66 or G66.1
commands can be used as <vacant>. Also, variables can forcibly be set to <vacant>. Variable #0 is
always used as the <vacant> variable and cannot be defined in the left-side member.
(1) Arithmetic expressions
#1 = #0 ; ................... #1 = <vacant>
#2 = #0 + 1 ;............. #2 = 1
#3 = 1 + #0 ;............. #3 = 1
#4 = #010 ; ............. #4 = 0
#5 = #0 + #0 ;........... #5 = 0
It should be borne in mind that <vacant> in an arithmetic expression is
handled in the same way as 0.
<Vacant> + <Vacant> = 0
<Vacant> + <Constant> = Constant
<Constant> + <Vacant> = Constant
(2) Variable quotations
When undefined variables only are quoted, they are ignored up to the address.
When #1 = <Vacant>
G0 X#1 Y1000 ; ............... Equivalent to G0 Y1000 ;
G0 X#1 + 10 Y1000 ; ....... Equivalent to G0 X10 Y1000 ;
(3) Conditional expressions
<Vacant> and 0 are not equivalent for EQ and NE only. (#0 means <vacant>.)
When #101 = <Vacant>
When #101 = 0
#101 EQ #0
<Vacant> = <Vacant> established
#101 EQ #0
0 = <Vacant> not established
#101 NE 0
<Vacant> 0 established
#101 NE 0
0 0 not established
#101 GE #0
<Vacant> <Vacant> established
#101 GE #0
0 <Vacant> established
#101 GT 0
<Vacant> > 0 not established
#101 GT 0
0 > 0 not established
#101 LE #0
<Vacant> <Vacant> established
#101 LE #0
0 <Vacant> established
#101 LT 0
<Vacant> < 0 not established
#101 LT 0
0 < 0 not established
(Note 1) EQ and NE should be used only for integers. For comparison of numeric values with
decimals, GE, GT, LE, and LT should be used.
189
Common variables can be used commonly from any position. Number of the common variables
sets depends on the specifications. Refer to "13.4 Variable commands" for details.
Local variables (#1 to #33)
These can be defined as an <argument> when a macro subprogram is called or used locally within
main programs and subprograms. They can be duplicated regardless of the relationship existing
between macros (up to 4 levels).
G65 Pp1 Ll1 <argument> ;
P1
l1
: Program number
: Number of repetitions
Argument
address
A
B
C
D
E
F
Local
variable
number
#1
#2
#3
#7
#8
#9
Call command
G65
G66.1
G66
Q
R
S
T
U
V
Local
variable
number
#17
#18
#19
#20
#21
#22
Argument
address
#10
#23
H
I
J
K
#11
#4
#5
#6
X
Y
Z
#24
#25
#26
#27
#12
#28
#13
#29
#14
#30
#15
#31
#16
#32
#33
" " in the above table denotes an argument address which cannot be used. However, provided
that the G66.1 mode has been established, an argument address denoted by the asterisk can be
added for use.
"" denotes that a corresponding address is not available.
190
Variable in
macro
#1
#2
#3
#4
#5
#6
#7
#8
#9
#10
#11
#12
#13
#14
#15
#16
#17
#18
Argument specification II
address
I6
J6
K6
I7
J7
K7
I8
J8
K8
I9
J9
K9
I10
J10
K10
Variable in
macro
#19
#20
#21
#22
#23
#24
#25
#26
#27
#28
#29
#30
#31
#32
#33
(Note 1) Subscripts 1 to 10 for I, J, and K indicate the order of the specified command sets. They
are not required to specify instructions.
(1) Local variables in subprograms can be defined by means of the <argument> designation
during macro call.
Subprogram (9900)
Main program
M02;
M99;
Refer to the local
variables and control the
movement, etc.
Local variable
data table
191
A(#1)=
60.000
F(#9)=
800
S(#19)= 100.000
Subprogram (1)
#30=FUP [#2/#5/2]
#5=#2/#30/2 ;
M98 H100 L#30 ;
X#1 ;
M99 ;
N100 G1 X#1 F#9 ;
Y#5 ;
X-#1 ;
Y#5 ;
M99 ;
B
J
A
B
F
J
(#1) 100.000
(#2) 50.000
(#9)
500
(#5) 10.000
(#30)
8.333
3
In the front surface milling example, argument J is programmed as the milling pitch 10.mm.
However, this is changed to 8.333mm to create an equal interval pitch.
The results of the No. of reciprocation data calculation is set in local variable #30.
192
(3) Local variables can be used independently on each of the macro call levels (4 levels).
Local variables are also provided independently for the main program (macro level 0).
Arguments cannot be used for the level 0 local variables.
Main (level 0)
O1 (macro level 1)
M99;
M99;
M02;
M99;
#1
#2
#3
A (#1) 1.000
B (#2) 2.000
C (#3) 3.000
D (#7)
A (#1) 10.000
B (#2) 20.000
C (#3) 30.000
D (#7)
A (#1) 100.000
B (#2) 200.000
C (#3)
Z(#26)
Z(#26)
Z(#26)
#32
#32
#32
#32
0.100
0.200
0.300
The status of the local variables appear on the setting and display unit.
Refer to the Operation Manual for details.
193
The status of the interface input signals can be ascertained by reading out the values of variable
numbers #1000 to #1035, #1200 to #1295. A variable value which has been read out can be only
one of 2 values: 1 or 0 (1: contact closed, 0: contact open). All the input signals from #1000 to
#1031 can be read at once by reading out the value of variable number #1032.
Similarly, the input signals #1200 to #1231, #1232 to #1263, and #1264 to #1295 can be read by
reading the values of the variable numbers #1033 to #1035.
Variable numbers #1000 to #1035, #1200 to #1295 are for readout only, and cannot be placed in
the left side member of their arithmetic formula. Input here refers to input to the control unit.
To use the macro interface function by part system, set the bit selection parameter "#6454/bit0".
Refer to (2) for the signals provided for each part system.
(1)
System
variable
No. of
points
Interface
input signal
System
variable
No. of
points
Interface
input signal
#1000
#1001
#1002
#1003
#1004
#1005
#1006
#1007
#1008
#1009
#1010
#1011
#1012
#1013
#1014
#1015
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
#1016
#1017
#1018
#1019
#1020
#1021
#1022
#1023
#1024
#1025
#1026
#1027
#1028
#1029
#1030
#1031
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
System
variable
No. of
points
Interface
input signal
#1032
#1033
#1034
#1035
32
32
32
32
194
No. of
points
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
System
variable
#1232
#1233
#1234
#1235
#1236
#1237
#1238
#1239
#1240
#1241
#1242
#1243
#1244
#1245
#1246
#1247
No. of
points
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
195
System
variable
#1216
#1217
#1218
#1219
#1220
#1221
#1222
#1223
#1224
#1225
#1226
#1227
#1228
#1229
#1230
#1231
No. of
points
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
Interface input
signal
Register R27 bit 0
Register R27 bit 1
Register R27 bit 2
Register R27 bit 3
Register R27 bit 4
Register R27 bit 5
Register R27 bit 6
Register R27 bit 7
Register R27 bit 8
Register R27 bit 9
Register R27 bit 10
Register R27 bit 11
Register R27 bit 12
Register R27 bit 13
Register R27 bit 14
Register R27 bit 15
System
variable
#1248
#1249
#1250
#1251
#1252
#1253
#1254
#1255
#1256
#1257
#1258
#1259
#1260
#1261
#1262
#1263
No. of
points
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
Interface input
signal
Register R29 bit 0
Register R29 bit 1
Register R29 bit 2
Register R29 bit 3
Register R29 bit 4
Register R29 bit 5
Register R29 bit 6
Register R29 bit 7
Register R29 bit 8
Register R29 bit 9
Register R29 bit 10
Register R29 bit 11
Register R29 bit 12
Register R29 bit 13
Register R29 bit 14
Register R29 bit 15
No. of
points
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
196
System
variable
#1280
#1281
#1282
#1283
#1284
#1285
#1286
#1287
#1288
#1289
#1290
#1291
#1292
#1293
#1294
#1295
Interface input
signal
Register R31 bit 0
Register R31 bit 1
Register R31 bit 2
Register R31 bit 3
Register R31 bit 4
Register R31 bit 5
Register R31 bit 6
Register R31 bit 7
Register R31 bit 8
Register R31 bit 9
Register R31 bit 10
Register R31 bit 11
Register R31 bit 12
Register R31 bit 13
Register R31 bit 14
Register R31 bit 15
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
System No. of
variable points
#1032
32
#1033
32
#1034
32
#1035
32
$1
R970,
R971
R972,
R973
R974,
R975
R976,
R977
$2
R1070,
R1071
R1072,
R1073
R1074,
R1075
R1076,
R1077
197
$6
R1470,
R1471
R1472,
R1473
R1474,
R1475
R1476,
R1477
$7
R1570,
R1571
R1572,
R1573
R1574,
R1575
R1576,
R1577
The interface output signals can be sent by substituting values in variable numbers #1100 to #1135,
#1300 to #1395. An output signal can be only 0 or 1.
All the output signals from #1100 to #1131 can be sent at once by substituting a value in variable
number #1132.
Similarly, the output signals #1300 to #1311, #1332 to #1363, and #1364 to #1395 can be sent by
assigning values to the variable numbers #1133 to #1135. (20 ~ 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.
To use the macro interface function by part system, set the bit selection parameter "#6454/bit0".
Refer to (2) for the signals provided for each part system.
(1) Macro interface common to part systems (output)
System
variable
No. of
points
Interface
output signal
System
variable
No. of
points
Interface
output signal
#1100
#1101
#1102
#1103
#1104
#1105
#1106
#1107
#1108
#1109
#1110
#1111
#1112
#1113
#1114
#1115
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
#1116
#1117
#1118
#1119
#1120
#1121
#1122
#1123
#1124
#1125
#1126
#1127
#1128
#1129
#1130
#1131
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
System
variable
No. of
points
Interface
output signal
#1132
#1133
#1134
#1135
32
32
32
32
198
(Note 1)
(Note 2)
The last values of the system variables #1100 to #1135 sent are retained as 1 or 0.
(They are not cleared even with resetting.)
The following applies when any number except 1 or 0 is substituted into #1100 to
#1131.
<Vacant> is treated as 0.
Any number except 0 and <vacant> is treated as 1.
Any value less than 0.00000001 is indefinite.
System
variable
#1300
#1301
#1302
#1303
#1304
#1305
#1306
#1307
#1308
#1309
#1310
#1311
#1312
#1313
#1314
#1315
No. of
points
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
Interface
output signal
Register R126 bit 0
Register R126 bit 1
Register R126 bit 2
Register R126 bit 3
Register R126 bit 4
Register R126 bit 5
Register R126 bit 6
Register R126 bit 7
Register R126 bit 8
Register R126 bit 9
Register R126 bit 10
Register R126 bit 11
Register R126 bit 12
Register R126 bit 13
Register R126 bit 14
Register R126 bit 15
System
variable
#1316
#1317
#1318
#1319
#1320
#1321
#1322
#1323
#1324
#1325
#1326
#1327
#1328
#1329
#1330
#1331
No. of
points
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
Interface
output signal
Register R127 bit 0
Register R127 bit 1
Register R127 bit 2
Register R127 bit 3
Register R127 bit 4
Register R127 bit 5
Register R127 bit 6
Register R127 bit 7
Register R127 bit 8
Register R127 bit 9
Register R127 bit 10
Register R127 bit 11
Register R127 bit 12
Register R127 bit 13
Register R127 bit 14
Register R127 bit 15
System
variable
#1332
#1333
#1334
#1335
#1336
#1337
#1338
#1339
#1340
#1341
#1342
#1343
#1344
#1345
#1346
#1347
No. of
points
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
Interface
output signal
Register R128 bit 0
Register R128 bit 1
Register R128 bit 2
Register R128 bit 3
Register R128 bit 4
Register R128 bit 5
Register R128 bit 6
Register R128 bit 7
Register R128 bit 8
Register R128 bit 9
Register R128 bit 10
Register R128 bit 11
Register R128 bit 12
Register R128 bit 13
Register R128 bit 14
Register R128 bit 15
System
variable
#1348
#1349
#1350
#1351
#1352
#1353
#1354
#1355
#1356
#1357
#1358
#1359
#1360
#1361
#1362
#1363
No. of
points
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
Interface
output signal
Register R129 bit 0
Register R129 bit 1
Register R129 bit 2
Register R129 bit 3
Register R129 bit 4
Register R129 bit 5
Register R129 bit 6
Register R129 bit 7
Register R129 bit 8
Register R129 bit 9
Register R129 bit 10
Register R129 bit 11
Register R129 bit 12
Register R129 bit 13
Register R129 bit 14
Register R129 bit 15
199
System
variable
No. of
points
Interface
output signal
System
variable
No. of
points
Interface
output signal
#1364
#1365
#1366
#1367
#1368
#1369
#1370
#1371
#1372
#1373
#1374
#1375
#1376
#1377
#1378
#1379
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
#1380
#1381
#1382
#1383
#1384
#1385
#1386
#1387
#1388
#1389
#1390
#1391
#1392
#1393
#1394
#1395
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
200
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
System No. of
variable points
#1116
#1117
#1118
#1119
#1120
#1121
#1122
#1123
#1124
#1125
#1126
#1127
#1128
#1129
#1130
#1131
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
System No. of
variable points
#1132
32
#1133
32
#1134
32
#1135
32
$2
R370,
R371
R372,
R373
R374,
R375
R376,
R377
201
$6
R770,
R771
R772,
R773
R774,
R775
R776,
R777
$7
R870,
R871
R872,
R873
R874,
R875
R876,
R877
#1132 (R124,R125)
#1032 (R24,R25)
Output signal
Input signal
#1000
#1100
#1001
#1101
#1002
#1102
#1003
#1103
#1029
#1129
Macro instructions
#1128
#1031
bit
Read/write
#1028
#1030
32
Read only
#1130
#1131
32
(R26,R27)
(R126,R127)
#1033
#1133
(R28,R29)
(R128,R129)
#1034
#1134
#1135
(R130,R131)
#1035
(R30,R31)
202
bit
Tool offset
Type 1
Type 2
#10001 to #10000 + n
#2001 to #2000 + n
(Length dimension)
#11001 to #11000 + n
#2201 to #2200 + n
(Length wear)
#16001 to #16000 + n
#2401 to #2400 + n
(Radius dimension)
#17001 to #17000 + n
#2601 to #2600 + n
(Radius wear)
Tool data can be read and values substituted using the variable numbers.
Either the numbers in the #10000 order or #2000 order can be used.
The last 3 digits of the variable numbers correspond to the tool offset number.
n corresponds to the No. of tool offset sets.
If there are 400 tool offset sets and type 2 is being used, avoid variable Nos. in the #2000 order,
and instead use the #10000 order.
The tool offset data are configured as data with a decimal point in the same way as for other
variables. Consequently, this decimal point must be commanded when data below the decimal
point is to be entered.
Programming example
#101=1000;
#10001=#101;
#102=#10001;
Common variables
After
execution
#101=1000.0
H1=1000.000
#102=1000.0
(Note)
G00
H1
G31
Sensor
In this example, no consideration is given to the delay in the skip sensor signal.
#5003 is the Z-axis start point position and #5063 is the Z-axis skip coordinates, and
indicated is the position at which the skip signal is input while G31 is being executed.
203
By using variable numbers #5201 to #532n, it is possible to read out the work coordinate system
offset data or to substitute values.
(Note) The number of axes which can be controlled differs according to the specifications.
The last digit in the variable number corresponds to the control axis number.
Axis No.
Axis 1 Axis 2 Axis 3 Axis 4 . . Axis n
Axis name
External work offset #5201 #5202 #5203 #5204
G54
G55
G56
G57
G58
#5221
#5241
#5261
#5281
#5301
#5222
#5242
#5262
#5282
#5302
#5223
#5243
#5263
#5283
#5303
#5224
#5244
#5264
#5284
#5304
G59
(Example 1)
N1
-90.
N1 G28 X0 Y0 Z0 ;
N2 #5221=-20. #5222=-20. ;
N3 G90 G00 G54 X0 Y0 ;
-20.
N3
W1
N10 #5221=-90. #5222=-10. ;
N11 G90 G00 G54 X0Y0 ;
Remarks
N11
-10.
-20.
W1
G54 work coordinate
system defined by
N10
M02 ;
(Example 2)
G55
G54
W2 (G55)
Coordinate system
before change
W1 (G54)
N100 #5221=#5221+#5201 ;
#5222=#5222+#5202 ;
#5241=#5241+#5201 ;
#5242=#5242+#5202 ;
#5201=0 #5202=0;
G55
G54
Coordinate system
after change
W2 (G55)
W1 (G54)
This is an example where the external workpiece offset values are added to the work coordinate
(G54, G55) system offset values without changing the position of the work coordinate systems.
204
Alarm (#3000)
The NC system can be forcibly set to the alarm state by using variable number #3000.
Format
#3000 = 70 (CALL#PROGRAMMER#TEL#530) :
70
CALL#PROGRAMMER#TEL#530
: Alarm number
: Alarm message
<Operator message>
CALL#PROGRAMMER#TEL#530
70
(Note 1) Alarm number 0 is not displayed and any number exceeding 9999 cannot be indicated.
(Note 2) The characters following the first alphabet letter in the right member is treated as the
alarm message. Therefore, a number cannot be designated as the first character of an
alarm message. It is recommended that the alarm messages be enclosed in round
parentheses.
205
The integrating (run-out) time can be read during automatic operation or automatic start or values
can be substituted by using variable numbers #3001 and #3002.
Type
Variable
Unit
number
Integrating
(run-out) time 1
3001
Integrating
(run-out) time 2
3002
Contents when
power is switched
on
Initialization of
contents
Count condition
The integrating run time returns to zero in about 2.44 1011 ms (approximately 7.7 years).
O9010
(allowable
G65P9010 T time)
ms;
To
subprogram
#3001=0 ;
WHILE [#3001LE#20] DO1 ;
END1 :
M99 ;
Entered in local
variable #20
Local variable
T#20
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
Not suppressed
Awaited
Suppressed
Awaited
Not suppressed
Not awaited
Suppressed
Not awaited
206
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.
Bit 0
Bit 1
Bit 2
Feed hold
Feedrate override
G09 check
Valid
Valid
Valid
Invalid
Valid
Valid
Valid
Invalid
Valid
Invalid
Invalid
Valid
Valid
Valid
Invalid
Invalid
Valid
Invalid
Valid
Invalid
Invalid
Invalid
Invalid
Invalid
#3004
Contents (value)
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 on the operator message area.
Format
#3006 = 1 ( TAKE FIVE ) :
TAKE FIVE
Message
The message should not be longer than 31 characters and it should be enclosed within round ( )
parentheses.
Mirror image
By reading variable number #3007, it is possible to ascertain the status of mirror image at a
particular point in time for each axis.
The axes correspond to the bits of #3007.
When the bits are 0, it means that the mirror image function is not valid; when they are 1, it means
that it is valid.
#3007
Bit
15
14
13
12
11
10
nth axis
207
G command modals
Using variable numbers #4001 to #4021, it is possible to read the G modal commands which have
been issued up to the block immediately before.
Similarly, it is possible to read the modals in the block being executed with variable numbers #4201
to #4221.
Variable number
Pre-read
block
Execution
block
#4001
#4201
#4002
Function
Interpolation mode
#4202
Plane selection
#4003
#4203
Absolute/incremental
: G90:90, G91:91
#4004
#4204
No variable No.
#4005
#4205
Feed designation
: G94:94, G95:95
#4006
#4206
#4007
#4207
Inch/metric
Tool nose R compensation :
: G20:20, G21/21
: G40:40, G41:41, G42:42
#4008
#4208
#4009
#4209
Canned cycle
#4010
#4210
Return level
: G98:98, G99:99
: G54 to G59:54 to 59
Acceleration/deceleration
#4011
#4211
#4012
#4212
#4013
#4213
#4014
#4214
#4015
#4215
#4016
#4216
#4017
#4217
#4018
#4218
No variable No.
#4019
#4219
Mirror image
#4020
#4220
#4021
#4221
: G50.1:50.1, G51.1:51.1
No variable No.
(Example)
G28 X0 Y0 Z0 ;
G90 G1 X100. F1000;
G91 G65 P300 X100. Y100.;
M02;
O300;
#1 = #4003;
#2 = #4203;
208
Other modals
Using variable numbers #4101 to #4120, it is possible to read the model commands assigned up to
the block immediately before.
Similarly, it is possible to read the modals in the block being executed with variable numbers #4301
to #4320.
Variable number
Pre-read
Executio
n
#4101
Variable number
Modal
information
Modal information
Pre-read
Executio
n
#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
#4119
#4319
Spindle function S
#4110
#4310
#4120
#4320
Tool function T
Tool radius
compensation No. D
Feedrate F
Position information
Using variable numbers #5001 to #5104, it is possible to read the servo deviation amounts, skip
coordinates, work coordinates, machine coordinates and end point coordinates in the block
immediately before.
Position End point
information coordinate of
block
immediately
before
Axis No.
Machine
coordinate
Work
coordinate
Skip
coordinate
Servo
deviation
amount
#5001
#5021
#5041
#5061
#5101
#5002
#5022
#5042
#5062
#5102
#5003
#5023
#5043
#5063
#5103
#5004
#5024
#5044
#5064
#5104
#5000+n
#5020+n
#5040+n
#5060+n
#5100+n
Yes
No
No
Yes
Yes
(Note1) The number of axes which can be controlled differs according to the specifications.
(Note2) The last digit of the variable number corresponds to the control axis number.
209
G00
G01
Read
command
[End point
coordinates]
Work coordinate
system
W
[Work
coordinates]
M
[Machine
coordinates]
Machine coordinate
system
(1) The positions of the end point coordinates and skip coordinates are positions in the work
coordinate system.
(2) The end point coordinates, skip coordinates and servo deviation amounts can be read even
during movement. However, it must first be checked that movement has stopped before
reading the machine coordinates and the work coordinates.
(3) The position where the skip signal is turned ON in the G31 block is indicated for the skip
coordinates. The end point position is indicated when the skip signal has not been turned ON.
(For further details, refer to the section on tool length measurement.)
Read
command
Skip coordinates
210
Gauge, etc.
(4) The tool nose position where the tool offset and other such factors are not considered is
indicated as the end point position. The tool reference point position with consideration given
to tool offset is indicated for the machine coordinates, work coordinates and skip coordinates.
Skip signal
G31
F (feedrate)
W
[Work
coordinates]
[Input coordinates
of skip signal]
M
[Machine coordinates]
Work coordinate
system
Machine coordinate
system
211
Main program
O9031
N1 #180=#4003;
N2 #30=#5001 #31=#5002;
N3 G91 G01 Z#26 F#9;
N4 G31 X#24 Y#25 F#9;
N5 G90 G00 X#30 Y#31;
N6 #101=#30-#5061 #102=#31-#5062;
N7 #103=SQR [#101#101+#102*#102] ;
N8 G91 G01Z-#26;
N9 IF [#180 EQ 91] GOTO 11;
N10 G90;
N11 M99;
To subprogram
<Common variable>
#101
87.245
#102
87.245
#103 123.383
Skip input
#102
Start point N4
N3
Z N8
#103
N5
Y
#101
X
#101
#102
#103
N1
N2
N3
N4
N5
N6
-75
-25
Y X
-50
-75
-100
-Y
Skip signal
212
Any name (variable name) can be given to common variables #500 to #519. It must be composed
of not more than 7 alphanumerics and it must begin with a letter. Do not use "#" in variable names.
It causes an alarm when the program is executed.
Format
SETVN n [ NAME1, NAME2, ] :
n
: Head number of variable to be named
NAME1
: #n name (variable name)
NAME2
: #n + 1 name (variable name)
Variable names are separated by a comma (,).
Detailed description
(1) Once variable names have been set, they will not be cleared even when the power is switched
off.
(2) Variables in programs can be quoted by their variable names. In cases like this, the variables
should be enclosed in square parentheses.
(Example 1) G01X [#POINT1] ;
[#NUMBER] = 25 ;
(3) The variable numbers, data and variable names appear on the screen of the setting and
display unit.
(Example 2)
Program ...... SETVN500 [A234567, DIST, TOOL25] ;
[Common variables]
#500
-12345.678
A234567
#501
5670.000
DIST
#502
-156.500
TOOL25
#518
10.000
Common variable
NUMBER
(Note) At the head of the variable name, do not use the characters determined by the NC for
use in arithmetic commands, etc. (e.g. SIN, COS).
Workpiece coordinate shift amount
The workpiece coordinate system shift amount can be read using variables #2501 and #2601.
By substituting a value in these variables, the workpiece coordinate system shift amount can be
changed.
Axis
No.
Workpiece coordinate
system shift amount
#2501
#2601
213
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.
Number of workpiece
machining times
#3901
Maximum workpiece
value
#3902
0 to 999999
(Note) Always substitute a positive value for the number of workpiece machining times.
M System
L System
Remarks
00
For control
For control
05
Group No.
Group No.
10
Tool No.
Tool No.
15
Method
20
Tool status
Status
25
Life data
30
Usage data
Usage time/No. of
times
35
Tool length
compensation data
40
Tool radius
compensation data
45
Auxiliary data
The group No., L System method, and life data are common for the group.
214
M System
L System
Variable No.
M System
L System
Number of
registered tools
Number of registered
tools
Number of
remaining
registered tools
Number of remaining
registered tools
Signal being
executed
Cutting time
cumulative value
(minute)
Life prediction
signal
Item
Type
Details
Remarks
Data range
60001
Number of
registered tools
Common to
system
0 to 200
60002
0 to 4000
minutes
0 to 9999 times
60003
60004
Number of
remaining
registered tools
No. of first registered tool that has not reached its 0 to 200
life.
60005
Signal being
executed
60006
Cutting time
cumulative value
(minute)
60007
"1" when lives of all tools in this group have been 0/1
reached.
"1" when all tools registered in designated group
reach lives.
60008
Life prediction
signal
0 to 200
Registration No. of tool being used.
Spindle tool registration No. (If spindle tool is not
data of the designated group, ST:1 first tool, or if
ST:1 is not used, the first tool of ST:0. When all
tools have reached their lives, the last tool.)
215
0/1
Item
Group No.
Type
Each group/
registration No.
Tool No.
Tool data flag
(Designate the
group No.
#60000 and
registration No.
*** .)
Details
This group's No.
1 to 99999999
Tool No.
1 to 99999999
0 to FF (H)
Tool status
62500
+***
Life data
63000
+***
Usage data
63500
+***
Tool length
compen-sation
data
62000
+***
Data range
0 to 4
0 to 4000
minutes
0 to 9999 times
0 to 4000
minutes
0 to 9999 times
Compensation
No.:
0 to No. of tool
compensation
sets
Absolute value
compensation
amount
99999.999
Increment value
compensation
amount
99999.999
216
Item
Type
Tool radius
compensation
data
Details
Radius compensation data set as compensation
No., absolute value compensation amount or
increment value compensation amount method.
Data range
Compensation
No.:
0 to No. of tool
compensation
sets
Absolute value
compensation
amount
99999.999
64500
+***
Auxiliary data
Spare data
Increment value
compensation
amount
99999.999
0 to 65535
Designated
program No. is
valid until reset.
(4) When registration No. not used is designated. (Group 10 has 15 tools)
#60000 = 10 ; ...............
#111 = #61016 ; ...........
217
(6) When tool life management data is registered with G10 command after group No. is
designated.
#60000 = 10 ; ..............Designates the group No.
G10 L3 ; .......................Starts the life management data registration.
P10 LLn NNn ; ............10 is the group No., Ln is the life per tool,
Nn is the method.
TTn ; ............................Tn is the tool No.
:
G11 ; ...........................Registers the group 10 data with the G10
command.
#111 = #61001 ; ..........Reads the group 10, #1 tool No.
G10 L3 ; .......................Starts the life management data registration.
P1 LLn NNn ; ..............1 is the group No., Ln is the life per tool,
Nn is the method.
TTn ; ............................Tn is the tool No.
:
G11 ; ............................Registers the life data with the G10
command.
(The registered data is deleted.)
#111 = 61001 ; ............Group 10 does not exist. #201 = 1.
(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.
218
#i = <formula>
<Formula> is a combination of constants, variables, functions and operators.
Constants can be used instead of #j and #k below.
(1)
(2)
(3)
(4)
Definition and
#i = #j
substitution of variables
Addition arithmetic
#i = #j + #k
#i = #j #k
#i = #j OR #k
#i = #j XOR #k
Multiplication arithmetic #i = #j #k
#i = #j / #k
#i = #j MOD #k
#i = #j AND #k
#i = SIN [#k]
#i = COS [#k]
#i = TAN [#k]
#i = ATAN [#j]
#i = ACOS [#j]
#i = SQRT [#k]
#i = ABS [#k]
#i = BIN [#k]
#i = BCD [#k]
#i = ROUND [#k]
Functions
#i = FIX [#k]
#i = FUP [#k]
#i = LN [#k]
#i = EXP [#k]
Definition, substitution
Addition
Subtraction
Logical sum (at every bit of 32 bits)
Exclusive OR (at every bit of 32 bits)
Multiplication
Division
Remainder
Logical product (at every bit of 32 bits)
Sine
Cosine
Tangent (sin/cos used for tan)
Arctangent (ATAN or ATN may be used)
Arc-cosine
Square root (SQRT or SQR may be used)
Absolute value
Conversion from BCD to BIN
Conversion from BIN to BCD
Rounding off
(ROUND or RND may be used)
Discard fractions less than 1
Add for fractions less than 1
Natural logarithm
Exponent with e (=2.718 .....) as bottom
(Note 1) A value without a decimal point is basically treated as a value with a decimal point at the
end (1 = 1.000).
(Note 2) Offset amounts from #10001 and work coordinate system offset values from #5201 are
handled as data with a decimal point. Consequently, data with a decimal point will be
produced even when data without a decimal point have been defined in the variable
numbers.
(Example)
#101
= 1000
#10001 = #101
#102
Common variables
after execution
#101
#102
1000.000
1000.000
= #10001 ;
(Note 3) The <formula> after a function must be enclosed in the square parentheses.
219
(1) The sequence of the arithmetic operations (1) through (3) is, respectively, the functions
followed by the multiplication arithmetic followed in turn by the addition arithmetic.
#101 = #111 + #112SIN[#113]
(1) Function
(2) Multiplication arithmetic
(3) Addition arithmetic
(2) The part to be given priority in the operation sequence should be enclosed in square
parentheses. Up to 5 pairs of such parentheses including those for the functions may be used.
#101 = SQRT [ [ [ #111 = #112 ] SIN[#113] + #114] #15] ;
First pair of parentheses
Second pair of parentheses
Third pair of parentheses
Examples of arithmetic commands
(5) Exclusive OR
(XOR)
#1 = 1000
#2 = 1000.
#3 = #101
#4 = #102
#5 = #5041
#11 = #1 + 1000
#12 = #2 50.
#13 = #101 + #1
#14 = #5041 3.
#15 = #5041 + #102
#3 = 100
#4 = #3OR14
#3 = 100
#4 = #3XOR14
220
#1
#2
#101
#102
#1
#2
#3
#4
#5
10.000
20.000
100.000
200.000
1000.000
1000.000
100.000
200.000
10.000
#11
2000.000
#12
950.000
#13
1100.000
#14
13.000
#15
190.000
#3 = 01100100
14 = 00001110
#4 = 01101110 = 110
#3 = 01100100
14 = 00001110
#4 = 01101010 = 106
From common
variables
From offset
amount
#21 = 100100
#22 = 100.100
#23 = 100100
#24 = 100.100.
#25 = 100/100
#26 = 100./100.
#27 = 100/100.
#28 = 100./100.
#29 = #5041#101
#30 = #5041/#102
(7) Remainder (MOD) #31 = #19MOD#20
(8) Logical product
#9 = 100
(AND)
#10 = #9AND15
(9) Sin (SIN)
(12) Arctangent
(ATAN or ATN)
221
10000.000
10000.000
10000.000
10000.000
1.000
1.000
1.000
1.000
1000.000
0.050
#541
#542
#543
#544
#545
#546
0.707
0.707
707.107
707.107
707.107
707.107
#551
#552
#553
#554
#555
#556
1.732
1.732
1732.051
1732.051
1732.051
1732.051
#561
#562
#563
#564
#565
60.000
60.000
60.000
60.000
60.000
222
#521
#522
#523
#524
#525
#571
#572
#573
#574
45.000
45.000
45.000
44.999
45.009
31.623
31.623
22.361
190.444
#576
#577
1000.000
1000.00
#580
120.000
#11
#12
#21
#22
#23
#24
#25
#26
#27
#28
#21
#22
#23
#24
#25
#26
#27
#28
#21
#22
#23
#24
#25
#26
#27
#28
#101
#102
Error
#104
#105
#106
64
256
5
5
5
5
5
5
5
5
4.000
4.000
4.000
4.000
4.000
4.000
4.000
4.000
5.000
5.000
5.000
5.000
5.000
5.000
5.000
5.000
1.609
0.693
"P282"
7.389
2.718
0.135
Arithmetic accuracy
As shown in the following table, errors will be generated when performing arithmetic operations
once and these errors will accumulate by repeating the operations.
Arithmetic format
a=b+c
a=bc
a = bc
a = b/c
a= b
a = SIN [b]
a = COS [b]
a = ATAN [b/c]
(Note)
Average error
Maximum error
Type of error
2.33 1010
5.32 1010
1.55 1010
4.66 1010
1.24 109
4.66 1010
1.86 109
3.73 109
Relative error
|/a|
5.0 109
1.0 108
1.8 106
3.6 106
Absolute error
||
223
Format
IF [conditional expression] GOTO n; (n = sequence number in the program)
When the condition is satisfied, control branches to "n" and when it is not satisfied, the next block is
executed.
IF [conditional expression] can be omitted and, when it is, control passes to "n" unconditionally.
The following types of [conditional expressions] are available.
#i EQ #j
#i NE #j
#i GT #j
#i LT #j
#i GE #j
When #i is #j or more
#i LE #j
When #i is #j or less
Branching to
N100 when
content of #2 is 1
Branch
search
"n" of GOTO n must always be in the same program. Program error (P231) will result if it is not. A
formula or variable can be used instead of #i, #j and "n".
In the block with sequence number "n" which will be executed after a GOTO n command, the
sequence number must always be at the head of the block.
Otherwise, program error (P231) will result.
If "/" is at the head of the block and Nn follows, control can be branched to the sequence number.
N100
Y#23;
Branch
search
With
N10
To
head
(Note 1) When the sequence number of the branch destination is searched, the search is
conducted up to the end of the program (% code) from the block following IF; and if it
is not found, it is then conducted from the top of the program to the block before IF;.
Therefore, branch searches in the opposite direction to the program flow will take longer
to execute compared with branch searches in the forward direction.
(Note 2) EQ and NE should be used only for integers. For comparison of numeric values with
decimals, GE, GT, LE, and LT should be used.
224
Iteration
Format
WHILE ~ DO1 ;
END1 ;
WHILE ~ DO1 ;
Possible
WHILE ~ DO3 ;
END1 ;
END3 ;
Possible
WHILE ~ DO1 ;
WHILE ~ DO2 ;
Possible
END2 ;
END1 ;
WHILE ~ DO1 ;
END1 ;
WHILE ~ DO1 ;
DO2
WHILE ~ DO2 ;
:
WHILE ~ DO3 ;
:
DO27
WHILE~DO27;
WHILE ~ DO28;
Possible
WHILE ~ DO2 ;
END 28;
END 27 ;
:
END 3 ;
:
END 2 ;
END 1 ;
END 1 ;
END 2 ;
225
Not possible
WHILE ~ DO1 ;
END 1 ;
Not
possible
Not
possible
WHILE ~ DO1 ;
WHILE ~ DO1 ;
END 1 ;
~ ~
WHILE ~ DO1 ;
Not
possible
IF ~ GOTOn ;
WHILE ~ DO2 ;
END 1 ;
END 1 ;
Possible
END 2 ;
Nn
WHILE~DO1;
WHILE~DO1;
Nn;
END1;
Main program
IF~GOTOn;
END1;
WHILE~DO1;
WHILE~DO1;
Nn;
END1;
Subprogram
To subprogram
END2;
END1;
M99;
M02;
To subprogram
WHILE~DO02;
To subprogram
Subprogram
WHILE
~DO1;
M99;
Don ENDn
constitutes
illegal usage.
END 1 ;
END 1 ;
Possible
Subprogram
WHILE ~ DO1 ;
WHILE ~ DO1 ;
G65 P100 ;
G65
P100;
M02;
Possible
IF~GOTOn;
Not possible
Not possible
M02 ;
M99 ;
(Note)
As the canned cycles G73 and G83 and the special canned cycle G34 use WHILE, these
will be added multiple times.
226
Besides the standard user macro commands, the following macro instructions are also available
as external output commands. They are designed to output the variable values or characters via
the RS-232C interface.
Command format
POPEN
PCLOS
BPRNT
DPRNT
Command sequence
Open command :
POPEN
Open command
DPRNT
PCLOS
Closed command
POPEN
(1) The command is issued before the series of data output commands.
(2) The DC2 control code and % code are output from the NC system to the external output
device.
(3) Once POPEN; has been issued, it will remain valid until PCLOS; is issued.
Close command :
PCLOS
(1) This command is issued when all the data outputs are completed.
(2) The DC4 control code and % code are output from the NC unit to the external output device.
(3) This command is used together with the open command and it should not be issued unless the
open mode has been established.
(4) Issue the close command at the end of the program even when operation has been
suspended by resetting or some other operation during data output.
227
DPRNT
DPRNT [ l1 # v1 [ d1 c1 ] l 2 # v2 [ d2 c2 ] ]
l1
v1
d1
c1
: Character string
: Variable number
: Significant digits above decimal point
: Significant digits below decimal point
c+d8
(1) The character output and decimal output of the variable values are done with ISO codes.
(2) The commanded character string is output as is by the ISO code.
Alphanumerics (A to Z, 0 to 9) and special characters (+, , , /) can be used.
(3) The required significant digits above and below the decimal point in the variable values are
commanded within square parentheses. As a result, the variable values equivalent to the
commanded number of digits including the decimal point are output in ISO code in decimal
notation from the high-order digits. Trailing zeroes are not omitted.
(4) Leading zeroes are suppressed.
The leading zeroes can also be replaced by blank if so specified with a parameter. This can
justify printed data on the last column.
(Note)
A data output command can be issued even in dual-system mode. In this case,
however, note that the output channel is shared for both systems. So, take care not
to execute data output in both systems simultaneously.
228
13.5.8 Precautions
Precautions
When the user macro commands are employed, it is possible to use the M, S, T and other NC
control commands together with the arithmetic, decision, branching and other macro commands
for preparing the machining programs. When the former commands are made into executable
statements and the latter commands into macro statements, the macro statement processing
should be accomplished as quickly as possible in order to minimize the machining time, because
such processing is not directly related to machine control.
As a result, the parameter "#8101 macro single" can be set and the macro statements can be
processed in parallel with the execution of the executable statement.
(The parameter can be set OFF during normal machining to process all the macro statements
together or set ON during a program check to execute the macro statements block by block. This
enables the setting to be made in accordance with the intended objective in mind.)
Example of program
G91G28X0Y0Z0
G92X0Y0Z0
(1)
(2)
G00X-100.Y-100.
(3)
;
;
G01X#101Y#102F800 ;
(4)
(5)
Macro statement
(6)
Macro single ON
Flow of processing
Program analysis
(1)
Block executing
Program analysis
Block executing
(1)
(2)
(3)
(4)(5)(6)
(1)
(2)
(3)
(4)(5)(6)
(2)
(3)
(4)
(5)
(6)
(1)
(2)
(3)
(4)
(5)
229
(6)
Macro single ON
[In execution]
N3
[Next command]
N4
G00
X-100. Y-100. ;
#101=100.
COS [210.]
230
90.
180.
270.
360.
c1 ; R of %SIN
f1 ; Feedrate
-100.
O9910 (Subprogram)
Main program
~
G65P9910A0B360.C100.F100;
To
subprogram
~
Local variable
set by argument
#1=0
#2=360.000
#3=100.000
#9=100.000
(Note 1)
231
-X
W
Main program
G81Z100.R50.F300L0
G65P9920Aa1Bb1Rr1Xx1Yy1 ;
a1
b1
r1
x1
Start angle
No. of holes
Radius
X axis center
position
y1 ; Y axis center
position
To subprogram
#120=#24+#18COS [#111] ;
#121=#25+#18SIN [#111] ; (Note 1)
#122=#120 #123=#121 ;
IF [#102EQ90] GOTO100 ;
#103=#120
#104=#121
-Y
0 #101
G90, G91 mode
Read in #102
Read previous coordinates
X #103
Y #104
Start angle 111
(Note 1)
#122=#120 #103 ;
#123=#121 #104 ;
y1
O9920
O9920 (Subprogram)
#101=0 ;
#102=#4003 ;
#103=#5001 ;
#104=#5002 ;
#111=#1 ;
a1
;
;
;
;
N
END
Y
RadiusCOS [#111]
+ Center coordinates X#120
RadiusSIN [#111]
+ Center coordinates Y#121
#120 #122
#121 #123
(Note 1)
#102=90
(Note 1)
N100 X#122Y#123 ;
#101=#101+1 ;
#111=#1+360.#101/#2 ;
(Note 1)
#120-#103 #122
#121-#104 #123
#120 #103
#121 #104
N100X#122Y#123
END1 ;
M99 ;
#101+1 #101
360 deg.#101/
No. of holes+#1 #111
232
G28 X0 Y0 Z0;
T1 M06;
G90 G43 Z100.H01;
G54 G00 X0 Y0;
G81 Z-100.R3.F100 L0 M03;
G65 P9920 X-500. Y-500. A0 B8 R100.;
G65 P9920 X-500. Y-500. A0 B8 R200.;
G65 P9920 X-500. Y-500. A0 B8 R300.;
-X
To subprogram
-500.
300R
200R
To subprogram
-500.
To subprogram
100R
-Y
(Example 3) Grid
After defining the hole data with the canned cycle (G72 to G89), macro call is commanded as a
hole position command.
-X
i1
Subprogram is
on next page
G28 X0 Y0 Z0;
T1 M06;
G90 G43 Z100.H01;
G54 G00 X0 Y0;
G81 Z-100. R3.F100 L0 M03;
G65 P9930 X0 Y0 I-100. J-75. A5B3;
G84 Z-90. R3. F250 M03;
G65 P9930 X0 I-100. J-75. A5B3;
x1
y1
j1
-Y
100.
-X
100.
100.
W
-75.
To subprogram
-75.
To subprogram
-Y
-X
-100.
-Z
233
O9930 (Subprogram)
O9930
#101=#24 ;
#102=#25 ;
#103=#4 ;
: x1#101
: y1#102
X axis interval
: i1#103
Y axis interval
: j1#104
#104=#5 ;
Y direction
(Note 1)
No. of holes in Y direction
#106=#2 ;
#106 > 0
END
Y
Y direction drilling completion check
#105=#1 ;
X#101 Y#102
Positioning, drilling
X coordinates update
#101=#101+#103 ;
#105=#1051 ;
(Note 1)
END2 ;
#101=#101-#103;
X coordinates revision
Y coordinates update
#103 #103
#102=#102+#104;
(Note 1)
#103=#103 ;
#106=#1061 ;
#106 1 #106
END1 ;
M99 ;
(Note 1)
234
When cutting a shape that is symmetrical on the left and right, programming time can be shortened
by machining the one side and then using the same program to machine the other side. The mirror
image function is effective for this.
For example, when using a program as shown below to machine the shape on the left side, a
symmetrical shape can be machined on the right side by applying mirror image and executing the
program.
Base shape (program)
X
Mirror axis
Command format
G51.1
Xx1
G50.1
Xx2
Xx/Yy/Zz
Yy1
Zz1 ; (Mirror image ON)
Yy2
Zz2 ; (Mirror image OFF)
: Mirror image command axis
Detailed description
(1) The coordinate word for G51.1 is commanded with the mirror image command axis, and the
coordinate value commands the mirror image center coordinate with an absolute value or
incremental value.
(2) The coordinate word in G50.1 expresses the axis for which mirror image is to be turned OFF,
and the coordinate value is ignored.
(3) If mirror image is applied on only one axis in the designated plane, the rotation direction and
compensation direction will be reversed for the arc or tool diameter compensation and
coordinate rotation, etc.
(4) This function is processed on the local coordinate system, so the center of the mirror image
will change when the counter is preset or when the workpiece coordinates are changed.
235
Intermediate point
Programmed path
Mirror center
236
Precautions
C CAUTION
Turn the mirror image ON and OFF at the mirror image center.
If mirror image is canceled at a point other than the mirror center, the absolute value and machine
position will deviate as shown below. (In this state, execute the absolute value command
(positioning with G90 mode), or execute reference point return with G28 or G30 to continue the
operation.) The mirror center is set with an absolute value, so if the mirror center is commanded
again in this state, the center may be set to an unpredictable position.
Cancel the mirror at the mirror center or position with the absolute value command after canceling.
Absolute value (position
commanded in program)
Machine position
When moved with the incremental
command after mirror cancel
Programmed path
237
The corner is chamfered in such a way that the positions produced by subtracting the lengths
commanded by ",C_" from the imaginary starting and final corners which would apply if no
chamfering were to be performed, are connected.
Command format
(2)
Imaginary corner
intersection point
Chamfering
start point
Y100.0
Chamfering
end point
10.0
(1)
10.0
X axis
X100.0
238
X100.0
Detailed description
(1) The start point of the block following the corner chamfering serves as the imaginary corner
intersection point.
(2) When the comma in ",C" is not present, it is handled as a C command.
(3) When both the corner chamfer and corner rounding commands exist in the same block, the
latter command is valid.
(4) Tool offset is calculated for the shape which has already been subjected to corner chamfering.
(5) Program error "P381" results when there is an arc command in the block following the corner
chamfering block.
(6) Program error "P382" results when the block following the corner chamfering block does not
have a linear command.
(7) Program error "P383" results when the movement amount in the corner chamfering block is
less than the chamfering amount.
(8) Program error "P384" results when the movement amount in the block following the corner
chamfering block is less than the chamfering amount.
239
The imaginary corner, which would exist if the corner were not to be rounded, is rounded with the
arc having the radius which is commanded by ",R_" only when configured of linear lines.
Command format
N100 G01 X_ Y_ , R_ ;
N200 G02 X_ Y_ ;
,R_
Corner rounding is performed at the point where N100 and N200 intersect.
Example of program
R10.0
(2)
Y100.0
Imaginary corner
intersection point
(1)
X axis
X100.0
X100.0
Detailed description
(1) The start point of the block following the corner R serves as the imaginary corner intersection
point.
(2) When the comma in ",R" is not present, it is handled as an R command.
(3) When both the corner chamfer and corner rounding commands exist 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) Program error "P381" results when there is an arc command in the block following the corner
rounding block.
(6) Program error "P382" results when the block following the corner rounding block does not
have a linear command.
(7) Program error "P383" results when the movement amount in the corner rounding block is less
than the R value.
(8) Program error "P384" results when the movement amount in the block following the corner
rounding block is less than the R value.
240
Circle cutting
Circle cutting starts the tool from the center of the circle, and cuts the inner circumference of the
circle. The tool continues cutting while drawing a circle and returns to the center position.
Command format
(1) The symbol + for the offset amount indicates reduction, and indicates enlargement.
(2) The circle cutting is executed on the plane G17, G18 or G19 currently selected.
Circle radius
i1
4
2
6
7
X
3
d1 offset amount +
d1 offset amount
241
Circle cutting
Example of program
Tool
10.000m
Offset
50.000m
Radius
Cautions
(1) If the offset No. "D" is not issued or if the offset No. is illegal, the program error (P170) will
occur.
(2) If [Radius (I) = offset amount] is 0 or negative, the program error (P233) will occur.
(3) If G12 or G13 is commanded during diameter compensation (G41, G42), the diameter
compensation will be validated on the path after compensating with the D commanded with
G12 or G13.
(4) If an address, not included in the format, is commanded in the same block as G12 and G13, a
program error (P32) will occur.
242
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
P
P
P
P
N
N
N
N
H
D
S
L
P
P
P
P
A
A
A
A
N
N
N
N
;
;
;
;
H
D
S
L
;
;
;
;
243
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 the function, refer to the Operation manual and the machine
parameters in Appendix 1.
Command format
P
H
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.
Interrupt enable conditions
A user macro interrupt is enabled only during execution of a program. The requirements for the
user macro interrupt are as follows :
(1) An automatic operation mode memory, or MDI has been selected.
(2) The system is running in automatic mode.
(3) No other macro interrupt is being processed.
(Note 1) A macro interrupt is disabled in manual operation mode (JOG, STEP, HANDLE, etc.)
244
Macro interrupt
Outline of operation
(1) When a user macro interrupt signal (UIT) is input after an M96Pp1 ; command is issued by the
current program, interrupt program Op1 is executed. When an M99; command is issued by the
interrupt program, control returns to the main program.
(2) If M99Pp2 ; is specified, the blocks from the one next to the interrupted block to the last one are
searched for the block with sequence number Np2 ;. Control thus returns to the block with
sequence number Np2 that is found first in the above search.
Current program
Interrupt program
M96Pp1;
User macro
interrupt signal
(UIT)
Op1 ;
M99(Pp2) ;
(If Pp2 is specified)
Np2 ;
Np2 ;
M97 ;
245
Macro interrupt
Interrupt type
246
Main program
block(1)
block(2)
Macro interrupt
block(3)
block(3)
block(2)
Interrupt program
block(1)
block(2)
block(2)
Interrupt program
Executing
[Type 2]
Main program
block(1)
block(2)
block(1)
block(2)
block(3)
block(3)
Interrupt program
If the interrupted program contains no move
and miscellaneous commands, the
interrupted program is kept executed in
parallel to execution of the interrupt
program block (3).
block(1)
block(2)
block(3)
Interrupt program
User macro interrupt
247
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".
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.
a. Subprogram type interrupt
b. Macro type interrupt
Subprogram type interrupt
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 mode
248
Macro interrupt
M99 (P__) ;
An M99 command is issued in the interrupt program to return to the main program. Address P is
used to specify the sequence number of the return destination in the main program. The blocks
from the one next to the interrupted block to the last one in the main program are first searched for
the block with sequence number Np2;. If it is not found, all the blocks before the interrupted one are
then searched. Control thus returns to the block with sequence number Np2; that is found first in
the above search.
(This is equivalent to M99P__ used after M98 calling.)
249
Macro interrupt
If modal information is changed by the interrupt program, it is handled as follows after control
returns from the interrupt program to the main program.
Returning with M99;
Main program
being executed
Interrupt program
M96Pp1 ;
Op1 ;
(Modal change)
User macro
interrupt signal
(UIT)
Modal before
interrupt is
restored.
M99(p2) ;
Modal modified by
interrupt program
remains effective.
250
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.
System variable
Modal information
#4401 to #4421
#4507
D code
#4509
F code
#4511
H code
#4513
M code
#4514
Sequence number
#4515
Program number
#4519
S code
#4520
T code
The above system variables are available only in the user macro interrupt program. If they are
used in other programs, program error (P241) results.
M code for control of user macro interrupt
The user macro interrupt is controlled by M96 and M97. However, these commands may have
been used for other operation. To be prepared for such case, these command functions can be
assigned to other M codes.
(This invalidates program compatibility.)
User macro interrupt control with alternate M codes is possible by setting the alternate M code in
parameters "#1110 M96_M" and "#1111 M97_M" and by validating the setting by selecting
parameter "#1109 subs_M".
(M codes 03 to 97 except 30 are available for this purpose.)
If the parameter "#1109 subs_M" used to enable the alternate M codes is not selected, the M96
and M97 codes remain effective for user macro interrupt control.
In either case, the M codes for user macro interrupt control are processed internally and not output
to the outside.
251
Macro interrupt
Parameters
(1) If the user macro interrupt program uses system variables #5001 and after (position
information) to read coordinates, the coordinates pre-read in the buffer are used.
(2) If an interrupt is caused during execution of the tool diameter compensation, a sequence
number (M99P__;) must be specified with a command to return from the user macro interrupt
program. If no sequence number is specified, control cannot return to the main program
normally.
252
By specifying the tool change position in a parameter "#8206 TOOL CHG. P" 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
Return order
G30.1
( added axis)
G30.2
( added axis)
G30.3
( added axis)
G30.4
( added axis)
G30.5
( added axis)
G30.6
( added axis)
(Note 1) An arrow ( ) indicates the order of axes that begin to return. An period ( )
indicates that the axes begin to return simultaneously. (Example : "Z axis X axis,
Y axis" indicate that the Z axis returns to the tool change position, then the X and Y
axes does.)
(2) The tool change position return on/off for the added axis can be set with parameter "#1092
Tchg_A" for the added axis.
Note, however, that the added axis always return to the tool change position only after the
standard axes complete returning (see the above table).
The added axis alone cannot return to the tool change position.
253
Example of operates
(1) The figure below shows an example of how the tool operates during the tool change position
return command. (Only operations of X and Y axes in G30.1 to G30.3 are figured.)
Y
G30.3
G30.1
G30.2
1) G30.1 command: The Z axis returns to the tool change position, then the X and Y axes
simultaneously do the same thing. (If tool change position return is on for
an added axis, the added axis also returns to the tool change position
after the X, Y and Z axes reach the tool change position.)
2) G30.2 command: The Z axis returns to the tool change position, then the X axis does the
same thing. After that, the Y axis returns to the tool change position.
(If tool change position return is on for an added axis, the added axis
also returns to the tool change position after the X, Y and Z axes reach
the tool change position.)
3) G30.3 command: The Z axis returns to the tool change position, then the X axis does the
same thing. After that, the X axis returns to the tool change position.
(If tool change position return is on for an added axis, the added axis
also returns to the tool change position after the X and Z axes reach the
tool change position.)
4) G30.4 command: The X axis returns to the tool change position, then the Y axis and Z axis
simultaneously do the same thing.
(If tool change position return is on for an added axis, the added axis
also return to the tool change position after the X, Y and X axes reach
the tool change position.)
5) G30.5 command: The Y axis returns to the tool change position, then the X and Z axes
return to the tool change position simultaneously.
(If tool change position return is on for an added axis, the added axis
also returns to the tool change position after the X, Y and Z axes reach
the tool change position.)
6) G30.6 command: The X, Y and Z axes return to the tool change position simultaneously.
(If tool change position return is on for an added axis, the added axis
also returns to the tool change position after the X, Y and Z axes reach
the tool change position.)
254
(2) After all necessary tool change position return is completed by a G30.n command, tool change
position return complete signal TCP (X64B) 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.1 command, for example, the TCP signal is turned on when the Z axis has
reached the tool change position after the X and Y axes did (after the additional axis did if
additional axis tool change position return is valid). The TCP signal is then turned off when the
X or Y axis leaves the position. If tool change position return for added axes is on with
parameter "#1092 Tchg_A", the TCP signal is turned on when the added axis or axes have
reached the tool change position after the standard axes did. It is then turned off when one of
the X, Y, Z, and added axes leaves the position.
[TCP signal output timing chart]
Work program
T02;
G00X-100.
(3) When a tool change position return command is issued, tool offset data such as for tool length
offset and tool radias compensation for the axis that moved is canceled.
(4) This command is executed by dividing blocks for every axis. If this command is issued during
single-block operation, therefore, a block stop occurs each time one axis returns to the tool
change position. To make the next axis return to the tool change position, therefore, a cycle
start needs to be specified.
255
High-accuracy control
Until now, trouble such as the following occurred when using control:
(1) Corner rounding occurred at the corners that linear and linear are connected because the
following command movement started before the previous command finished. (Refer to Fig. 1)
(2) When cutting circle commands, an error occurred further inside the commanded path, and the
resulting cutting path was smaller than the commanded path. (Refer to Fig. 2)
Commanded path
Commanded path
Actual path
Actual path
This function controls the operation so the lag is eliminated in control systems and servo
systems. With this function, machining accuracy can be improved, especially during
high-speed machining, and machining time can be reduced.
The high-accuracy control function is configured of the following functions.
(1) Pre-interpolation acceleration/deceleration (linear acceleration/deceleration)
(2) Optimum speed control
(3) Vector accuracy interpolation
(4) Active feed forward
(5) Arc entrance/exit speed control
256
High-accuracy control
Command format
G61.1 Ff1 ;
G61.1 : High-accuracy control mode
f1
: Feedrate
The high-accuracy control mode is validated from the block containing the G61.1 command.
G64
G61.1
The high-accuracy control mode is canceled with one of the following G commands.
G61 (exact stop check)
G62 (automatic corner override)
G63 (tapping mode)
G64 (cutting mode)
Detailed description
Reset 1
Reset 2
OFF
ON
ON
OFF
ON
ON
OT
Emergency
stop cancel
H/W OT
Power ON
OFF
Emergency
NC
stop
alarm
Servo alarm
OFF
Block
stop
Block
interruption
Reset
Default
state
Parameter
(5)
(4)
Single block
(3)
*
H
*
H
*
H
*
H
Feed hold
(2)
Mode changeover
(automatic/manual)
(1)
*
H
H
H
H
H (hold) : Modal hold (G61.1 G61.1)
C (cancel) : Modal cancel (G61.1 G64)
(Note) The cases marked with an asterisk (*) in the above table indicate that the modal will shift to
the high-accuracy control mode (G61.1) even in modes other than the high-accuracy
control mode (modes G61 to G64).
257
High-accuracy control
Pre-interpolation acceleration/deceleration
Acceleration/deceleration control is carried out for the movement commands to suppress the
impact when the machine starts or stops moving. However, with conventional post-interpolation
acceleration/deceleration, the corners at the block seams are rounded, and path errors occur
regarding the commanded shape.
In the high-accuracy control function mode, acceleration/deceleration is carried out before
interpolation to solve the above problems. This pre-interpolation acceleration/deceleration enables
machining on a machining path that more closely follows the command.
The acceleration/deceleration time can be reduced because constant inclination acceleration/
deceleration is carried out.
(1) Basic patterns of acceleration/deceleration control in linear interpolation commands
Acceleration/deceleration pattern
clamp
G1tL
G1tL
Time
Normal mode
clamp
G1t1
G1t1
Time
Combined speed
clamp
High-accuracy
control mode
G1bF
G1bF/2
G1btL/2
G1btL
G1btL/2
G1btL
Time
258
High-accuracy control
The compensation amount of the circle radius reduction error (R) is theoretically calculated
as shown in the following table.
Post-interpolation
Pre-interpolation
acceleration/deceleration control
acceleration/deceleration control
(normal mode)
(high-accuracy control mode)
Linear acceleration/deceleration
Linear acceleration/deceleration
R
1
2R
2
1
1
2
2 F
R =
Ts + Tp
2R
12
60
1
2R
(Ts2 + Tp2 )
Exponential function
acceleration/deceleration
R
{Tp ( 1 Kf ) } 60F
2
F
60
259
High-accuracy control
V
Speed after the corner is passed
The corner angle V is controlled so that this V value becomes less than the pre-interpolation
acceleration/ deceleration tolerable value set in the parameters ("#1206 G1bF", "#1207
G1btL").
In this case the speed pattern is as follows.
Y axis
X axis
N01 G01X100.Y1.F500 ;
Combined
speed
pattern
N02 G01X100.Y-1.F500 ;
V0
V0 =
V0x2 + V0y2
V =
V0 (100 Ks)
100
Ks: R COMPEN
V0x
(Note) In this case, the cycle time
may increase due to the
increase in the time
required for acceleration/
deceleration.
Speed
Time
G1bF
G1btL
V0 =
Speed
Time
Y axis
speed
pattern
Speed
Time
X axis
speed
pattern
V0y
260
High-accuracy control
F
F
F
F
R
R V 60 1000 (mm/min)
V =
G1bF (mm/min)
G1btL (ms)
When the above F' expression is substituted in the expression expressing the maximum
logical arc radius reduction error amount R explained in the section "a) Pre-interpolation
acceleration/deceleration", the commanded radius R is eliminated, and R does not rely on R.
1
2R
1
2R
{Tp2 (1 Kf2) } (
)2
60
{Tp2 (1 Kf2) } (
V 1000
60
In other words, with the arc command in the high-accuracy control mode, in logical terms
regardless of the commanded speed F or commanded radius R, machining can be carried out
with a radius reduction error amount within a constant value.
To further lower the arc clamp speed (to further improve the roundness), the arc clamp speed
can be lowered with the machining parameter "#8019 R COMPEN". In this case, speed control
is carried out to improve the maximum arc radius reduction error amount R by the set
percentage.
R (100 Ks)
100
(mm)
After setting the "R COMPEN", the above R' will appear on the parameter screen.
R COMPEN (0.078) 50
Accuracy coefficient setting value
R
(Note 1) When the "R COMPEN" is set, the arc clamp speed will drop, so in a machining program
with many arc commands, the machining time will take longer.
(Note 2) The "R COMPEN" is valid only when the arc speed clamp is applied. To reduce the radius
reduction error when not using the arc speed clamp, the commanded speed F must be
lowered.
261
High-accuracy control
When a fine segment is commanded and the angle between the blocks is extremely small (when
not using optimum corner deceleration), interpolation can be carried out more smoothly using the
vector accuracy interpolation.
Vector accuracy interpolation
Commanded path
With this function, the constant speed error caused by the position loop control of the servo system
can be greatly reduced. However, as machine vibration is induced by the feed forward control,
there are cases when the coefficient cannot be increased.
In this case, use this function together with the smooth high gain (SHG) control function and stably
compensate the delay by the servo system's position loop to realize a high accuracy. As the
response is smoother during acceleration/deceleration, the position loop gain can be increased.
(1) Active feed forward control
+
+
Kp
Kv
Detector
Machine error
compensation
amount
262
High-accuracy control
(2) Reduction of arc radius reduction error amount using feed forward control
With the high-accuracy control, the arc radius reduction error amount can be greatly reduced
by combining the pre-interpolation acceleration/deceleration control method above-mentioned
and the active feed forward control/SHG control.
The logical radius reduction error amount R in the high-accuracy control mode is obtained
with the following expression.
Active feed forward control
{T p
2R
(1 K f ) }
2
F
60
50 2 PGN1 for SHG control
The feed forward gain can be set independently for G00 and G01.
F
R
R
(Note)
If the machine vibrates when Kf is set to 1, Kf must be lowered or the servo system
must be adjusted.
263
High-accuracy control
There are cases when the speed fluctuates and the machine vibrates at the joint from the straight
line to arc or from the arc to straight line.
This function decelerates to the deceleration speed before entering the arc and after exiting the arc
to reduce the machine vibration. If this is overlapped with corner deceleration, the function with the
slower deceleration speed is valid.
The validity of this control can be changed with the base specification parameter "#1149 cireft".
The deceleration speed is designated with the base specification parameter "#1209 cirdcc".
(Example 1) When not using corner deceleration
<Program>
<Operation>
G61.1 ;
N1
N2
N3
<Deceleration pattern>
Speed
Commanded speed
N1
N2
N3
Time
264
High-accuracy control
<Operation>
G61.1 ;
N1
N2
N3
<Deceleration pattern>
Speed
Commanded speed
N1
N2
N3
Time
265
CAUTION
When programming a multi-part system, carefully observe the movements caused by other
part systems' programs.
Function and purpose
The multi-axis, multi-part system complex control NC system can simultaneously run multiple
machining programs independently. The synchronizing-between-part systems function is used in
cases when, at some particular point during operation, the operations of part systems 1 and 2 are
to be synchronized or in cases when the operation of only one part system is required.
Part system 1 machining
program
Simultaneous and
independent operation
! ......;
! ......;
Synchronized operation
Simultaneous and
independent operation
! ......;
! ......;
No program
! ......;
Synchronized operation
Part system 2 operation only;
part system 1 waiting
! ......;
Synchronized operation
Simultaneous and
independent operation
266
Command format
(1)
$1
$2
!2L1;
!1L1;
$3
Synchronized
operation
!1L2;
!3L2;
Synchronized
operation
(2)
!n!mLl;
n, m : Part system number n = m
l
: Synchronizing number 01 to 9999
$2
$1
$3
!2!3L1;
!1!2L1;
Synchronized
operation
!1!3L1;
267
Synchronized
operation
Detailed description
(1) When the "!nLl" code is issued from the part system "i", the operation of that program will wait
until the "!iLl" code is issued from the part system "n".
When the "!iLl" code is issued, the programs of both part systems "i" and "n" will start running
simultaneously.
Part system "i"
program
Pn1
Pi1
Pm1
!nLl;
Synchronized
operation
!iLl;
Pi2
Pi1
Pn2
Pi2
Waiting
Simultaneous start
Pn1
Pn2
Pm1
(2) Synchronizing among three part systems is as follows. When the "!n!mLl" command is issued
from the part system "i", the program of part system "i" operation will wait until the "!i!mLl"
command is issued from the part system "n" and the "!i!nLl" command is issued from the part
system "m".
When the synchronizing commands are issued, programs of part systems "i", "n" and "m" will
start operating simultaneously.
Part system "i"
program
Pi1
Pn1
Pm1
!n!mLl;
Synchronized
operation
!i!mLl;
Synchronized
operation
Pi2
Pi1
Pn1
Pn2
Waiting
Waiting
Pm1
Pi2
Pn2
Pm2
Simultaneous start
268
!i!nLl;
Pm2
(3) Program error (P35) occurs when an illegal system number has been issued.
(4) 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.
(5) 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 part systems.
To synchronize the part systems when movement starts after synchronization, issue the
movement command in the same block as the synchronizing command.
(6) Synchronizing is done only while the part 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.
(7) The L command is the synchronizing identification number. The same numbers are
synchronized but when they are omitted, the numbers are handled as L0.
(8) The synchronizing command designates the number of the other part system number to be
synchronized, and can also be issued along with its own part system number.
(Example) Part system "i" command: !i!n!mLl;
(9) When the part system No. is omitted (when only "!" is issued), part system 1 will be handled as
"!2" and part system 2 as "!1". The command using only "!" cannot be used for synchronizing
with part system 3 and following.
If the command using only "!" is used for part system 3 or following, the program error (P33)
will occur.
(10) "SYN" will appear in the operation status section during synchronization. The synchronizing
signal will be output to the PLC I/F. ($1: X63C, $2: X6BC, $3: X73C, $4: X7BC, $5: X83C, $6:
X8BC, $7: X93C)
269
$1
$2
P11
$3
!2L2;
P21
P31
!2L1;
!1!2L3;
!1L1;
P32
P22
P12
!1L4;
!3L2;
!2!3L3;
P33
P23
P13
!1!3L3;
!3L4;
P24
P14
P11
P12
P13
L1
$2
P21
P14
L3
P22
P23
L2
$3
P31
270
P24
L4
L3
P32
P33
The part system can wait for the other part system to reach the start point before starting itself.
The synchronization point can be set in the middle of a block.
Command format
!nL1
G115
!nL1
G115
X_ Z_ C_
X_ Z_ C_ ;
Synchronizing command
G command
Start point (Command axis and workpiece coordinate values for checking
synchronization of other part system.)
Detailed description
(1)
(2)
Designate the start point using the workpiece coordinates of the other part system.
The start point check is executed only for the axis designated by G115.
(Example) !L2 G115 X100.;
Once the other part system reaches X100., the own part system will start. The other axes are
not checked.
(3) The other part system starts first when synchronizing is executed.
(4) The own part system waits for the other part system to move and reach the designated start
point, and then starts.
Own part system
!G115
Synchronized
operation
!G115
Synchronized
operation
271
(5) When the start point designated by G115 is not on the next block movement path of the other
part system, the own system starts once the other part system has reached all of the start point
axis coordinates.
Example:
: Movement
: Command point
(6) The following operation is executed by parameters (base specification parameter #1229
set01/bit5) when the start point cannot be determined by the next block movement of the other
system.
(a) When the parameter is ON
Operation waits until the start point is reached by the movement in the next and
subsequent blocks.
Waiting
Own part system
!G115
(7) The waiting status continues when the G115 command has been duplicated between part
systems.
(8) Designate the start point using the workpiece coordinates of the other part system.
(9) Program error "P33" occurs when the G115 command is issued for 3 part systems.
(10) The single block stop function does not apply for the G115 block.
(11) When the G115 command is issued continuously in 2 or more blocks, the block in which it was
issued last will be valid.
(12) A program error (P32) will occur if an address other than an axis is designated in G115
command block.
272
Starting of the other part system can be delayed until the own part system reaches the designated
start point.
The synchronization point can be set in the middle of a block.
Command format
!nL1
G116
X_ Z_ C_ ;
!nL1
G116
X_ Z_ C_
Synchronizing command
G command
Start point (Command axis and workpiece coordinate values for checking
synchronization of own part system.)
Detailed description
(1)
Designate the start point using the workpiece coordinates of the own part system.
(2)
The start point check is executed only for the axis designated by G116.
(Example) !L1 G116 X100.;
Once the own part system reaches X100., the other part system will start. The other axes are
not checked.
(3) The own part system starts first when synchronizing is performed.
(4) The other part system waits for the own part system to move and reach the designated start
point, and then starts.
Designated start point
Own part system
!G116
Synchronized
operation
!
Designated start point
!G116
Synchronized
operation
273
(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:
: Movement
: Command point
(6) The next operation is executed by parameters (base specification parameter #1229 set01/bit5)
when the start point cannot be determined by the next block movement of the own part system.
(a) When the parameter is ON
Program error "P33" occurs before the own part system moves.
!G116
Program error
!
Waiting
!G116
(7) If the G116 command overlaps between part systems, the waiting state will continue.
!L1 G116
Waiting
!L1 G116
(8) Designate the start point using the workpiece coordinates of each part system.
274
(9) The two other part systems start when the G116 command is issued for 3 part systems.
!2!3 L1 G116
!1!3 L1
!1!2 L1
(10) The single block stop function does not apply for the G116 block.
(11) When the G116 command is issued continuously in 2 or more blocks, the block in which it was
issued last will be valid.
(12) A program error (P32) will occur if an address other than an axis is designated in G116
command block.
275
This function controls the timing of the miscellaneous function to be output. The miscellaneous
function is output when the position designated in axis movement is reached.
Command format
(1) This command is issued independently immediately before the block with the movement
command that activates the miscellaneous function.
(2) Single block stop does not apply to this command.
(3) The maximum number of groups to which the miscellaneous functions in the G117 block can
be issued is as follows:
M commands
: 4 sets
S commands
: 2 sets
T commands
: 1 set
2nd miscellaneous function : 1 set
(4) This command can be issued in up to two consecutive blocks.
When issued in three or more consecutive blocks, the last two blocks will be valid.
(Example) G117 Xx1 Zz1 Mm1 Mm2 Mm3 Mm4;
G117 Xx2 Zz2 Mm5 Mm6 Mm7 Mm8;
G01 X200 Z200;
Mm1
(x2,z2)
Mm2
Mm3
Mm5
Mm4
Mm6
(x1,z1)
Start point
Mm7
Mm8
(5) When the operating start point commanded by G117 is not on the movement path, the
miscellaneous function will be output once the movement has reached all the coordinate
values of the operating start point. In addition, only the commanded axis is checked.
(Example) G117 X100. M;
276
(7) A miscellaneous function issued in the same block as the block with the movement command
is output before the movement and starts the movement. During movement, operation will not
stop at the operating start point. However, at the end point of the block, the completion of all
the miscellaneous functions is checked first, and then the execution of the next block is
started.
(8) G117 should be issued in the sequence of operating start points. Program error (P33) occurs if
the sequence of the operating start point is the reverse of the movements.
When operating start points coincide, the miscellaneous functions are output in the sequence
in which they were issued.
(9) When an operating start point cannot be determined by the next block movement, the next
operation is performed by the parameter.
Basic specification parameter
"#1229 set01/bit5"
ON
OFF
Operation
Program error P33 occurs before movement
The functions are output when the next block
movement is completed.
(10) The following tables show the combinations of (8) and (9).
G17 First block
During intermediate
point movement
Second block
During intermediate point
Refer to (8).
movement
Precautions
(1) Command G117 in order of the operation start points. If the operation start point order is the
opposite of the movement, a program error (P33) will occur.
277
There are three controlled axis for the basic specifications, but when an additional axis is added,
up to 14 axes can be controlled. Pre-determined alphabetic coordinate words that correspond to
the axes are used to designate each machining direction.
For XY table
+Z
+Z
+Y
+X
Program coordinates
Workpiece
+X
XY table
+Y
Table movement
direction
For XY table
+X
Table movement direction
+C
+Y
+Z
+Y
+X
+C
278
The basic machine coordinate system is fixed in the machine and it denotes that position which is
determined inherently by the machine.
The work coordinate systems are used for programming and in these systems the reference point
on the workpiece is set as the coordinate zero point.
the local coordinate systems are created on the work coordinate systems and they are designed to
facilitate the programs for parts machining.
R#1
Reference
point
W3 (Workpiece 3
coordinate system)
W4 (Workpiece 4
coordinate system)
W1 (Workpiece 1
coordinate system)
(Basic machine coordinate system)
W2 (Workpiece 2
coordinate system)
R#1
W2
W1
279
Machine zero point and 2nd, 3rd, 4th reference points (Zero point)
14.3 Machine zero point and 2nd, 3rd, 4th reference points (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.
2nd, 3rd and 4th reference (zero points) points (zero points) relate to the position of the
coordinates which have been set beforehand by parameter from the zero point of the basic
machine coordinate system.
2nd reference point
(X2,Y2)
y
(X1,Y1)
x
Local coordinate system
G52
y
Workpiece (G54 to G59)
x
coordinate system
280
The basic machine coordinate system is the coordinate system that expresses the position (tool
change position, stroke end position, etc.) that is characteristic to the machine.
The tool is moved to the position commanded on the basic machine coordinate system with the
G53 command and the coordinate command that follows.
Command format
:Additional axis
Detailed description
(1) When the power is switched on, the basic machine coordinate system is automatically set as
referenced to the reference (zero) point return position, which is determined by the automatic
or manual reference (zero) point return.
(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) In the incremental value command mode (G91), the G53 command provides movement with
the incremental value in the coordinate system being selected.
(5) Even if G53 is commanded, the tool diameter offset amount for the commanded axis will not
be canceled.
(6) The 1st reference point coordinate value indicates the distance from the basic machine
coordinate system 0 point to the reference point (zero point) return position.
(7) The G53 commands will all move with rapid traverse.
(8) If the G53 command and G28 command (reference point return) are issued in the same block,
the command issued last will be valid.
(500,500)
-X
R#1
281
By commanding G92, the absolute value (workpiece) coordinate system and current position
display value can be preset in the command value without moving the machine.
Command format
:Additional axis
Detailed description
(1) After the power is turned on, the first reference point return will be done with dog-type, and when completed, the
coordinate system will be set automatically. (Automatic coordinate system setting)
Basic machine coordinate system R,M
R
Reference point
return completed
Power ON
position
Reference point
return
Power ON
position
100.
[Current
value]
X 0.000
Y 0.000
[Workpiece]
Workpiece coordinate X 300.000
Y 200.000
system
WG54 100.
200.
(2) By commanding G92, the absolute value (workpiece) coordinate system and current position display value can be preset
in the command value without moving the machine.
R,M
200.
100.
[Tool
position]
50.
WG54 100.
(Note)
[Current
value]
X -200.000
Y -150.000
[Workpiece]
X 100.000
Y
50.000
200.
R,M
Coordinate system
setting
For example, if
G92X 0 Y 0; is
commanded, the
workpiece
coordinate system
will be newly
created.
100.
-100
[Tool
position]
[Current value]
X 0.000
Y 0.000
[Workpiece]
X 0.000
Y 0.000
WG54'100.
-50.
200.
WG54
300.
If the workpiece coordinate system deviated because the axis is moved manually when
the manual absolute position switch is OFF, etc., the workpiece coordinate system can be
corrected with the following steps.
(1) Execute reference point return while the coordinate system is deviated.
(2) After that, command G92G53X0Y0Z0;. With this command, the workpiece coordinate
value and current value will be displayed, and the workpiece coordinate system will
be preset to the offset value.
282
This function creates each coordinate system according to the parameter values input beforehand
from the setting and display unit when the reference point is reached with the first manual
reference point return or dog-type reference point return when the NC power is turned ON.
Basic machine coordinate
Machine
zero point
x1
y1
y3
Work coordinate
system 3 (G56)
y2
1st reference
point
Work coordinate
system 1 (G54)
Work coordinate
system 2 (G55)
x2
x3
y4
Work coordinate
system 6 (G59)
Work coordinate
system 5 (G58)
Work coordinate
system 4 (G57)
x4
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.
283
(1) After the commanded axes have been positioned by G0, they are returned respectively at
rapid traverse to the first reference (zero) point when G28 is commanded.
(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.
2nd reference point
G30P2
G28
G28
G29
(x1,y1,z1,1)
Start point
Intermediate point
G30
G30P3
(x2,y2,z2,2)
G30P4
G29
3th reference point
4th reference point
Command format
284
Detailed description
285
Example of program
G0Xx3Zz3;
(x1,z1)
Intermediate point
G0Xx1 Zz1;
Return start position
1st operation after power
has been switched on
2nd and subsequent
operations
Near-point dog
286
(G0)Xx1 Zz1 ;
G0 Xx2 Zz2 ;
(x2,z2)
(Example 3)
G28 Xx1 Zz1 ; (From point A to reference (zero) point)
G30 Xx2 Zz2 ; (From point B to 2nd reference (zero) point)
G29 Xx3 Zz3 ; (From point C to point D)
Present position
R1
Reference (zero)
point position
New
(#1)
G30
G28
B
G29
C
287
intermediate point
(x2,z2)
D
(x3,z3)
R2
2nd reference (zero) point
position (#2)
14.8 2nd, 3rd and 4th reference (zero) point return; G30
Function and purpose
The tool can return to the second, third, or fourth reference (zero) point by specifying G30 P2 (P3
or P4).
2nd reference point
Reference point
G30P2
G28
G28
G29
(x1,y1,z1,1)
Start point
G30
Intermediate point
G30P3
G30P4
G29
4th reference point
Command format
:Additional axis
288
Detailed description
(1) The second, third, or fourth reference (zero) point return is specified by P2, P3, or P4. A
command without P or with P0, P1, P5 or a greater P number is ignored, returning the tool to
the second reference (zero) point.
(2) In the second, third, or fourth reference (zero) point return mode, as in the first reference
(zero) point return mode, the tool returns to the second, third, or fourth reference (zero) pint via
the intermediate point specified by G30.
(3) The second, third, and fourth reference (zero) point coordinates refer to the positions specific
to the machine, and these can be checked with the setting and display unit.
(4) If G29 is specified after completion of returning to the second, third, and fourth reference
(zero) points, the intermediate position used last is used as the intermediate position for
returning by G29.
R#1
-X
G29Xx 2Yy 2;
R#3
(x 2,y 2)
-Y
(5) With reference (zero) point return on a plane during compensation, the tool moves without tool
diameter compensation (zero compensation) from the intermediate point. with a subsequent
G29 command, the tool moves with tool diameter compensation until the G29 command from
the intermediate point.
R#3
-X
Tool nose center
path
Intermediate point
3rd reference (zero) point
Programmed path
G30P3Xx 1Yy 1;
(x 1,y 1)
-Y
G29Xx 2Yy 2;
(x 2,y 2)
289
(6) The tool length offset amount for the axis involved is canceled after the second, third and
fourth reference (zero) point returns.
(7) With second, third and fourth reference (zero) point returns in the machine lock status, control
from the intermediate point to the reference (zero) point will be ignored. When the designated
axis reaches as far as the intermediate point, the next block will be executed.
(8) With second, third and fourth reference (zero) point returns in the mirror image mode, mirror
image will be valid from the start point to the intermediate point and the tool will move in the
opposite direction to that of the command. However, mirror image is ignored from the
intermediate point to the reference (zero) point and the tool moves to the reference (zero)
point.
R#3
-X
290
This command first positions the tool at the position assigned by the program and then, if that
positioning point is the first reference point, it outputs the reference point arrival signal to the
machine in the same way as with the G28 command. Therefore, when a machining program is
prepared so that the tool will depart from the first reference point and return to the first reference
point, it is possible to check whether the tool has returned to the reference point after the program
has been run.
Command format
: Check command
: Return control axis
: Check number
P1 : 1st reference point check
P2 : 2nd reference point check
P3 : 3rd reference point check
P4 : 4th reference point check
Detailed description
(1) If the P command has been omitted, the first reference point will be checked.
(2) The number of axes whose reference points can be checked simultaneously depends on the
number of axes which can be controlled simultaneously.
Note that the display shows one axis at a time from the final axis.
(3) An alarm will occur if the reference point is not reached after the command is completed.
291
14.10 Workpiece coordinate system setting and offset ; G54 to 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 to G59)
In addition to the six sets of workpiece coordinate systems between G54 and G59, there are
48 additional workpiece coordinate system sets. (The 48 sets are options.)
(3) Among the 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
tool radius, tool length and tool position offset.)
(4) An imaginary machine coordinate system with coordinates which have been commanded by
the present position of the tool is set by this command.
(The "present position of the tool" includes the offset amounts for tool diameter, tool length and
tool position offset.) (G54, G92)
Command format
292
Detailed description
(1) With any of the G54 through G59 commands, the tool diameter offset amounts for the
commanded axes will not be canceled even if workpiece coordinate system selection is
commanded.
(2) The G54 workpiece coordinate system is selected when the power is switched on.
(3) Commands G54 through G59 are modal commands (group 12).
(4) The coordinate system will move with G92 in a workpiece coordinate system.
(5) The offset setting in a workpiece coordinate system denotes the distance from the zero point
of the basic machine coordinate system.
Reference point
R#1
(#1) (zero point)
return position
M
-X
-X(G54)(-500,
-500)
-X(G55)(-2000,
-1000)
W2
-Y(G55)
W1
-Y
(G54)
(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.)
Handling when L or P is omitted
G10 L2 Pn Xx Yy Zz ;
G10 L2 Xx Yy Zz ;
G10 L20 Pn Xx Yy Zz ;
G10 L20 Xx Yy Zz ;
G10 Pn Xx Yy Zz ;
G10 Xx Yy Zz ;
;n=0
293
(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 through 6 (G55 to G59) will move in parallel and new workpiece coordinate systems
2 through 6 will be set.
(8) An imaginary machine coordinate system is formed at the position which deviates from the
new workpiece reference (zero) point by an amount equivalent to the workpiece coordinate
system offset amount.
R#1
-X
M
[M]
-X
-X(G54)
W1
-X(G55)
W2
-X(G54')
[W1]
-X(G55')
-Y(G55)
-Y(G54)
[W2]
-Y
-Y(G54')
-Y(G55')
-Y
After the power has been switched on, the imaginary machine coordinate system is matched with the
basic machine coordinate system by the first automatic (G28) or manual reference (zero) point return.
(9) By setting the imaginary basic machine coordinate system, the new workpiece coordinate
system will be set at a position which deviates from that imaginary basic 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 switched on, the basic machine coordinate system and workpiece coordinate
systems are set automatically in accordance with the parameter setting.
(11) If G54X-Y-; is commanded after the reference return (both automatic or manual) executed
after the power is turned ON, the program error (P62) will occur. (A speed command is
required as the movement will be controlled with the G01 speed.)
(12) Do not command a G code for which a P code is used in the same block as G54.1. The P code
will be used in the prioritized G command.
(13) When number of workpiece offset sets additional specifications is not added, the program
error (P39) will occur when the G54.1 command is executed.
294
(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 P48 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
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
P12
P13
P14
P15
P16
P17
P18
P19
P20
P21
P22
P23
P24
P25
P26
P27
P28
P29
P30
P31
P32
P33
P34
P35
P36
P37
P38
P39
P40
P41
P42
P43
P44
P45
P46
P47
P48
CAUTION
If the workpiece coordinate system offset amount is changed during single block stop, the new
setting will be valid from the next block.
295
Example of program
(Example 1)
(1) G28 X0Y0 ;
(2) G53 X1000 Y500 ;
(3) G53 X0Y0 ;
R#1
Present
position
(1)
(2)
(3)
When the first reference point coordinate is zero, the basic machine coordinate
system zero point and reference (zero) point return position (#1) will coincide.
(Example 2)
(1) G28X0Y0 ;
(2) G90G00G53X0Y0 ;
(3) G54X-500 Y500 ;
(4) G01G91X500F 100 ;
(5) Y500 ;
(6) X+500 ;
(7) Y+500 ;
(8) G90G00G55X0Y0 ;
(9) G01X500 F200 ;
(10) X0Y500 ;
(11) G90G28X0Y0 ;
-X(G55)
(1)
Present position
(2)
M
-X(G54) -1000 -500
(3) -500
W2
(9)
W1
(8)
-1000
(5) (4) (7) 500
(10)
(11)
-1500
(6)
1000
-Y
(G55)
296
-Y
(G54)
(Example 3) When workpiece coordinate system G54 has shifted (500, 500) in example 2 (It is
assumed that 3 through 10 in example 2 have been entered in subprogram 01111.)
(1) G28 X0 Y0 ;
(2) G90 G53 X0 Y0 ;
(3) G54 X
500Y500 ;
(4) G92 X0 Y0 ;
(5) M98 P1111 ;
(2)
Present position
-X(G54)
(3)
(4)
W1
-X(G55')
-Y
(G54)
W2
-Y
(G55)
-Y
(G54')
-Y(G55')
-Y
(Note)
The workpiece coordinate system will shift each time steps 3 through 5 are
repeated. The reference point return (G28) command should therefore be
issued upon completion of the program.
297
(Example 4) When six workpieces are placed on the same coordinate system of G54 to G59, and
each is to be machined with the same machining.
(1) Setting of workpiece offset data
Workpiece1
2
3
4
5
6
X = 100.000
X = 100.000
X = 500.000
X = 500.000
X = 900.000
X = 900.000
Y = 100.000 .......................................
Y = 500.000 ......................................
Y = 100.000 ......................................
Y = 500.000 ......................................
Y = 100.000 ......................................
Y = 500.000 .......................................
G54
G55
G56
G57
G58
G59
Face cutting
O100;
N1 G90 G0 G43X-50. Y-50. Z-100. H10;
N2 G01 X-200. F50;
Y-200. ;
X- 50. ;
Y- 50. ;
N3 G28 X0 Y0 Z0 ;
Drilling
1
2
3
4
Tapping
1
2
3
4
298
-X
299
(Workpiece 6)
G59
(Workpiece 5)
G58
-Y
W6
-Y
W5
-X
-X
(Workpiece 4)
G57
(Workpiece 3)
G56
-Y
W4
-Y
W3
-X
-X
75
W1
(Workpiece 2)
G55
(Workpiece 1)
G54
200mm
175
125
500mm
175
100mm
-Y
W2
-Y
-Y
125 200mm
75
50
50mm
100mm 0 M
500mm
14.10
-X
-X
900mm
The local coordinate systems can be set independently on the G54 through 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
(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 to G59).
(2) The local coordinate system offset will be cleared by the dog-type manual reference (zero)
point return or reference (zero) point return performed after the power has been switched on.
(3) The local coordinate system is canceled by (G54 to G59) G52X0 Y0 Z0 0 ;.
(4) Coordinate commands in the absolute value (G90) cause the tool to move to the local
coordinate system position.
(G91) G52X_Y_;
Incremental value
Ln
Local coordinate
systems
Absolute value
Ln
Absolute value
Ln
(G90)
G52X_Y_;
Wn(n=1 to 6)
Reference point
R
Work coordinate
system
(Note) If the machining program is executed many times repeatedly, the workpiece
coordinate system may deviate slightly per execution.
Command to execute reference point return at the program end.
300
(Example 1) Local coordinates for absolute value mode (The local coordinate system offset is not
cumulated)
(8)
(9)
2500
(1) G28X0Y0 ;
(2) G00G90X1. Y1. ;
2000
(3) G92X0Y0 ;
(4) G00X500Y500 ;
1500
(5) G52X1. Y1. ;
(6) G00X0Y0 ;
(7) G01X500F100 ; 1000
(8) Y500 ;
500
(9) G52X0Y0 ;
(10) G00X0Y0 ;
(1)
(6)
(3)
(2)
[W1]L1
(10)
[W1]
500
R#1
W1
(Note)
(5)
(4)
1000
(7)
Local coordinate
system created by (5).
1500
2000
2500
3000
Current position
(Example 2) Local coordinates for incremental value mode (The local coordinate system offset is
cumulated.)
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(A)
(B)
(C)
(D)
(E)
(F)
G28X0Y0 ;
G92X0Y0 ;
G91G52X500Y500 ;
M98P100 ;
G52X1. Y1. ;
M98P100 ;
G52X-1.5 Y1.5 ;
G00G90X0Y0 ;
M02 ;
O100 ;
G90G00X0Y0 ;
G01X500 ;
Y500 ;
G91 ;
M99 ;
Y"
Y'
Y
2500
2000
(D)
(B)
(6)
1500
(C)
[W1]L2
1000
500
(3)
(2)
(1)
X"
Local coordinate system
created by (5).
(D)
(B)
(4)
X'
Local coordinate system
created by (3).
(C)
[W1]L1
(8)
500
1000
1500
R#1
W1 Current position
2000
2500
3000
X
Matched
with local
coordinate system by (7).
(Explanation)
The local coordinate system X'Y' is created at the XY coordinate system (500,500) position by (3).
The local coordinate system X"Y" is created at the X'Y' coordinate system (1000,1000) position by (5).
The local coordinate system is created at the X"Y" coordinate system (-1500, -1500) position by (7).
In other words, the same occurs as when the local coordinate system and XY coordinate system are
matched and the local coordinate system is canceled.
301
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(A)
(B)
(C)
(D)
(E)
M02 ;
O200 ;
G00X0Y0 ;
G01X500F100 ;
Y500 ;
M99 ;
%
G54 G55
1000 1000
500 2000
Y 3000
2500
(D)
(B)
2000
G55
(C)
(5)
W2
1500
(D)
(B)
1000
(7) (C)
[W1] L1
(3)
(2)
500
W1
1
500
R#1
1000
1500
Current position
2000
2500
3000
(Explanation)
The local coordinate system is created at the G54 coordinate system (500,500)
position by (3), but the local coordinate system is not created for the G55 coordinate
system.
During the movement for (7), the axis moves to the G54 local coordinate system's
reference point (zero point).
The local coordinate system is canceled by G90G54G52X0Y0;.
302
(Example 4) Combination of workpiece coordinate system G54 and multiple local coordinate
systems
G28X0Y0 ;
G00G90G54X0Y0 ;
M98P300 ;
G52X1. Y1. ;
M98P300 ;
G52X2. Y2. ;
M98P300 ;
G52X0Y0 ;
(1)
(2)
(3)
(4)
(5)
(6)
(7)
(8)
M02 ;
(A) O300 ;
(B) G00X0Y0 ;
(C) G01X500F100 ;
(D) Y500 ;
(E) X0Y0 ;
(F) M99 ;
%
X
Y
G54
500
500
3000
(7)
2500
1500
[W1] L1
1000
(D)
500
(8)
(2)
(3)
G54
(E)
(C)
(B) W1
500
R#1
1000
1500
2000
2500
3000
Current position
(Explanation)
The local coordinate system is created at the G54 coordinate system (1000,1000)
position by (4).
The local coordinate system is created at the G54 coordinate system (2000,2000)
by (6).
The G54 coordinate system and local coordinate system are matched by (8).
303
These functions issue the command values from the measuring start position as far as the
measurement position, move the tool in the direction of the measurement position, stop the
machine once the tool has arrived at the sensor, cause the NC system to calculate automatically
the difference between the coordinate values at that time and the coordinate values of the
commanded measurement position and provide this difference as the tool offset amount.
When offset is already being applied to a tool, it moves the tool toward the measurement position
with the offset still applied, and if a further offset amount is generated as a result of the
measurement and calculation, it provides further compensation of the present offset amount.
If there is one type of offset amount at this time, and the offset amount is distinguished between
tool length offset amount and wear offset amount, the wear amount will be automatically
compensated.
Command format
G37Z__R__D__F__ ;
Z : Measuring axis address and coordinates of measurement position ..... X, Y, z, (where,
is the additional axis)
R : This commands the distance between the measurement position and point where the
movement is to start at the measuring speed.
D : This commands the range within which the tool is to stop.
F : This commands the measuring feedrate.
When R_, D_ of F_ is omitted, the value set in the parameter is used instead.
<Parameter> ("TLM" on machining parameter screen)
: 0 to 60000 (mm/min)
: 0 to 99999.999 (mm)
304
Example of execution
-100
-200
-300
R
D
-400
-Z
H01=0
Instrument
D
T01 ;
M06 T02 ;
G90 G00 G43 Z0 H01 ;
G37 Z-400 R200 D150 F1 ;
Coordinate value when measurement position is reached = -300
-300 - (-400) = 100
0+100 = 100 Where, H01 = 100
305
Detailed description
Measurement
allowable range
D(d)
D(d)
F(Fp)
Distance
Measuring
Operation 1
position
Stop point
Operation 2
Sensor
Operation 3
output
R(r)
Offset amount
Normal completion
Or no detection
(2) The sensor signal (measuring position arrival signal) is used in common with the skip signal.
(3) The feedrate will be 1mm/min if the F command and parameter measurement speed are 0.
(4) An updated offset amount is valid unless it is assigned from the following Z axis (measurement
axis) command of the G37 command.
(5) Excluding the corresponding values at the PLC side, the delay and fluctuations in the sensor
signal processing range from 0 to 0.2ms.
As a result, the measuring error shown below is caused.
1
0.2 (ms)
Maximum measuring error (mm) = Measuring speed (mm/min)
60
1000
(6) The machine position coordinates at that point in time are ready by sensor signal detection,
and the machine will overtravel and stop at a position equivalent to the servo droop.
Maximum overtravel (mm)
1
1
306
Precautions
(1) Program error (P600) results if G37 is commanded when the automatic tool length
measurement function is not provided.
(2) Program error (P604) results when no axis has been commanded in the G37 block or when
two or more axes have been commanded.
(3) Program error (P605) results when the H code is commanded in the G37 block.
(4) Program error (P606) results when G43_H is not commanded prior to the G37 block.
(5) Program error (P607) results when the sensor signal was input outside the allowable
measuring range or when the sensor signal was not detected even upon arrival at the end
point.
(6) When a manual interrupt is applied while the tool is moving at the measuring speed, a return
must be made to the position prior to the interrupt and then operation must be resumed.
(7) The data commanded in G37 or the parameter setting data must meet the following
conditions:
|Measurement point start point| > R command or parameter r
> D command or parameter d
(8) When the D command and parameter d in (7) above are zero, operation will be completed
normally only when the commanded measurement point and sensor signal detection point
coincide. Otherwise, program error (P607) will results.
(9) When the R and D commands as well as parameters r and d in (7) above are all zero, program
error (P607) will result regardless of whether the sensor signal is present or not after the tool
has been positioned at the commanded measurement point.
(10) The automatic tool length measurement command (G37) must be commanded together with
the G43H_ command that designates the offset No.
G43H_;
G37 Z_ R_ D_ F_;
307
Skip function
When the skip signal is input externally during linear interpolation based on the G31 command, the
machine feed is stopped immediately, the remaining distance is discarded and the command in the
following block is executed.
Command format
: Feedrate (mm/min)
Linear interpolation can be executed using this function. If the skip signal is input externally while
this command is being executed, the machine will stop, the remaining commands will be canceled
and operation will be executed from the next block.
Detailed description
(1)
If Ff is commanded as the feedrate in the same block as G31 command, commanded 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)
Normally, the machine will not automatically accelerate or decelerate with the G31 block.
However, setting the base specification parameter "#21101 add01/bit3" to "1" allows the
automatic acceleration/deceleration valid.
In such case, the acceleration/deceleration will apply following to the cutting feed
acceleration/deceleration pattern set with the axis specification parameter "#2003 smgst".
Since the deceleration at skip signal input follows the cutting feed acceleration/deceleration
pattern mentioned above, the coasting amount from the skip signal input to stop may be
larger than the normal specifications (when automatic acceleration/deceleration is invalid)
(3)
The stop condition (such as feed hold, stroke end) is also valid for the G31 block.
(4)
With the normal specifications, override and dry run are invalid during execution of G31 block.
However, setting the base specification parameter "#21101 add01/bit3" to "1" allows the
override and dry run.
(5)
(6)
If the skip signal is input during G31 command start, the G31 command will be completed
immediately.
When a skip signal has not been input until the G31 block completion, the G31 command will
also be completed upon completion of the movement commands.
(7)
When the G31 command is issued during nose R compensation, program error (P608) will
result.
(8)
When there is no F command in the G31 command and the parameter speed is also zero,
program error (P603) will result.
(9)
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.
308
Skip function
Execution of G31
G90 G00
G31
G01
G31
X-100000 Y0 ;
X-500000 F100 ;
Y-100000 ;
X0 F100 ;
Y-200000 ;
G31 X-50000 F100 ;
Y-300000 ;
X0 ;
G31
-500000
-10000 0 Y
W
G01
G31
-100000
G01
G31
-200000
G01
G01
-300000
The coordinate positions for which the skip signal is input are stored in the system variables #5061
(1st axis) to #506n (nth axis), so these can be used in the user macros.
#101 = #5061
Skip command
Skip signal input coordinate values (workpiece
coordinate system) are readout to #101.
309
Skip function
The amount of coasting from when the skip signal is input during the G31 command until the
machine stops differs according to the parameter "#1174 skip_F" or F command in G31.
The time to start deceleration to a stop after responding to the skip signal is short, so the machine
can be stopped precisely with a small coasting amount
F
F
F
F
0 = 60 Tp + 60 ( t1 t2 ) = 60 ( Tp + t1 ) 60 t2
0
F
Tp
t1
:
:
:
:
t2 :
2
1
Coasting amount (mm)
G31 skip speed (mm/min.)
Position loop time constant (s) = (position loop gain)1
Response delay time (s) = (time taken from the detection to the arrival of the skip
signal at the controller via PC)
Response error time (0.001 s)
When G31 is used for calculation, the value calculated from the section indicated by 1 in the
above equation can be compensated, however, 2 results in calculation error.
Skip signal input
Time (S)
t1 t2
Tp
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
t1 = 0.005
0.050
Max. value
Average
Min. value
0.040
0.030
0.020
0.010
10
20
30
40
50
Feedrate F (mm/min)
60
70
(Note) When the base specification parameter "#21101 add01/bit3" is set to "1", the automatic
acceleration/deceleration becomes valid for the deceleration at skip signal input.
Thus, the coasting amount from the skip signal input to stop may be larger than when the
automatic acceleration/deceleration is invalid.
310
Skip function
F
60
t2
+1
0
60 Feedrate (mm/min)
-1
Measurement value comes
within shaded section.
60
60
311
Skip function
Skip command
Machine stop check
Skip signal input coordinate readout
Coasting based on response delay time
Skip signal input coordinates
Skip command
Machine stop check
Skip signal input coordinate readout
Coasting based on response delay time
Coasting based on position loop time constant
Skip signal input coordinates
312
The setting of combinations of skip signals to be input enables skipping under various conditions.
The actual skip operation is the same as with G31.
The G commands which can specify skipping are G31.1, G31.2, G31.3, and G04, and the
correspondence between the G commands and skip signals can be set by parameters.
Command format
G31.1 Xx Yy Zz Ff ;
Xx Yy Zz
Ff
Detailed description
(1) Feedrate G31.1 set with the parameter corresponds to "#1176 skip1f", G31.2 corresponds to
"#1178 skip2f", and G31.3 corresponds to "#1180 skip3f".
(2) A command is skipped if it meets the specified skip signal condition.
(3) The G31.n and G04 commands work the same as the G31 command for other than (1) and (2)
above.
(4) The feedrates corresponding to the G31.1, G31.2, and G31.3 commands can be set by
parameters.
(5) The skip conditions (logical sum of skip signals which have been set) corresponding to the
G31.1, G31.2, G31.3 and G04 commands can be set by parameters.
Parameter setting
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
313
Example of operation
(1) The multi-step skip function enables the following control, thereby improving measurement
accuracy and shortening the time required for measurement.
Parameter settings :
Skip condition Skip speed
G31.1
:7
20.0mm/min (f1)
G31.2
:3
5.0mm/min (f2)
G31.3
:1
1.0mm/min (f3)
Program example :
N10G31.1 X200.0 ;
N20G31.2 X40.0 ;
N30G31.3 X1.0 ;
f
Operation
(f1)
N10
Measurement
distance
Skip speed
(f2)
N20
(f3)
N30
t
(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.
314
X1
Part system 1
Part system 1
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 4, is met.
If multi-step skip commands are issued simultaneously in different part systems, both part systems
perform skip operation simultaneously if the input skip signals are the same, or they perform skip
operation separately if the input skip signals are different. The skip operation is the same as with a
normal skip command (G31 without P parameter).
Skip signal 1
X1
Skip signal 1
Skip signal 1
Part system 2
Part system 2
Z
Z
Skip signal 2
X2
Same skip signals input in both part systems 1
Different skip signals input in part systems 1
and 2
and 2
X2
If the skip condition specified by the parameter "#1173 dwlskp" (indicating external skip signals 1 to
4) is met during execution of a dwell command (G04), the remaining dwell time is canceled and the
following block is executed. Similarly, if the skip condition is met during revolution dwelling, the
remaining revolution is canceled and the following block is executed.
Command format
G31 Xx Zz Pp Ff ;
: Command format axis coordinate word and target coordinates
Xx Zz
Pp
: Skip signal parameter
Ff
: Feedrate (mm/min)
315
Detailed description
(1) The skip is specified by command speed f. Note that the F modal is not updated.
(2) The skip signal is specified by skip signal parameter p. p can range from 1 to 15. If p is
specified outside the range, program error (P35) occurs.
Skip signal
command P
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
The specified skip signal command is a logical sum of the skip signals.
(Example)
G31 X100. P5 F100 ;
Operation is skipped if skip signal 1 or 3 is input.
316
(4) If skip signal parameter Pp is not specified, the skip condition specified by the G31 parameter
works. If speed parameter Ff is not specified, the skip speed specified by the G31 parameter
works.
Relations between skip and multi-step skip
Skip specifications
x
Condition
o
Speed
condition
Speed
G31 X100 ;
Without P and F
Skip 1
Parameter
G31 X100 P5 ;
Without F
Command
value
Parameter
Skip 1
Command
value
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 parameter P
is given priority and axis address P is ignored.
(Example)
G31 P500. F100 ;
This is regarded as a skip signal parameter and program error (P35)
results.
(6) Those items other than (1) to (5) are the same with the ordinary skip function (G31 without P).
317
Appendix 1.
Details
N No.
Data
type
Setting range
(Unit)
#8201
896
Bit
Same as above
#8202
897
Bit
d0 : No. d bit
OFF
or
d1 : No. d bit ON
(d : 0 ~ 7)
#8204
Soft limit ()
(User stroke end lower
limit)
916
#8205
912
#8206
Tool change
924
318
Remarks
bit0 :
bit1 :
bit2 :
bit3 :
bit4 :
bit5 :
bit6 : Axis
removal
bit7 :
bit0 :
bit1 :
bit2 : Soft limit
invalid
bit3 :
bit4 :
bit5 :
bit6 :
bit7 :
Appendix 1.
Details
N No.
Data
type
Setting range
(Unit)
Remarks
#2013
OT-
292
#2014
OT+
288
#2015
tlml-
300
#2016
tlml+
296
#2017
tap_g
58
#2025
G28rap
260
#2026
G28crp
#2027
(rad/s)
2-word 1 ~ 999999
(min)
38
Word 1 ~ 60000
(min)
G28sft
44
Word 0 ~ 65535
(m)
#2029
grspc
42
(mm)
#2028
grmask
40
Word 0 ~ 65535
(m)
#2030
dir(-)
20
Bit2
0~1
#2031
noref
21
Bit2
0~1
#2032
nochk
54
Bit0
0~1
#2037
G53ofs
272
#2038
#2_rfp
276
#2039
#3_rfp
280
#2040
#4_rfp
284
#2061
OT-1B-
324
#2062
OT-1B+
320
319
Appendix 1.
Details
PLC constant
N No.
1~
48
Data
type
Setting range
(Unit)
Remarks
N No.
corresponds to
the constant
No. (# No.) on
the PLC
constant
screen.
2-word 0 ~ 99999999
Details
N No.
Data
type
Setting range
(Unit)
#6000
~
#6015
0~
15
Word 0 ~ 32767
0.01 s
#6016
~
#6095
16 ~
95
Word 0 ~ 32767
0.1 s
#6096
~
#6103
96 ~
103
Word 0 ~ 32767
0.1 s
Remarks
Each N No.
corresponds to
the # No. on the
PLC timer
screen.
Details
Counter (C0 ~ C23)
N No.
0~
23
Data
type
Setting range
(Unit)
Remarks
N No.
corresponds to
the # No. on the
PLC counter
screen.
Word 0 ~ 32767
Details
Bit selection
parameter
N No.
0~
96
Data
type
Setting range
Word 8-digit
designation
(Reading
abbreviation not
possible)
Each bit 0 or 1
d0 : No. d bit
OFF or
d1 : No. d bit ON
(d : 0 ~ 7)
320
(Unit)
Remarks
N No.
corresponds to
the # No. on the
bit selection
screen.
N Nos. 49 to 96
are used by the
machine maker
and Mitsubishi.
These must not
be used by the
user.
Appendix 1.
Details
N No.
Data
type
Setting range
(Unit)
#8004
844
2-word 1 ~ 60000
#8005
836
#8006
840
#8008
Automatic corner
override max. angle
756
2-word 0 ~ 180
Degree ()
#8009
Automatic corner
override precorner
length
760
2-word 0 ~ 99999999
Interpolation Machining
unit
parameter
#8010
776
2-word 0 ~ 99999
Interpolation Machining
unit
parameter
#8011
780
2-word 0 ~ 99999
Interpolation Machining
unit
parameter
#8013
832
#8014
1011
Byte
0 ~ 89
Degree ()
Machining
parameter
#8015
1012
Byte
1 ~ 127
0.1 lead
Machining
parameter
#8016
788
2-word 0 ~ 99999 2
Interpolation Machining
unit
parameter
#8017
792
2-word 0 ~ 99999 2
Interpolation Machining
unit
parameter
#8301 X
#8302 X
#8303 X
#8304 X
#8305 X
#8306 X
#8301 Z
#8302 Z
#8303 Z
#8304 Z
321
(mm/min)
Remarks
Machining
parameter
Machining
parameter
Appendix 1.
Details
N No.
Data
type
Setting range
(Unit)
Remarks
#8305 Z
#8306 Z
322
Appendix 2.
Program Error
Details
P10
P11
P20
DIVISN ERROR
An axis command which cannot be divided
by the command unit has been issued.
P30
PARITY H
The number of holes per character on the
paper tape is an even number for EIA
codes and an odd number for ISO codes.
P31
PARITY V
The number of characters per block on the
paper tape is odd.
P32
ADDRESS ERROR
An address not listed in the specifications
has been used.
P33
FORMAT ERROR
The command format in the program is not
correct.
P34
G-CODE ERROR
A G code not listed in the specifications has
been used.
P35
CMD-VALUE OVER
The setting range for the addresses has
been exceeded.
P36
P37
P39
NO SPEC ERR
Remedy
323
Appendix 2.
Program Error
Error No.
Details
Remedy
P60
P62
F-CMD NOTHING
No feedrate command has been issued.
P70
ARC ERROR
There is an error in the arc start and end
points as well as in the arc center.
P71
ARC CENTER
The arc center is not sought during
R-specified circular interpolation.
P72
NO HELICAL SPC
A helical command has been issued though
it is not included in the specifications.
P90
NO THREAD SPEC
A thread cutting command has been issued
though it is not included in the
specifications.
P93
P111
P113
ILLEGAL PLANE
The arc command axis is not on the
selected plane.
324
Appendix 2.
Error No.
Program Error
Details
Remedy
P122
NO AUTO C-OVER
An automatic corner override command
(G62) has been issued though it is not
included in the specifications.
P130
P131
NO G96 SPEC
(No constant surface speed)
The constant surface speed command (G96)
was issued despite the fact that such a
command does not exist in the specifications.
P132
SPINDLE S = 0
No spindle speed command has been input.
P133
P150
NO C-CMP SPEC
A tool radius compensation command
(G41, G42) has been issued though there
are no tool radius compensation
specifications.
A nose R compensation command (G41,
G42 G46) has been issued though there
are no nose R compensation
specifications.
P151
P152
I.S.P. NOTHING
In interference block processing during
execution of a tool radius compensation
(G41 or G42) or nose radius compensation
(G41, G42, or G46) command, the
intersection point after one block is skipped
cannot be determined.
P153
I.F ERROR
An interference error has arisen while the tool
radius compensation command (G41, G42)
or nose radius compensation command
(G41, G42, G46) was being executed.
P155
P156
BOUND DIRECT
At the start of G46 nose radius
compensation, the compensation direction
is undefined if this shift vector is used.
325
Appendix 2.
Program Error
Error No.
Details
Remedy
P157
SIDE REVERSED
During G46 nose radius compensation, the
compensation direction is inverted.
P158
ILLEGAL TIP P
During G46 nose radius compensation, the
tip point is illegal (other than 1 to 8).
P170
NO CORR. NO.
The compensation number (D
,T
,
) command was not given when the
H
tool radius compensation (G41, G42, G43,
G46) command was issued. Alternatively,
the compensation number is larger than the
number of sets in the specifications.
P172
P173
P177
COUNTING LIFE
Registration of tool life management data
with G10 was attempted when the used
data count valid signal was ON.
P178
P179
326
System
No. of groups
No. of tools
Per group
System 1
80
80
System 2
40/40
40/40
16
Appendix 2.
Program Error
Error No.
Details
P180
NO BORING CYC.
A fixed cycle command was issued though
there are not fixed cycle (G72 ~ G89)
specifications.
P181
NO S-CMD (TAP)
The spindle speed command has not been
issued when the tapping fixed cycle
command is given.
P182
P183
PTC/THD, NO.
The pitch or thread number command has
not been issued in the tap cycle of a boring
fixed cycle command.
P184
NO PTC/THD CND
The pitch or the number of threads per inch
is illegal in the tap cycle of the drilling fixed
cycle command
P190
NO CUTTING CYC
A lathe cutting cycle command was input
although the lathe cutting cycle was
undefined in the specification.
P191
P192
CHAMFERING ERR
Chamfering in the thread cutting cycle is
illegal.
P200
P201
P202
Remedy
327
Appendix 2.
Program Error
Error No.
Details
Remedy
P203
P204
C-FORMAT ERR
A command value of the compound type
fixed cycle (G70 to G76) is illegal.
P210
P220
NO SPECIAL CYC
No special fixed cycle specifications are
available.
P221
NO HOLE (S-CYC)
A 0 has been specified for the number of
holes in special fixed cycle mode.
P222
P223
P224
P230
NESTING OVER
A subprogram has been called 8 or more
times in succession from the subprogram.
P231
NO N-NUMBER
At subprogram call time, the sequence
number set at return from the subprogram
or specified by GOTO, was not set.
P232
NO PROGRAM NO.
The subprogram has not been set when the
subprogram is called.
P241
NO VARI NUMBER
The variable number commanded is higher
than the numbers in the specifications.
P242
P243
VARIABLE ERR
An invalid variable has been specified in the
left or right side of an operation expression.
P260
NO COOD-RT SPC
328
Appendix 2.
Error No.
Program Error
Details
Remedy
P270
NO MACRO SPEC
A macro specification was commanded
though there are no such command
specifications.
P271
NO MACRO INT.
A macro interrupt command has been issued
though it is not included in the specifications.
P272
NC/MACRO ILL.
An NC statement and a macro statement
exist together in the same block.
P273
MACRO OVERCALL
The frequency of the macro call has
exceeded the limit imposed by the
specification.
P275
P276
CALL CANCEL
A G67 command was issued though it was
not during the G66 command modal.
P277
P280
EXC [ , ]
The number of parentheses [ , ] which can
be commanded in a single block has
exceeded five.
P281
[ , ] ILLEGAL
The number of " [" and " ] " parentheses
commanded in a single block does not
match.
P282
CALC. IMPOSS
The arithmetic formula is incorrect.
P283
DIVIDE BY ZERO
The denominator of the division is zero.
P284
INTEGER OVER
In the process of the calculation the
integral number has exceeded 231
(2311).
OVERFLOW VALUE
The variable data has overflowed.
P290
IF SNT. ERR
There is an error in the IF conditional
GOTO statement.
P291
P285
329
Appendix 2.
Program Error
Error No.
Details
Remedy
P292
P293
DO-END EXCESS
The number of s for DO-END in the
WHILE conditional DO-END statement
has exceeded 27.
P294
DO-END MMC.
The DOs and ENDs are not paired off
properly.
P295
WHILE/GOTO TPE
There is a WHILE or GOTO statement on
the tape during tape operation.
P296
NO MACRO ADDR.
A required address has not been specified
in the user macro.
P297
ADR-A ERR
The user macro does not use address A as
a variable.
P298
PTR OP (MACRO)
User macro G200, G201, or G202 was
specified during tape or MDI operation.
P300
P301
P360
NO PROG. MIRR
A mirror image (G50.1 or G51.1) command
has been issued though the programmable
mirror image specifications are not
provided.
P380
NO CORNER R/C
A command was issued for corner rounding
or corner chamfering though there are no
such specifications.
P381
P382
CORNER NO MOVE
The block next to corner rounding/
chamfering is not a movement command.
330
Appendix 2.
Program Error
Error No.
Details
Remedy
P383
CORNER SHORT
In the corner rounding or chamfering
command, the movement distance was
shorter than the value in the corresponding
command.
P384
CORNER SHORT
When the corner rounding or chamfering
command was input, the movement
distance in the following block was shorter
than the length of the corner rounding or
chamfering.
P385
G0 G33 IN CORN
A block with corner rounding/chamfering
was given during G00 or G33 modal.
P390
NO GEOMETRIC
A geometric command was issued though
there are no geometric specifications.
P391
NO GEOMETRIC 2
There are no geometric IB specification.
P392
P393
P394
NO G01 (GEOMT)
The second geometric block contains no
linear command.
P395
NO ADRS (GEOMT)
The geometric format is invalid.
P396
PL CHG. (GEOMT)
A plane switching command was executed
during geometric command processing.
P397
P398
NO GEOMT IB
Although the geometric IB specifications
are not included, a geometric command is
given.
NO PARAM
Although the programmable parameter
input specifications are not provided, the
command was given.
P420
331
Appendix 2.
Program Error
Error No.
Details
P421
PRAM IN ERROR
The specified parameter number or set
data is illegal.
An illegal G command address was input
in parameter input mode.
A parameter input command was input
during fixed-cycle modal or nose R
compensation.
P430
Remedy
NO 2ND REF.
A command for second, third or fourth
reference point return was issued though
there are no such command specifications.
P434
COLLATION ERR
One of the axes did not return to the start
position when the origin point collate
command (G27) was executed.
P435
G27/M ERROR
An M command was issued simultaneously
in the G27 command block.
P436
G29/M ERROR
An M command was issued simultaneously
in the G29 command block.
P450
NO CHUCK BARR.
The chuck barrier on command (G22) was
specified although the chuck barrier was
undefined in the specification.
P460
P461
FILEI/O ERROR
A file of the machining program cannot be
read.
P600
NO AUTO TLM
An automatic tool length measurement
command (G37) was executed though
there are no such command specifications.
P601
NO SKIP SPEC
A skip command (G31) was issued though
there are no such command specifications.
332
Appendix 2.
Error No.
Program Error
Details
Remedy
P602
NOMULTI SKIP
A multiple skipping command (G31.1,
G31.2 or G31.3) was issued though there
are no such command specifications.
P603
SKIP SPEED F0
The skip speed is 0.
P604
P605
T-CMD IN BLOCK
The T code is in the same block as the
automatic tool length measurement block.
P606
NO T-CMD BEFOR
The T code was not yet specified in
automatic tool length measurement.
P607
P608
P610
P701
P990
PRE-CALCULATION ERROR
combining commands that required
pre-reading (nose R offset, corner
chamfering corner R, geometric I,
geometric IB, and compound type fixed
cycle commands) resulted in eight or more
pre-read blocks.
333
Appendix 3.
01
02
03
05
06
07
G00 ~ G03
G17 ~ G19
G90, G91
G94, G95
G20, G21
G40 ~ G42
G code
Positioning/
interpolation
G04
Dwell
Group 1
modal is
updated
G49
G command
commanded
last is valid.
G00~G03.1
08
G43, G44,
Also possible
during arc
modal
Group 1
modal is
updated
Radius is
compensated, and
then moves
The G49
movement in
the arc modal
moves with
G01
G04 is
executed
G04 is
executed
G04 is
executed
G09
Exact stop
check
G10, G11
Program data
setting
G17 ~ G19
G command
commanded
last is valid.
Plane axis
changeover
during radius
compensation causes
error P112
Plane selection
334
Appendix 3.
G code
Commanded
01
02
03
05
06
07
G00 ~ G03
G17 ~ G19
G90, G91
G94, G95
G20, G21
G40 ~ G42
G code
G49
Possible in
same block
G20, G21
Inch/metric
changeover
G27 ~ G30
08
G43, G44,
G00~G03.1
modals are
updated
Reference point
compare/ return G27~G30 are
executed
G31 ~ G31.3
Error:P608
Skip
Error:P608
G command
G33
commanded
Thread cutting last is valid.
G37
Automatic tool
length
measurement
G40 ~ G42
Tool radius
compensation
G37 is
executed
G37 is
executed
G00~G33 are
ignored
G command
commanded
last is valid.
Plane axis
changeover
during radius
compensation causes
error P112
335
G37 is
executed
Appendix 3.
G code
Commanded
09
10
12
13
14
17
G73 ~ G89
G98, G99
G54 ~ G59
G61 ~ G64
G66 ~ G67
G96, G97
G code
Group 1
command is
executed
G00~G03.1
G66 ~ G67
are executed
G00~G03.1
modals are
updated
Group 9 is
canceled
Positioning/
interpolation
19
G50.1
G51.1
G04 is
executed
G04
Dwell
G73~G89 are
ignored
G04 is
executed
G04 is
executed
G50.1 and
G51.1 are
ignored
Group 12 is
changed
G09
Exact stop
check
G10, G11 are
executed
G10, G11
Program data
setting
G73~G89 are
ignored
G10 is
executed
G54~G59
modals are
updated
G17 ~ G19
Plane selection
336
G66 ~ G67
are executed
G10 is
ignored
G50.1 and
G51.1 are
ignored
Appendix 3.
G code
Commanded
09
10
12
13
14
17
G73 ~ G89
G98, G99
G54 ~ G59
G61 ~ G64
G66 ~ G67
G96, G97
G code
19
G50.1
G51.1
G20, G21
Inch/metric
changeover
G27 ~ G30
Reference point
compare/ return
G66 ~ G67
are executed
G27~G30 are
executed
G27~G30 are
ignored
G50.1 and
G51.1 are
ignored
G31 ~ G31.3
Skip
Group 1
command is
executed
G66 ~ G67
are executed
G33
Thread cutting Group 9 is
canceled
G33 modals is
updated
G37
Automatic tool
length
measurement
G40 ~ G42
Error:P155
Tool radius
compensation
Error:P155
337
G66 ~ G67
are executed
G37 is
executed
G37 modals is
ignored
G50.1 and
G51.1 are
ignored
Appendix 3.
G code
Commanded
G code
01
G00~G03.1
G33
02
03
05
06
07
G17 ~ G19
G90, G91
G94, G95
G20, G21
G40 ~ G42
08
G43, G44,
G49
G command
commanded
last is valid.
G50.1
G51.1
Program mirror
image
G52 is
executed
G52
Local
coordinate
system
G52 is
executed
G53
Machine
coordinate
system
G53 is
executed
G54 ~ G59
Workpiece
coordinate
system
G61 ~ G64
Mode selection
G65
Macro call
G65 is
executed
G65 is
executed
G00~G03.1
modals are
updated
G43~G49
modals are
updated
338
Appendix 3.
G code
Commanded
G code
01
G00~G03.1
G33
02
03
05
06
07
G17, G19
G90, G92
G94, G95
G20, G21
G40 ~ G42
G66 ~ G67
are executed
G66 ~ G67
Macro call
G43~G49
modals are
updated
Error:P155
Canned cycle
during
compensa-tio
n
Error:P155
Absolute value/
incremental
value
G49
G66 ~ G67
are executed
G00~G03.1
modals are
updated
G73~G89 are
canceled
G90, G91
08
G43, G44
Use in same
block
G92
Coordinate
system setting
G command
commanded
last is valid.
G94, G95
Synchronous/
asynchronous
G96, G97
Constant
surface speed
control
G98, G99
Initial point/ R
point return
339
Appendix 3.
G code
Commanded
09
10
12
13
14
17
G73 ~ G89
G98, G99
G54 ~ G59
G61 ~ G65
G66 ~ G67
G96, G97
G code
G43~G49
modals are
updated
G50.1
G66 ~ G67
are executed
G51.1
G50.1
G52 is
executed
G52 is
executed
G73~G89 are
ignored
G50.1
G51.1 is
ignored
G53 is
executed
G53
G50.1
Machine
coordinate
system
G51.1 is
invalid
G command
commanded
last is valid.
G54 ~ G59
Workpiece
coordinate
system
G66 ~ G67
are executed
G54~G59
modals are
updated
G command
commanded
last is valid.
G61 ~ G64
Mode selection
Error
G65 is
executed
G65
Macro call
G command
commanded
last is valid.
G51.1 is
ignored
Program mirror
image
G52
G51.1
G66 ~ G67
are executed
Length
compensation
Local
coordinate
system
19
G50.1
G65 is
executed
G50.1
G73~G89 are
ignored
G51.1 is
ignored
340
Appendix 3.
G code
Commanded
09
10
12
13
14
17
G73 ~ G89
G98, G99
G54 ~ G59
G61 ~ G67
G66 ~ G67
G96, G97
G code
G66 ~ G67
are executed
G66 ~ G67
are executed
Macro call
G73~G89 are
ignored
G54~G59
modals are
updated
G73 ~ G89
G command
commanded
last is valid.
G66 ~ G67
G command
commanded
last is valid.
19
G50.1
G51.1
G66 ~ G67
are executed
G50.1
G51.1 is
ignored
G66 ~ G67
are executed
All axes
become
mirror center
G73~G89 are
ignored
Canned cycle
G90, G91
Absolute value/
incremental
value
G92
G92 is
executed
G73~G89 are
Coordinate
system setting ignored
G94, G95
Synchronous/
asynchronous
G command
commanded
last is valid.
G96, G97
Constant
surface speed
control
G98, G99
Initial point/R
point return
G command
commanded
last is valid.
341
Revision history
Date of revision
December 2000
May 2004
Manual No.
Revision details
Notice
Every effort has been made to keep up with software and hardware revisions
in the contents described in this manual. However, please understand that in
some unavoidable cases simultaneous revision is not possible.
Please contact your Mitsubishi Electric dealer with any questions or comments
regarding the use of this product.
Duplication Prohibited
This instruction manual may not be reproduced in any form, in part or in
whole, without written permission from Mitsubishi Electric Corporation.
2000-2004
HEAD OFFICE : MITSUBISHI DENKI BLDG., 2-2-3, MARUNOUCHI, CHIYODA-KU, TOKYO 100-8310, JAPAN
MODEL
MC6/C64/C64T(M/T)
MODEL
CODE
008-047
Manual No.
BNP-B2260BENG)
Specifications subject to change without notice.
(0405) MEE