# embedding_metadata

key: chroma:document
string_value:
Cylindrical interpolation cannot be specified when the index table indexing function is being used.
T
- Coordinate system setting
In the cylindrical interpolation mode, a workpiece coordinate system G50 cannot be specified.
- Mirror image for double turret
Mirror image for double turret, G68 and G69, cannot be specified during cylindrical interpolation mode.


key: chroma:document
string_value:
4. INTERPOLATION FUNCTIONS PROGRAMMING B-64694EN/01
- 62 -
Example
M
C
0 150 190 230
mm
Z
deg
110
90
70
120
30 60 70 270
N05
N06
N07
N08 N09 N10
N11
N12 N13
360
60
Z
C : Axis parallel
with the X axis
R
Example of a Cylindrical Interpolation (M series)
O0001 (CYLINDRICAL INTERPOLATION );
N01 G00 G90 Z100.0 C0 ;
N02 G01 G91 G18 Z0 C0 ;
N03 G07.1 C57299 ;*
N04 G90 G01 G41 Z120.0 D01 F250. ;
N05 C30.0 ;
N06 G03 Z90.0 C60.0 R30.0 ;
N07 G01 Z70.0 ;
N08 G02 Z60.0 C70.0 R10.0 ;


key: chroma:document
string_value:
N08 G02 Z60.0 C70.0 R10.0 ;
N09 G01 C150.0 ;
N10 G02 Z70.0 C190.0 R75.0 ;
N11 G01 Z110.0 C230.0 ;
N12 G03 Z120.0 C270.0 R75.0 ;
N13 G01 C360.0 ;
N14 G40 Z100.0 ;
N15 G07.1 C0 ;
N16 M30 ;
(* A command with a decimal point can also be used.)
4.7.2 Cylindrical Interpolation by Plane Distance Command
Overview
In the conventional rotary axis command in cylindrical interpolation, the angle of the rotary axis is 
specified.


key: chroma:document
string_value:
specified. 
This function enables the rotary axis command in cylindrical interpolation to be specified by distance on 
the developed plane by setting parameters. 
Format
G07.1 IP r; Starts the cylindrical interpolation mode (enables cylindrical interpolation).
:
G07.1 IP 0; The cylindrical interpolation mode is cancelled.
IP : One of address for the rotary axis
r : The radius of the workpiece
Specify G07.1 IPr; and G07.1 IP0; in separate blocks.
G107 can be used instead of G07.1.


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 4. INTERPOLATION FUNCTIONS
- 63 -
NOTE
Only a positive value is effective as the radius of the workpiece. If a negative 
value is specified, alarm PS0175, "ILLEGAL G07.1 AXIS", is issued.
Explanation
By using bit 2 (DTO) of parameter No. 3454, it is possible to switch the rotation axis command during
cylindrical interpolation between the angle of the rotation axis and the distance on the developed plane.


key: chroma:document
string_value:
• In the case of the angle of the rotation axis (When bit 2 (DTO) of parameter No. 3454 is set to 0)
The rotation axis command in cylindrical interpolation mode is executed with the angle of the 
rotation axis. From the program, specify the angle of the rotation axis that corresponds to the 
specified point on the developed plane.
The rotation axis command uses the angle of the rotation axis [deg].
• In the case of the distance on the developed plane (When bit 2 (DTO) of parameter No. 3454 is set to


key: chroma:document
string_value:
1)
The rotation axis command in cylindrical interpolation is executed with the distance on the 
developed plane. The rotation axis command uses the distance on the developed plane and, therefore, 
the command unit varies depending on which of inch or metric input to use.
Note
NOTE
For details of the operation of cylindrical interpolation, as well as limitations, see 
Subsection, "Cylindrical Interpolation" in OPERATOR’S MANUAL (Common to 
Lathe System/Machining Center System) (B-64694EN).


key: chroma:document
string_value:
Rotation axis command
Specify with the 
distance on the 
developed plane.
Specify with the 
angle of the 
rotation axis.


key: chroma:document
string_value:
4. INTERPOLATION FUNCTIONS PROGRAMMING B-64694EN/01
- 64 -
4.7.3 Cutting Point Interpolation for Cylindrical Interpolation
The conventional cylindrical interpolation function controls the tool center so that the tool axis always 
moves along a specified path on the cylindrical surface, towards the rotary axis (cylindrical axis) of the 
workpiece. The cutting point interpolation for cylindrical interpolation function controls the tool so that


key: chroma:document
string_value:
the tangent of the tool and the cutting surface of a contour always passes the rotation center of the 
workpiece. This means that the cutting surface of the contour is always perpendicular to the cylinder. 
With this function, the figure on the cutting surface can always be kept constant regardless of the tool 
radius compensation value of the tool used.
Format
This command is specified in the same way as for the conventional cylindrical 
interpolation function.


key: chroma:document
string_value:
interpolation function.
G07.1 IPr ; Circular interpolation mode on start (enabling cylindrical interpolation)
:
G07.1 IP0 ; Circular interpolation mode cancel
IP : One rotary axis address
r : Cylinder radius of rotary axis
Specify each of G07.1 IPr; and G07.1 IP0; singly in a block.
G107 can also be specified instead of G07.1.
NOTE
Only a positive value is effective as the radius of the workpiece. If a negative 
value is specified, alarm PS0175, "ILLEGAL G07.1 AXIS", is issued.
Explanation


key: chroma:document
string_value:
Explanation
- Comparison with conventional circular interpolation
As shown in Fig. 4.7.3 (a), the tool is controlled in the offset axis (Y-axis) direction that is perpendicular 
to the tool center and workpiece rotation center.
Fig. 4.7.3 (a) Comparison with conventional circular interpolation


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 4. INTERPOLATION FUNCTIONS
- 65 -
- Cutting point compensation
(1) Cutting point compensation between blocks
As shown in Fig. 4.7.3 (b), cutting point compensation is achieved by moving between blocks N1 
and N2.
(a) Let C1 and C2 be the heads of the vectors normal to N1 and N2 from S1, which is the 
intersection of the tool center paths of blocks N1 and N2
(b) After the tool moves to S1 according to the command of N1, the tool moves through V on the


key: chroma:document
string_value:
C-axis as a result of cutting point compensation, then through r
180 − V × ×
π
along the Y-axis.
Z-axis
C-axis on the 
cylindrical surface Y-axis
S1
C1
C2
N1
V N2
Tool center path
Programmed path
V : C-axis component of C1 - C2
C1 : Cutting surface of block N1
C2 : Cutting surface of block N2
Fig. 4.7.3 (b) Cutting point compensation between blocks
(2) Cutting point compensation in a circular command block


key: chroma:document
string_value:
As shown in Fig.4.7.3 (c), the movement required for cutting point compensation is made 
simultaneously with circular interpolation in block N1.
(a) Let C0 be the head of the vector normal to N1 from S0, which is the tool center position at the 
start point of circular block N1. Let C1 be the head of the similar vector at the end point.
(b) As the tool moves from S0 to S1, a superimposed movement is made by the C-axis component


key: chroma:document
string_value:
of (C1 - C0) (V in the figure) on the C-axis, and a superimposed movement is made by 
r
180 − V × ×
π
along the Y-axis. along the Y-axis. 
That is, the following expressions are valid. As movement is made through L as shown in 
Fig.4.7.3 (c), the superimposed movements are made on the C-axis and Y-axis as follows:
∆C = ∆V
Y ( V)r
180
∆ = − ∆ π
∆V : Cutting point compensation value (∆V2 - ∆V1) for movement of ∆L


key: chroma:document
string_value:
∆V1 :C-axis component of the vector normal to N1 from the tool center of the start point of ∆L
∆V2 :C-axis component of the vector normal to N1 from the tool center of the end point of ∆L
R : Arc radius


key: chroma:document
string_value:
4. INTERPOLATION FUNCTIONS PROGRAMMING B-64694EN/01
- 66 -
Z-axis
C-axis on the 
cylindrical surface
Y-axis
C0
N1
O
C1
V
Tool center path
Programmed path
V : C-axis component of C1 - C0
C0 : Cutting surface at the start point of block N1
C1 : Cutting surface at the end point of block N1
R
S0
∆V2
∆V1
∆L
C0
S1
Fig.4.7.3 (c) Cutting point compensation in a circular command block
(3) When cutting point compensation is not applied between blocks


key: chroma:document
string_value:
When, as shown in Fig.4.7.3 (d) and Fig.4.7.3 (e), the cutting point compensation value between 
blocks N1 and N2 (V in the Fig.4.7.3 (d) and Fig.4.7.3 (e)) is less than the value set in parameter No. 
19534, one of the operations below is performed. (The operation that is performed depends on the 
setting of bit 6 (CYS) of parameter No. 19530.
(a) When bit 6 (CYS) of parameter No.19530 is set to 1
Cutting point compensation is not applied between blocks N1 and N2, but is applied when


key: chroma:document
string_value:
block N2 is executed.
Z-axis
C-axis on the
cylindrical surface Y-axis
S2
C2
C2
V
Tool center path
Programmed path
V : C-axis component of C2 - C1
C1 : Cutting surface of block N1
C2 : Cutting surface after the end of block N1
S1
C1
N1
N2
N3
Fig.4.7.3 (d) When bit 6 (CYS) of parameter No. 19530 is set to 1


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 4. INTERPOLATION FUNCTIONS
- 67 -
(b) When bit 6 (CYS) of parameter No. 19530 is set to 0
Cutting point compensation is not performed between blocks N1 and N2. Whether to apply 
cutting point compensation between block N2 and N3 is determined by taking the cutting point 
compensation value between blocks N2 and N3 (V in the Fig.4.7.3 (e)) into consideration.
Z-axis
C-axis on the
cylindrical surface Y-axis
S2
C1
C2
V Tool center path
Programmed path


key: chroma:document
string_value:
Programmed path
V : C-axis component of C2 - C1
C1 : Cutting surface of blocks N1 and N2
C2 : Cutting surface at the end of block N3
S1
C1
N1
N2
N3
Fig.4.7.3 (e) When bit 6 (CYS) of parameter No. 19530 is 0
(c) When the amount of travel (L1) of block N2 is less than the value set in parameter No. 19535, 
as shown in Fig.4.7.3 (f), cutting point compensation is not applied between blocks N1 and N2. 
Instead, block N2 is executed with the cutting point compensation of the previous block. When


key: chroma:document
string_value:
the amount of travel (L2) of block N3 is greater than the value set in parameter No. 19535, 
cutting point compensation is applied between blocks N2 and N3.
Z-axis
C-axis on the 
cylindrical surface Y-axis
C1 C2
V
Tool center path
Programmed path
V : C-axis component of C2 - C1
C1 : Cutting surface of blocks N1 and N2
C2 : Cutting surface at the end of block N3
C1
N1
N2
N3
L1
L2
Fig.4.7.3 (f) When the amount of travel (L1) of block N2 is less than the parameter value


key: chroma:document
string_value:
4. INTERPOLATION FUNCTIONS PROGRAMMING B-64694EN/01
- 68 -
(d) When, as shown in Fig.4.7.3 (g), the diameter of an arc (R in the figure) is less than the value 
set in parameter No. 19535, cutting point compensation is not applied simultaneously with 
circular interpolation
Z-axis
C-axis on the 
cylindrical surface Y-axis
C1
C2
V
Tool center path
Programmed path
V : Cutting point compensation between blocks N2 and N3
C1 : Cutting surface of blocks N1 and N2
C2 : Cutting surface of block N3


key: chroma:document
string_value:
C1
N1
N2
N3
L1
S2
S1
D
Fig.4.7.3 (g) When the diameter of an arc is less than the parameter value
- When cutting point compensation is used with normal direction control
When cutting point compensation is used with normal direction control, cutting point compensation 
between specified blocks is performed regardless of the method described in "Cutting point 
compensation" above, but is performed simultaneously with the movement of the normal direction 
control axis (C-axis).
Z axis
A axis


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 4. INTERPOLATION FUNCTIONS
- 69 -
(1) When the normal direction changes between blocks N1 and N2, cutting point compensation is also 
performed between blocks N1 and N2.
As shown in Fig. 4.7.3 (i), cutting point compensation described in (1) in "Cutting point 
compensation" is performed simultaneously with the movement made by normal direction control 
between blocks N1 and N2.
Y axis
X axis
C1
C2
V
Tool center path
Programmed path
V : A-axis component of C2-C1


key: chroma:document
string_value:
V : A-axis component of C2-C1
C1 : Cutting surface of block N1
C2 : Cutting surface of block N2
N1
N2
S0
A-axis on the
cylindrical surface
Normal direction vector (G41.1)
Tool
Fig. 4.7.3 (i) When the normal direction changes between blocks N1 and N2
(2) When a specified block is executed while the normal direction control axis is held in the normal 
direction set at the end point of the previous block, cutting point compensation is not performed, and


key: chroma:document
string_value:
cutting point compensation applied in the previous block is maintained. As shown in Fig. 4.7.3 (j), 
when the movement amount in N2 (L1 in the figure) is smaller than the setting of parameter No.
5483, so the normal direction control axis does not rotate at S1 while the movement amount in N3 
(L2 in the figure) is greater than the setting of parameter No. 5483, so the normal direction axis 
rotates at S2, cutting point compensation is not performed at S1 but is performed by the movement


key: chroma:document
string_value:
for vector V2 at S2.
Y-axis
X-axis
C1
C2
V1
Tool center path (G42)
Programmed path
V2 : A-axis component of C3-C1'
C1 : Cutting surface of block N1
C1’ : Cutting surface of block N2
C3 : Cutting surface of block N3
Vector S2 C1 = vector S2 C1'
N1
N2
S1
A-axis on the 
cylindrical surface
Normal direction vector (G41.1)
Tool
C3
N3 S2 V2
L1
C1’
L2
Fig. 4.7.3 (j) When the normal direction is the same as in the previous block


key: chroma:document
string_value:
4. INTERPOLATION FUNCTIONS PROGRAMMING B-64694EN/01
- 70 -
- Feedrate during cutting point compensation
(1) The tool moves at a specified feedrate while cutting point compensation is being applied between 
blocks.
(2) The actual speed indication and feedrate during circular interpolation are as described below.
Actual speed indication
The speed component of each axis after cutting point compensation at a point in time during circular 
interpolation is as follows:


key: chroma:document
string_value:
interpolation is as follows:
Fz'= Fz : Speed component of linear axis
Fc'= Fc + (Vce - Vcs) : Speed component of rotary axis
180
r Fy' -(Vce - Vcs) π = : Speed component of offset axis
Fz : Speed component of a cylindrical interpolation linear axis before cutting point compensation
Fc : Speed component of cylindrical interpolation rotation axis before cutting point compensation
Vcs: Rotation axis component of a tool contact point vector (Vs in the figure) at the start point at a 
point in time


key: chroma:document
string_value:
point in time
Vce: Rotation axis component of tool contact point vector (Ve in the figure) at the end point at a 
point in time
r : Radius of the cylinder of a rotary axis
Accordingly, the actual speed indication during circular interpolation is greater than the specified 
value when |Fc’| > |Fc|(inner offset of the arc). Conversely, the actual speed indication during 
circular interpolation is less than the specified value when |Fc’| < |Fc|(outer offset of the arc).
Z-axis
C-axis
Y-axis


key: chroma:document
string_value:
Z-axis
C-axis
Y-axis
Programmed path
Vs
Fc
Vce
Ve
Vcs
Tool
Fz = Fz’
Fc’
Tool center path
Fig. 4.7.3 (k) Actual speed indication during circular interpolation
- Usable G codes
(1) In any of the following G code modes, cutting point interpolation for cylindrical interpolation can be 
specified:
G01, G02, G03 : Linear interpolation, circular interpolation
G17, G18, G19 : Plane selection
G22 : Stored stroke check function on
G64 : Cutting mode


key: chroma:document
string_value:
G64 : Cutting mode
G90, G91 : Absolute programming, incremental programming
G94 : Feed per minute
(2) Any of the following G codes can be specified in cutting point interpolation for cylindrical 
interpolation mode:
G01, G02, G03 : Linear interpolation, circular interpolation
G04 : Dwell


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 4. INTERPOLATION FUNCTIONS
- 71 -
G40, G41, G42 : Tool radius compensation
G40.1 to G42.1 : Normal direction control
G64 : Cutting mode
G65 to G67 : Macro call
G90, G91 : Absolute programming, incremental programming
- Parameter
To enable this function, set bit 5 (CYA) of parameter No. 19530 to 1.
Limitation
- Overcutting during inner corner cutting
Theoretically, when the inner area of a corner is cut using linear interpolation as shown in Fig.4.7.3 (l),


key: chroma:document
string_value:
this function slightly overcuts the inner walls of the corner. This overcutting can be avoided by specifying 
a value of R that is slightly greater than the radius of the tool at the corner.
Tool
Tool
Overcut portion
Fig. 4.7.3 (l) Overcutting
- Setting the minimum input increment for an offset axis (Y-axis)
Set the same minimum input increment for an offset axis and linear axis when cylindrical interpolation is 
performed.
- Workpiece radius specification


key: chroma:document
string_value:
When specifying the radius of a workpiece, use the minimum input increment (with no decimal point) for 
the linear axis used in cylindrical interpolation.
- Reference axis setting (parameter No. 1031)
When different increment systems are used for a linear axis and a rotary axis in cylindrical interpolation, 
specify the number of the linear axis in cylindrical interpolation to set the axis as the reference axis.
- Rotary axis roll-over function


key: chroma:document
string_value:
When a rotary axis for which the rollover function is used is specified as a rotary axis to be used for 
cylindrical interpolation, the roll-over function is disabled in the cylindrical interpolation mode.
When the cylindrical interpolation is canceled, the rollover function is automatically enabled.
- Program restart
In a program restart operation, G07.1 for the cylindrical interpolation mode must not be specified.
Otherwise, alarm PS0175, "ILLEGAL G07.1 AXIS", is issued.


key: chroma:document
string_value:
4. INTERPOLATION FUNCTIONS PROGRAMMING B-64694EN/01
- 72 -
Example
- Example of cutting point interpolation for cylindrical interpolation
The sample program below indicates the positional relationships between a workpiece and tool.
Tool radius compensation No.01 is 30 mm.
O0001 (CYLINDRICAL INTERPOLATION1) ;
N01 G00 G90 Z100.0 C0 ;
N02 G01 G91 G19 Z0 C0 ;
N03 G07.1 C57299 ;
N04 G01 G42 G90 Z120.0 D01 F250. ;................(1)
N05 C20.0 ; ......................................................(2)


key: chroma:document
string_value:
N06 G02 Z110.0 C60.0 R10.0 ; ............................(3)
N07 G01 Z100.0 ;..................................................(4)
N08 G03 Z60.0 C70.0 R40.0 ; ..............................(5)
N09 G01 C100.0 ; 
 :
M30 ;
Z-axis
C-axis on the Cylindrical surface
Tool center path
Programmed path
Tool
20 30 60 70 (deg)
30
60
70
80
90
120
(mm)
C-axis on the
Cylindrical
surface
Z-axis
Tool
(1) (2) (3)(4)
(5)


key: chroma:document
string_value:
Tool
(1) (2) (3)(4)
(5)
Fig. 4.7.3 (m) Path of sample program for cutting point interpolation for cylindrical interpolation


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 4. INTERPOLATION FUNCTIONS
- 73 -
Rotary axis Workpiece
Rotary axis
Tool
Tool center
Y-axis Y-axis
Positional relationship between the
workpiece and tool of (1)
Positional relationship between the 
workpiece and tool of (2)
Cutting surface
20° 0° 0°
Rota Workpiece ry axis Rotary axis
Tool
Tool center
Y-axis Y-axis
Positional relationship between the 
workpiece and tool of (3) and (4)
Positional relationship between the 
workpiece and tool of (5)
Cutting surface


key: chroma:document
string_value:
Cutting surface
60° 60°70°
20°
Fig. 4.7.3 (n) Positional relationships between workpiece and tool of sample program
The cutting surface in the rotary axis direction in (3) and (4) are uniform even if the tool radius 
compensation amount is modified.
- Example of specifying cutting point interpolation for cylindrical interpolation
and normal direction control at the same time
Tool radius compensation No.01 is 30 mm.
O0002 (CYLINDRICAL INTERPOLATION2) ;
N01 G00 G90 X100.0 A0 ;


key: chroma:document
string_value:
N01 G00 G90 X100.0 A0 ;
N02 G01 G91 G17 X0 A0 ;
N03 G07.1 C57299 ;
N04 G01 G41 G42.1 G90 X120.0 D01 F250. ;
N05 A20.0 ;
N06 G03 X80.0 A60.0 R40.0 ;
N07 G01 X70.0 ;
N08 G02 X70.0 A70.0 R10.0 ;
N09 G01 A150.0 ;
N10 G02 X70.0 A190.0 R85.0 ;
N11 G01 X110.0 A265.0 ;
N12 G03 X120.0 A305.0 R85.0 ;
N13 G01 A360.0 ;
N14 G40 G40.1 X100.0 ;
N15 G07.1 A0 ;
N16 M30 ;


key: chroma:document
string_value:
4. INTERPOLATION FUNCTIONS PROGRAMMING B-64694EN/01
- 74 -
Z axis
A axis
Y axis
X axis
C axis
Fig. 4.7.3 (o) Example of specifying normal direction control at the same time
4.8 SMOOTH TOLERANCE+ CONTROL
M
Smooth tolerance+ control is a function that generates smooth machining path within specified tolerance.
In the case of die mold machining program that consists of small line segments, this function acts as


key: chroma:document
string_value:
smoothing function and makes joints of blocks smooth. As the result, machining surface gets high quality.
Smoothing small line segments
This function smooths small line segments. If the length of linear blocks is less than the value set at 
parameter No. 19595, those blocks are treated as small line segment blocks, and smooth curves not 
depending on commanded points are generated, which are within tolerance from commanded points.


key: chroma:document
string_value:
Smoothing tolerance is set as same value as CAM tolerance which generating small line segments. 
Tolerance is specified by parameters (No.11786, 11787) or NC program (G10.8L4Q_R_).
Fig.4.8 (a) Smoothing small line segments
Tolerance
Smoothing OFF Smoothing ON
Smoothing tool path
Polyhedral surface Smooth surface


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 4. INTERPOLATION FUNCTIONS
- 75 -
Command format (In Case of 3-axis Machining)
G05.1 Q3 Xp0 Yp0 Zp0; Smooth tolerance+ control mode on
G10.8 L4 Q_; Specify tolerance
:
G05.1 Q0; Smooth tolerance+ control mode off
Xp: X-axis or an axis parallel to the X-axis
Yp: Y-axis or an axis parallel to the Y-axis
Zp: Z-axis or an axis parallel to the Z-axis
Q: Tolerance for linear axis on curves
NOTE
1 Specify G05.1 alone in a block.


key: chroma:document
string_value:
(To avoid specifying any other G code in the same block)
2 Unit of “Q” in G10.8 command depends on the increment system of the basic
axis.
3 The value of parameter No. 11786 is effective as tolerance between G05.1 Q3 
command and G10.8 L4 command.
4 Smooth tolerance+ control is disabled when the tolerance for linear axis is set to 
0.
5 Smooth tolerance+ control mode is activated at the start of automatic operation 
by setting bit 0 (CAT) of parameter No. 11785.
Description of the Function


key: chroma:document
string_value:
Description of the Function
- Automatically turning on AI contour control with Smooth tolerance+ control
Specifying G5.1 Q3 also enables Smooth tolerance+ control and AI contour control to be turned on at the 
same time.
The automatic velocity control by AI contour control reduces impacts on the mechanical system.
- Conditions for enabling Smooth tolerance+ control
Smooth tolerance+ control is enabled when the following conditions are satisfied.


key: chroma:document
string_value:
In a block that does not satisfy the conditions for enabling it, Smooth tolerance+ control is canceled, and it 
is judged
in the next block whether to perform Smooth tolerance+ control again.
- The mode is all of the following:
• Cutting mode (G64) • Linear interpolation (G01)
• Feed per minute (G94, however G98 in G code system A of T series)
or Feed per revolution(G95, however G99 in G code system A of T series)
• Constant surface speed control cancel (G97)


key: chroma:document
string_value:
• Normal direction control cancel (G40.1) • Polar coordinate command cancel (G15)
- The block does not contain a one shot G code command.
- The block does not contain MST command.
- The block does not suppress look ahead (buffering).
- The block contains a move for at least a linear axis.
- The block contains a move command for only axes subject to Smooth tolerance+ control.
- The difference between a radius at the beginning point and a radius at the end point is less than 20μm.


key: chroma:document
string_value:
- Smooth tolerance+ control disable signal STCD <Gn599.2> is “0”.
- Block length is less than the value of parameter No. 19595.


key: chroma:document
string_value:
4. INTERPOLATION FUNCTIONS PROGRAMMING B-64694EN/01
- 76 -
- Conditions for canceling making corner path into curve
In Smooth tolerance+ control mode, making corner path into curve is canceled at the connection of blocks 
on the following conditions.
1. In case moving direction is inverted between linear interpolation blocks.
2. In case moving direction is inverted between circular interpolations blocks whose central coordinate 
values are exact the same.


key: chroma:document
string_value:
values are exact the same.
3. In case moving direction is same between linear interpolation blocks.
4. In case between curves represented by small segment, or between a curve represented by small 
segment and linear / circular block.
On the conditions 1 or 2, movements of axes temporary stop at the connection of blocks.
- Interlock
When an axis for Smooth tolerance+ control is interlocked, all axes are interlocked in the block which


key: chroma:document
string_value:
Smooth tolerance+ control is enabled, even if the interlocked axis is not commanded in the block.
- Axis moving signals
In the block which Smooth tolerance+ control is enabled, axis moving signals MV1 to MV8 <Fn102> for 
axes for Smooth tolerance+ control are set to one regardless of the movement.
- Use with other functions
In the case Smooth tolerance+ control is used with the following functions, it controls paths which each 
function is applied.


key: chroma:document
string_value:
function is applied.
- Cutter compensation and tool nose radius compensation
- Tool length compensation
- Programmable mirror image
- Scaling
- Coordinate system rotation
- Status display in the Smooth Tolerance+ control mode
Character string “TOLCON” blinks in the status bar when Smooth tolerance+ control mode is enabled. 
Fig.4.8 (b) Status display in the Smooth Tolerance+ control mode
4.8.1 Change Tolerance in Smooth Tolerance+ Control Mode
M


key: chroma:document
string_value:
M
The tolerance in smooth tolerance+ control mode can be changed any time by specifying G10.8 L4. The 
appropriate tolerance can be used which depends on situations in a program.
Format
Change Tolerance in Smooth Tolerance+ Control Mode
G10.8 L4 Q_ R_; Directly specify tolerance
G10.8 L4; Use paramter (No.11786, No.11787) as default tolerance
Q: Tolerance for linear axis on curves
R: Tolerance for rotary axis on curves
NOTE
1 Specify G10.8 alone in a block.


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 4. INTERPOLATION FUNCTIONS
- 77 -
3 Unit of “Q and “R” in G10.8 command depends on the increment system of the 
basic axis.
4 Specifying a negative value to “Q” or “R” causes alarm PS2010, “ILL. 
COMMAND IN TOLERANCE CON.”.
5 When G10.8 L4 specified not in smooth tolerance+ control mode (G05.1 Q3), 
alarm PS0412, “ILLEGAL G CODE” is issued.
6 The value of parameter No. 11786 and No. 11787 do not change by specifying 
G10.8 L4.
Example


key: chroma:document
string_value:
G10.8 L4.
Example 
Here is an example for changing tolerance in smoothing small line segments.
O0012;
G28 G91 X0 Y0;
G05.1 Q3 X0 Y0 Z0; (Smooth tolerance+ control mode on)
G10.8 L4 Q0.002; (Tolerance is set.)
G00 G90 X100.0 Y100.0 Z100.0;
G01 X100.121 Y100.321 F1000;
X100.121 Y100.321;
X100.321 Y100.881;
X100.721 Y101.365; Smoothing (Tolerance = 2μm)
：
：
G10.8 L4 Q0.003; (Tolerance is changed.)
X110.121 Y120.321;
X110.321 Y120.881;
X110.721 Y121.365; Smoothing (Tolerance = 3μm)
：
：


key: chroma:document
string_value:
：
：
G05.1 Q0; (Smooth tolerance+ control mode off)
M30;
NOTE
- Functions Which Smooth tolerance+ control is Temporary Disabled
This function is temporary disabled when the following functions are used together.
Functions
Any kind of interpolations except liner interpolation. 
Inverse time feed
Constant surface speed control cancel
Normal direction control
Polar coordinate command
Polar coordinate interpolation
Polygon turning
Tool length compensation command block
Canned cycle
2μm
3μm


key: chroma:document
string_value:
4. INTERPOLATION FUNCTIONS PROGRAMMING B-64694EN/01
- 78 -
- Background graphic display
The background graphic display function draws the path in Smooth tolerance+ control mode by linear
interpolation.
- Functions Which Does Not Work with Smooth Tolerance+ Control
This function doesn’t work with the following functions.
Functions Alarm (1)
Interruption type custom macro PS2012
(1) Functions which issue alarms in case using with Smooth tolerance+ control.
4.9 VARIABLE LEAD THREADING (G34)
T


key: chroma:document
string_value:
T
Specifying an increment or a decrement value for a lead per screw revolution enables variable lead 
threading to be performed.
Fig. 4.9 (a) Variable lead screw
Format
G34 IP_ F_ K_ Q_ ;
IP_ : End point
F_ : Lead in longitudinal axis direction at the start point
K_ : Increment and decrement of lead per spindle revolution
Q_ : Shift amount of starting angle of thread cutting
Explanation
Address other than K are the same as in straight/taper thread cutting with G32.


key: chroma:document
string_value:
The K value depends on the increment system of the reference axis, as indicated in Table 4.9 (a).
If the specified K value exceeds the range indicated in Table 4.9 (a), if the maximum lead is exceeded 
after a change due to the K value, or if the lead value is negative, an alarm PS0313, "ILLEGAL LEAD 
COMMAND", will be issued.
Table 4.9 (a) Range of valid K values
Increment system 
of reference axis Metric input (mm/rev) Inch input (inch/rev)
IS-A ±0.001 to ±500.000 ±0.00001 to ±50.00000


key: chroma:document
string_value:
IS-B ±0.0001 to ±500.0000 ±0.000001 to ±50.000000
IS-C ±0.00001 to ±50.00000 ±0.0000001 to ±5.0000000
Table4.9 (b) Range of valid lead values
Metric input (mm) Inch input (inch)
0.0001 to 500.0000 0.000001 to 50.000000


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 4. INTERPOLATION FUNCTIONS
- 79 -
- Continuous threading
The "continuous threading" is effective for G34.
CAUTION
The "thread cutting cycle retract" is not effective for G34.
- Multiple threading
Multiple threading can be performed by specifying the Q value.
As for specifying the Q value, refer to " MULTIPLE THREADING ".
Example
If, in the increment system IS-B,
G34 Z-72.0 F8.0 K0.3 ;
is specified,
Lead at the start point: 8.0 mm
Lead increment: 0.3 mm/rev


key: chroma:document
string_value:
Lead increment: 0.3 mm/rev
Fig.4.9 (b) Example of variable lead threading
4.10 CIRCULAR THREADING (G35, G36)
T
Using the G35 and G36 commands, a circular thread, having the specified lead in the direction of the 
major axis, can be machined.
L
L: Lead
Fig. 4.10 (a) Circular threading
8mm 8.3mm 8.6mm 8.9mm


key: chroma:document
string_value:
4. INTERPOLATION FUNCTIONS PROGRAMMING B-64694EN/01
- 80 -
Format
A sample format for the G18 plane (Z-X plane) is indicated below. In the G17 plane (X-Y plane) and the 
G19 plane (Y-Z plane), a sample format can be specified by following format. When using the format for 
the G17 plane (X-Y plane), change the addresses Z, X, K, and I to X, Y, I, and J respectively. When using 
the format for the G19 plane (Y-Z plane), change the addresses Z, X, K, and I to Y, Z, J, and K 
respectively.


key: chroma:document
string_value:
respectively.
G35 X(U)_ Z(W)_ I_ K_ F_ Q_ ; G36 R_
G35 : Clockwise circular threading command
G36 : Counterclockwise circular threading command
X(U), Z(W) : Specify the arc end point (in the same way as for G02, G03).
I, K : Specify the arc center relative to the start point, using relative coordinates (in the 
same way as for G02, G03).
R : Specify the arc radius.
F : Specify the lead in the direction of the major axis.
Q : Specify the shift of the threading start angle


key: chroma:document
string_value:
(0° to 360°, with least input increment of 0.001)
(The value cannot be programmed with a decimal point.)
F X
Z
K
I R
End point (Z, X)
Arc center
Start point
Explanation
- Specifying the arc radius
If R is specified with I and K, only R is effective.
- Shift angle
If an angle greater than 360° is programmed, it is set to 360°.
- Continuous threading
The "continuous threading" is effective for G35, G36.
- Thread cutting cycle retract


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 4. INTERPOLATION FUNCTIONS
- 81 -
- Automatic tool compensation
The G36 command is used to specify the following two functions: Automatic tool compensation X and 
counterclockwise circular threading. The function for which G36 is to be used depends on bit 3 (G36) of 
parameter No. 3405.
• When parameter G36 is set to 0, the G36 command is used for automatic tool compensation X.
• When parameter G36 is set to 1, the G36 command is used for counterclockwise circular threading.


key: chroma:document
string_value:
G37.1 can be used to specify automatic tool compensation X and G37.2 can be used to specify automatic 
tool compensation Z.
(Specification method)
G37.1 X_
G37.2 Z_
- G code when bit 3 (G36) of parameter No. 3405 is set to 1
G code G code group Function
G35 01 Clockwise circular threading
G36 Counterclockwise circular threading
G37
00
Automatic tool compensation Z
G37.1 Automatic tool compensation X
G37.2 Automatic tool compensation Z
Limitation
- Range of specifiable arc


key: chroma:document
string_value:
- Range of specifiable arc
An arc must be specified such that it falls within a range in which the major axis of the arc is always the 
Z-axis or always the X-axis, as shown in Fig. 4.10 (b) and Fig. 4.10 (c). If the arc includes a point at 
which the major axis changes from the X-axis to Z-axis, or vice versa, as shown in Fig. 4.10 (d), an alarm 
PS5058, "G35/G36 FORMAT ERROR", is issued.
X
45°
Z
Start point End point
Fig. 4.10 (b) Range in which the Z-axis is the major axis
X
45°
Z


key: chroma:document
string_value:
4. INTERPOLATION FUNCTIONS PROGRAMMING B-64694EN/01
- 82 -
X
45°
Z
Start point
End point
The major axis changes at this point.
Fig. 4.10 (d) Example of arc specification which causes an alarm
- End point not on an arc
If the end point is not on an arc, a movement on an axis is made to a position of which coordinate matches 
the corresponding coordinate of the end point. Then, a movement is made on another axis to reach the end 
point.
Start point
Center
End point
r
Center
End point
r


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 4. INTERPOLATION FUNCTIONS
- 83 -
4.11 SKIP FUNCTION (G31)
Linear interpolation can be commanded by specifying axial move following the G31 command, like G01. 
If an external skip signal SKIP is input during the execution of this G31 command, execution of the 
G31command is interrupted and the next block is executed.
The skip function is used when the end of machining is not programmed but specified with a signal from


key: chroma:document
string_value:
the machine, for example, in grinding. It is used also for measuring the dimensions of a workpiece.
Format
G31 IP ;
G31 :One-shot G code (If is effective only in the block in which it is specified)
Explanation
The coordinate values when the skip signal SKIP is turned on can be used in a custom macro because 
they are stored in the custom macro system variable #100151 to #100182, as follows. For systems with up 
to 20 axes, FS16-compatible system variables (#5061 to #5080) may also be used.


key: chroma:document
string_value:
#100151 (#5061) : First axis coordinate value
#100152 (#5062) : Second axis coordinate value
:
#100170 (#5080) : 20th axis coordinate value
#100171 : 21st axis coordinate value
#100172 : 22nd axis coordinate value
:
#100182 : 32nd axis coordinate value
- Feedrate
Two types of feedrate can be selected for the G31 block, using bit 1 (SFP) of parameter No. 6207.
(1) Parameter SFP (No. 6207#1) = 0
Feedrate specified with address F (may be specified before or in the G31 block).


key: chroma:document
string_value:
(2) Parameter SFP (No. 6207#1) = 1
Feedrate set for parameter No.6281.
Even if bit 7 (SKF) of parameter No. 6200 is set to 1, dry run and automatic 
acceleration/deceleration are disabled when a feedrate with the G31 command is the feedrate which 
is set for parameter No. 6281.
CAUTION
To increase the precision of the tool position when the skip signal SKIP is input, 
feedrate override, dry run, and automatic acceleration/deceleration are disabled


key: chroma:document
string_value:
in moving by the skip function (G31) regardless of the feedrate which is specified 
as a feed per minute or a feed per rotation.
To enable these functions, set bit 7 (SKF) of parameter No. 6200 to 1.
However, even if bit 7 (SKF) of parameter No. 6200 is set to 1, dry run and 
automatic acceleration/deceleration are disabled when bit 1 (SFP) of parameter 
No. 6207 is set to 1.
NOTE
If G31 command is issued while tool radius/tool nose radius compensation is


key: chroma:document
string_value:
applied, an alarm PS0035, "CAN NOT COMMANDED G31", is displayed. 
Cancel the tool radius compensation with the G40 command before the G31 
command is specified.


key: chroma:document
string_value:
4. INTERPOLATION FUNCTIONS PROGRAMMING B-64694EN/01
- 84 -
Example
- The next block to G31 is an incremental programming
G31 G91 X100.0 F100;
Y50.0;
50.0
100.0
Skip signal is input here
Actual motion
Motion without skip signal
Y
X
Fig. 4.11 (a) The next block is an incremental programming
- The next block to G31 is an absolute programming for 1 axis
G31 G90 X200.0 F100;
Y100.0;
Y100.0
Skip signal is input here
Actual motion
Motion without skip signal
X200.0


key: chroma:document
string_value:
X200.0
Fig. 4.11 (b) The next block is an absolute programming for 1 axis
- The next block to G31 is an absolute programming for 2 axes
100 200 300
Actual motion
Motion without skip signal
Skip signal is input here
(300,100)
Y
X
100
G31 G90 X200.0 F100;
X300.0 Y100.0;
Fig. 4.11 (c) The next block is an absolute programming for 2 axes


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 4. INTERPOLATION FUNCTIONS
- 85 -
4.12 MULTI-STEP SKIP (G31)
In a block specifying P1 to P4 after G31, the multi-step skip function stores coordinates in a custom 
macro variable when a skip signal (4-point or 8-point ; 8-point when a high-speed skip signal is used) is 
turned on. In the block where Q1 to Q4 are specified after G04, dwell can be skipped when skip signals 
(four or eight signals, or eight signals when high-speed skip signals are used) are input.


key: chroma:document
string_value:
A skip signal from equipment such as a fixed-dimension size measuring instrument can be used to skip 
programs being executed.
In plunge grinding, for example, a series of operations from rough machining to spark-out can be 
performed automatically by applying a skip signal each time rough machining, semi-fine machining, 
fine-machining, or spark-out operation is completed.
Format
Move command
G31 IP_ F_ P_ ;
IP_ : End point
F_ : Feedrate
P_ : P1 to P4
Dwell
G04 X(U,P)_ (Q_ );


key: chroma:document
string_value:
Dwell
G04 X(U,P)_ (Q_ );
X(U,P)_ : Dwell time
Q_ : Q1 to Q4
Explanation
Multi-step skip is caused by specifying P1, P2, P3, or P4 in a G31 block. For an explanation of selecting 
(P1, P2, P3, or P4), refer to the manual supplied by the machine tool builder.
Specifying Q1, Q2, Q3, or Q4 in G04 (dwell command) enables dwell skip in a similar way to specifying 
G31. A skip may occur even if Q is not specified. For an explanation of selecting (Q1, Q2, Q3, or Q4),


key: chroma:document
string_value:
refer to the manual supplied by the machine tool builder.
- Feedrate
Two types of feedrate can be selected for the multi-step skip block, using bit 2 (SFN) of parameter 
No.6207.
(1) Parameter SFN (No.6207#2) = 0
Feedrate specified with address F (may be specified before or in the multi-step skip block).
(2) Parameter SFN (No.6207#2) = 1
Feedrate set for parameters Nos.6282 to 6285.
Even if bit 7 (SKF) of parameter No.6200 is set to 1, dry run and automatic acceleration/deceleration are


key: chroma:document
string_value:
disabled when a feedrate with the G31 command is the feedrate which is set for parameters Nos.6282 to 
6285.
CAUTION
To increase the precision of the tool position when the skip signal is input, 
feedrate override, dry run, and automatic acceleration/deceleration are disabled 
in moving by the skip function (G31) regardless of the feedrate which is specified 
as a feed per minute or a feed per rotation.
To enable these functions, set bit 7 (SKF) of parameter No.6200 to 1.


key: chroma:document
string_value:
However, even if bit 7 (SKF) of parameter No.6200 is set to 1, dry run and 
automatic acceleration/deceleration are disabled when bit 2 (SFN) of parameter 
No.6207 is set to 1.


key: chroma:document
string_value:
4. INTERPOLATION FUNCTIONS PROGRAMMING B-64694EN/01
- 86 -
- Correspondence to skip signals
Parameters Nos. 6202 to 6205 can be used to specify whether the 4-point or 8-point skip signal is used 
(when a high-speed skip signal is used). Specification is not limited to one-to-one correspondence. It is 
possible to specify that one skip signal correspond to two or more Pn's or Qn's (n=1, 2, 3, 4). Also, bits 0 
(DS1) and 7 (DS8) parameter No.6206 can be used to specify dwell.
CAUTION


key: chroma:document
string_value:
CAUTION
Dwell is not skipped when Qn is not specified and bits 0 (DS1) and 7 (DS8) 
parameter No.6206 are not set.
4.13 HIGH-SPEED SKIP (G31)
The skip function operates based on a high-speed skip signal (connected directly to the CNC; not via the 
PMC) instead of an ordinary skip signal. In this case, up to eight signals can be input.
Delay and error of skip signal input is 0 - 2 msec at the CNC side (not considering those at the PMC 
side).


key: chroma:document
string_value:
side). 
This high-speed skip signal input function keeps this value to 0.1 msec or less, thus allowing high 
precision measurement.
For details, refer to the appropriate manual supplied from the machine tool builder.
Format
G31 IP ;
G31; One-shot G code (If is effective only in the block in which it is specified)
4.14 SKIP POSITION MACRO VARIABLE IMPROVEMENT
Overview
In macro variables #100151 to #100200 (#5061 to #5080) for reading the skip position when executing


key: chroma:document
string_value:
the skip command (G31), by setting bit 7 (SKM) of parameter No. 6007 to 1, it is now possible to read 
the skip position in the workpiece coordinate system at the time a skip is made even if the workpiece 
coordinate system setting/selection command is executed after the skip command is executed.
By setting bit 7 (SKM) of parameter No. 6007 to 0, it is possible to read the skip position that reflects the 
workpiece coordinate system at the time it is read, as usual, if the workpiece coordinate system


key: chroma:document
string_value:
setting/selection command is executed after the skip command is executed.
Macro variable
The following are the macro variables that can read the position at the time a skip is made even if the 
workpiece coordinate system setting/selection command is executed after the skip command is executed, 
by setting bit 7 (SKM) of parameter No. 6007 to 1.
System variable 
number
System variable 
name
Attribute Description
#5061 to #5080 [#_ABSKP[n]] R Skip position (workpiece coordinate system)


key: chroma:document
string_value:
Note) Subscript n represents an axis number (1 to 20).
#100151 to #100200 The numbers to the left can also be used.
Note) Subscript n represents an axis number (1 to 50).
#5421 to #5440 [#_SKPDTC[n]] R Skip position (workpiece coordinate system, detection unit)
Note) Subscript n represents an axis number (1 to 20).
#100701 to #100750 The numbers to the left can also be used.
Note) Subscript n represents an axis number (1 to 50).


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 4. INTERPOLATION FUNCTIONS
- 87 -
4.15 CONTINUOUS HIGH-SPEED SKIP FUNCTION
Overview
The continuous high-speed skip function is used to read absolute coordinates using high-speed skip 
signals HDI0 to HDI7. Inputting a high-speed skip signal in a G31P90 block causes absolute coordinates 
to be stored in custom macro variables #5061 to #5080. For a system with more than 20 axes, they are


key: chroma:document
string_value:
stored in variables #100151 to #100182. An axis movement does not stop even if a signal is input, so that 
the coordinates of multiple points can be read.
Using bit 5 (CSE) of parameter No. 6201, it is possible to enable both the rising and falling edges of a 
high-speed skip signal.
For details, refer to the manual supplied by the machine tool builder.
Format
G31 P90 IP ;
G31; One-shot G code (If is effective only in the block in which it is specified)
Explanation
- Custom macro variables


key: chroma:document
string_value:
- Custom macro variables
If a high-speed skip signal is input when G31P90 is issued, absolute coordinates are stored in custom 
macro variables #5061 to #5080. For a system exceeding 20 axes, they are stored in variables #100151 to
#100182.
These variables are updated as soon as the axis reaches a new skip position. It is, therefore, necessary to 
specify a speed so that the axis reaches the next skip position in a period of time longer than it takes for 
the application to read the variable values.


key: chroma:document
string_value:
System with 20 or less axes System with more than 20 axes
#5061 Coordinates on the first axis #100151 Coordinates on the first axis
#5062 Coordinates on the second axis #100152 Coordinates on the second axis
#5063 Coordinates on the third axis #100153 Coordinates on the third axis
: :
#5079 Coordinates on the 19th axis #100181 Coordinates on the 31st axis
#5080 Coordinates on the 20th axis #100182 Coordinates on the 32nd axis
- High-speed skip


key: chroma:document
string_value:
- High-speed skip
This function works with a high-speed skip signal only.
Select a high-speed skip signal with bits 0 to 7 (9S1 to 9S8) of parameter No. 6208.
- Ending a block
A G31P90 block is ended when the axis reaches the end point.
Limitation
The continuous high-speed skip function (G31P90) block must be a command for a single axis only. If an 
attempt is made to specify two or more axes, alarm PS5068, “FORMAT ERROR IN G31 P90” is issued.


key: chroma:document
string_value:
4. INTERPOLATION FUNCTIONS PROGRAMMING B-64694EN/01
- 88 -
4.16 TORQUE LIMIT SKIP
Overview
Executing the move command following G31P99 (or G31P98) while overriding the torque limit*1 on the 
servo motor enables cutting feed in to be performed in the same way as in linear interpolation (G01). If, 
during the movement with this command, the torque of the servo motor reaches the torque limit value 
(torque limit on the servo motor multiplied by the override) due to pressing or other causes or a skip


key: chroma:document
string_value:
signal (including a high-speed skip signal) is input, any remaining move commands will be canceled, and 
the next block is executed. (The operation of canceling any remaining move commands and executing the 
next block is called a skip operation in the remainder of this document.)
It is possible to override the torque limit on the servo motor with the following command methods:
(1) Execute the torque limit override command in the PMC window.


key: chroma:document
string_value:
(2) Execute an address Q command in the same block as that containing a G31P99 (or G31P98) 
command.
*1 : The torque limit on the servo motor is automatically set to a value conforming to the motor type 
setting. The override is applied to the maximum torque of the servo motor.
In order to override the torque limit on the servo motor, set bit 0 (TQO) of parameter No. 6286 to 1.
Format
G31 P98 Q_ α_ F_
G31 P99 Q_ α_ F_
G31 : Skip command (one-shot G code)


key: chroma:document
string_value:
P98 : Performs a skip operation if the torque of the servo motor reaches the limit value.
P99 : Performs a skip operation if the torque of the servo motor reaches the limit value or if 
a skip signal is input.
Q : Override value for the torque limit
Range of valid settings: 1 to 254 (%)
0 to 255 correspond to 0% to 100%.
The Q command is optional. If omitting it, specify the torque limit command in the 
PMC window beforehand. If it is omitted, and no torque limit override is set


key: chroma:document
string_value:
beforehand, alarm PS0035, “CAN NOT COMMANDED G31” is issued.
If an attempt is made to specify a value out of range, alarm PS0369, “G31 FORMAT 
ERROR” is issued.
The specified override value is effective only to the block in which it is specified.
At the end of the skip operation, the override value returns to the one assumed
immediately before the G31 command.
α : Axis address on any one axis
F : Feedrate
- Conditions for performing a skip operation
-
Table 4.16
Condition Command
G31P98 G31P99


key: chroma:document
string_value:
G31P98 G31P99
The torque limit value is reached. A skip operation is performed. A skip operation is performed.
A skip signal is input. No skip operation is performed. A skip operation is performed.


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 4. INTERPOLATION FUNCTIONS
- 89 -
- Operation during a torque limit skip
Fig. 4.16 (a)
A torque limit skip presses a specified axis against a previously prepared part or other item while the 
torque limit command is being executed on the servo motor, and then performs a skip operation when the 
servo motor reaches the torque limit value. A skip operation is performed with the fact that the torque


key: chroma:document
string_value:
limit value as detected in the servo motor is reached. It is, therefore, not necessary to input a skip signal 
using a separate sensor or other device unlike with normal skip functions.
(1) At point A, the machine comes in contact with the object under measurement and stops. At this time, 
because the torque limit value is not reached, no skip operation is performed, move commands are 
continuously output, and the current position of the CNC is updated.


key: chroma:document
string_value:
(2) Because move commands are output but the machine remains stopped, there occurs a difference 
(error amount) between the current position of the CNC and the machine position, and torque is 
applied to the servo motor.
(3) When the torque limit value is reached, a skip operation is performed at machine stop position, point 
A, and the N2 command is executed. Assuming that the current position of the CNC when the torque


key: chroma:document
string_value:
limit is reached is point B, the error amount during the torque limit skip is (A - B).
- Torque limit command
If, with the torque limit skip command, no torque limit override value is specified with address Q and no 
torque limit command is issued from the PMC window, etc., alarm PS0035 is issued.
When no toque limit command is issued, the torque limit override value is either 0% or 100%.
If, in a torque limit skip command block, no torque limit override value is specified with address Q, a


key: chroma:document
string_value:
torque limit is to be specified as in the program example below.
(Program example)
O0012
:
Mxx (Specify a torque limit from the PMC via the window)
:
G31 P99 X200.0 F100.(Torque limit skip command)
:
G01 X100.0 F500.(Move command with the torque limit being still effective)
:
Myy (Cancel the torque limit from the PMC)
:
M30


key: chroma:document
string_value:
4. INTERPOLATION FUNCTIONS PROGRAMMING B-64694EN/01
- 90 -
- Positional deviation limit during the torque limit command
While the torque limit skip command is being executed, the positional deviation limit check with the 
settings of parameters Nos. 1828 and 1829 is not performed. Instead, the positional deviation limit check 
with the settings of parameter No. 6287 is performed. If the positional deviation exceeds the limit, alarm


key: chroma:document
string_value:
SV0004, “EXCESS ERROR (G31)” is issued and an instantaneous stop occurs.
- Custom macro variables
When the torque limit skip command is executed, the custom macro system variables #5061 to #5080
(skip signal position; for a system with more than 20 axes, variables #100151 to #100182 are used) store 
the coordinate position assumed at the end of the skip. In reality, there is a deviation due to the delay of


key: chroma:document
string_value:
the servo system between the machine position and the current position of the CNC when a skip operation 
is executed. This deviation can be determined from the positional deviation of the servo. By setting bit 2 
(TSE) of parameter No. 6201, it is possible to select whether or not the skip signal position to be stored in 
system variables should be compensated for with the error (positional deviation) of the servo system.
Position during a skip operation
Current position of the CNC


key: chroma:document
string_value:
Current position of the CNC
Machine position Error
Position compensated for by 
reflecting the delay
Position not reflecting the delay
Coordinate origin Stop point
Fig. 4.16 (b)
NOTE
1 Specify only a single axis with the torque limit skip command. If no axis is 
specified or an attempt is made to specify more than one, alarm PS0369 is 
issued.
2 Do not issue the torque limit skip command in 3-dimensional coordinate 
conversion mode. Otherwise, alarm PS0035 is issued.


key: chroma:document
string_value:
3 Do not issue the torque limit skip command in G41 or G42 mode. Otherwise, 
alarm PS0035 is issued.
4 A torque limit arrival signal TRQL1 to TRQL8 is output regardless of the torque 
limit skip command.
5 Do not issue the torque limit skip command for an axis being synchronized with 
synchronization control (such as synchronization control, or electronic gear box).
6 Do not specify the torque limit skip command in a continuous block.


key: chroma:document
string_value:
7 The higher the movement speed, the larger the error between the position at 
which the machine stops and the position at which a skip is actually detected. 
Also, the error increases as the speed is varied during movement. Do not vary 
the speed with override and so on.


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 5. FEED FUNCTIONS
- 91 -
5 FEED FUNCTIONS
5.1 OVERVIEW
The feed functions control the feedrate of the tool. The following two feed functions are available:
- Feed functions
1. Rapid traverse
When the positioning command (G00) is specified, the tool moves at a rapid traverse feedrate set in 
the CNC (parameter No. 1420).
2. Cutting feed
The tool moves at a programmed cutting feedrate.
- Override


key: chroma:document
string_value:
- Override
Override can be applied to a rapid traverse rate or cutting feedrate using the switch on the machine 
operator's panel.
- Automatic acceleration/deceleration
To prevent a mechanical shock, acceleration/deceleration is automatically applied when the tool starts and 
ends its movement (Fig. 5.1 (a)).
Rapid traverse rate
FR : Rapid traverse 
rate
TR : Deceleration time
constant for rapid 
traverse rate
0
Time 0
Feedrate
FR
TR TR
FC
TC TC
FC : Feedrate
TC : Acceleration/


key: chroma:document
string_value:
TC : Acceleration/ 
deceleration time 
constant for a 
cutting feedrate
Time
Fig. 5.1 (a) Automatic acceleration/deceleration (example)
- High-speed and high-precious machining function
The machining precision can be improved by using AI contour control function I or II. Refer to the 
Section of "AI CONTOUR CONTROL FUNCTION I AND AI CONTOUR CONTROL FUNCTION II" 
in "HIGH-SPEED CUTTING FUNCTION" for detail.


key: chroma:document
string_value:
5. FEED FUNCTIONS PROGRAMMING B-64694EN/01
- 92 -
- Tool path in a cutting feed
When the movement direction changes between a specified block and the next block during cutting feed, 
the tool path may be rounded because of the relationship between the time constant and feedrate (Fig. 5.1
(b)).
0
Programmed path
Actual tool path
Y
X
Fig. 5.1 (b) Example of tool path between two blocks 
In circular interpolation, a radial error occurs (Fig. 5.1 (c)).
0
Y
X
r
 ∆r : Error
Programmed path


key: chroma:document
string_value:
∆r : Error
Programmed path
Actual tool path
Fig. 5.1 (c) Example of radial error in circular interpolation
The rounded-corner path shown in Fig. 5.1 (b) and the error shown in Fig. 5.1 (c) depend on the feedrate. 
So, the feedrate needs to be controlled for the tool to move as programmed.
5.2 RAPID TRAVERSE
Format
G00 IP_ ;
G00 : G code (group 01) for positioning (rapid traverse)
IP_ : Dimension word for the end point
Explanation


key: chroma:document
string_value:
Explanation
The positioning command (G00) positions the tool by rapid traverse. In rapid traverse, the next block is 
executed after each axis stops at the end point and the servo motor reaches a certain range set by the 
machine tool builder (in-position check).
A rapid traverse rate is set for each axis by parameter No. 1420, so no rapid traverse feedrate need be 
programmed.
The following overrides can be applied to a rapid traverse rate with the switch on the machine operator's


key: chroma:document
string_value:
panel:F0, 25%, 50%, 100%
F0: Allows a fixed feedrate to be set for each axis by parameter No. 1421.
For detailed information, refer to the appropriate manual of the machine tool builder.


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 5. FEED FUNCTIONS
- 93 -
5.3 CUTTING FEED
Overview
Feedrate of linear interpolation (G01), circular interpolation (G02, G03), etc. are commanded with 
numbers after the F code.
In cutting feed, the next block is executed so that the feedrate change from the previous block is 
minimized.
M
Four modes of specification are available:
1. Feed per minute (G94)
After F, specify the amount of feed of the tool per minute.
2. Feed per revolution (G95)


key: chroma:document
string_value:
2. Feed per revolution (G95)
After F, specify the amount of feed of the tool per spindle revolution.
3. Inverse time feed (G93)
Specify the inverse time (FRN) after F.
4. One-digit F code feed
Specify a desired one-digit number after F. Then, the feedrate set with the CNC for that number is 
set.
And, the number of effective digits after the decimal point of feedrate to feedrate command F is as 
follows.
Example) In the case of increment system IS-B (0.001mm/ 0.0001inch)
Command
Decimal


key: chroma:document
string_value:
Command
Decimal 
point of F 
command
Parameter
The number of effective digits after the decimal point
mm inch
Feed per 
Minute
(G94)
Not 
specified Nothing 0 digit 2 digits
F1234=1234(mm/min) F1234=12.34(inch/min)
Specified Nothing 3 digits 5 digits
F1.234=1.234(mm/min) F1.23456=1.23456(inch/min)
Feed per 
revolution
(G95)
Threading
(G33)
Not 
specified
No.1405#1
=0 (NOTE)
2 digits 4 digits
F1234=12.34(mm/rev) F1234=0.1234(inch/rev)
No.1405#1
=1 (NOTE)
3 digits 5 digits


key: chroma:document
string_value:
=1 (NOTE)
3 digits 5 digits
F1234=1.234(mm/rev) F1234=0.01234(inch/rev)
Specified Nothing 3 digits 5 digits
F1.234=1.234(mm/rev) F1.23456=1.23456(inch/rev)
NOTE
Setting of bit 1 (FCV) of parameter No.0001 doesn’t influence.
T
Two modes of specification are available:
1. Feed per minute (G98 or G94)
After F, specify the amount of feed of the tool per minute.
2. Feed per revolution (G99 or G95)
After F, specify the amount of feed of the tool per spindle revolution.


key: chroma:document
string_value:
And, the number of effective digits after the decimal point of feedrate to feedrate command F is as 
follows.
Example) In the case of increment system IS-B (0.001mm/ 0.0001inch)


key: chroma:document
string_value:
5. FEED FUNCTIONS PROGRAMMING B-64694EN/01
- 94 -
Command
Decimal 
point of F 
command
Parameter
The number of effective digits after the decimal point
mm inch
Feed per 
Minute
(G98 or 
G94)
Not 
specified
No.1404#2
=0
0 digit 2 digits
F1234=1234(mm/min) F1234=12.34(inch/min)
No.1404#2
=1
3 digits 5 digits
F1234=1.234(mm/min) F123456=1.23456(inch/min)
Specified Nothing 3 digits 5 digits
F1.234=1.234(mm/min) F1.23456=1.23456(inch/min)
Feed per 
revolution
(G99 or 
G95)
Threading


key: chroma:document
string_value:
(G99 or 
G95)
Threading
(G32)
Not 
specified
No.0001#1
=0
4 digits 6 digits
F12345=1.2345(mm/rev) F1234567=1.234567(inch/rev)
No.0001#1
=1
2 digits 4 digits
F1234=12.34(mm/rev) F12345=1.2345(inch/rev)
Specified Nothing 4 digits 6 digits
F1.2345=1.2345(mm/rev) F1.234567=1.234567(inch/rev)
Format
M
Feed per minute
G94 ; G code (group 05) for feed per minute
F_ ; Feedrate command (mm/min or inch/min)
Feed per revolution
G95 ; G code (group 05) for feed per revolution


key: chroma:document
string_value:
F_ ; Feedrate command (mm/rev or inch/rev)
Inverse time feed (G93)
G93 ; Inverse time feed command G code (05 group)
F_ ; Feedrate command (1/min)
One-digit F code feed
Fn ;
n : Number from 1 to 9
T
G code system A
Feed per minute
G98 ; G code (group 05) for feed per minute
F_ ; Feedrate command (mm/min or inch/min)
Feed per revolution
G99 ; G code (group 05) for feed per revolution
F_ ; Feedrate command (mm/rev or inch/rev)


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 5. FEED FUNCTIONS
- 95 -
G code system B/C
Feed per minute
G94 ; G code (group 05) for feed per minute
F_ ; Feedrate command (mm/min or inch/min)
Feed per revolution
G95 ; G code (group 05) for feed per revolution
F_ ; Feedrate command (mm/rev or inch/rev)
Explanation
- Direction of the cutting feedrate
Cutting feed is controlled so that the tangential feedrate is always set at a specified feedrate.
X
End point
Start
point
X
F F
Center End
Start
point


key: chroma:document
string_value:
F F
Center End
Start
point
Linear interpolation Circular interpolation
Y Y
Fig. 5.3 (a) Tangential feedrate (F)
- Feed per minute
After specifying G code for feed per minute (in the feed per minute mode), the amount of feed of the tool 
per minute is to be directly specified by setting a number after F. G code for feed per minute is a modal 
code. Once a G code for feed per minute is specified, it is valid until another G code belonging to the


key: chroma:document
string_value:
group 05 (feed per revolution, inverse time feed) is specified.
M
At power-on, the feed per minute mode is set.
T
Bit 4 (FPM) of parameter No.3402 is set to 0:
At power-on, the feed per revolution mode is set.
Bit 4 (FPM) of parameter No.3402 is set to 1:
At power-on, the feed per minute mode is set.
An override from 0% to 254% (in 1% steps) can be applied to feed per minute with the switch on the 
machine operator's panel. For detailed information, see the appropriate manual of the machine tool


key: chroma:document
string_value:
5. FEED FUNCTIONS PROGRAMMING B-64694EN/01
- 96 -
- For milling machining
Workpiece
Table
Tool
Feed amount per minute
(mm/min or inch/min)
- For lathe cutting
Feed amount per minute
(mm/min or Íinch/min) F
Fig. 5.3 (b) Feed per minute
CAUTION
No override can be used for some commands such as for threading.
- Feed per revolution
After specifying G code for feed per revolution (in the feed per revolution mode), the amount of feed of


key: chroma:document
string_value:
the tool per spindle revolution is to be directly specified by setting a number after F. G code for feed per 
revolution is a modal code. Once a G code for feed per revolution is specified, it is valid until another G
code belonging to the group 05 (feed per minute, inverse time feed) is specified.
An override from 0% to 254% (in 1% steps) can be applied to feed per revolution with the switch on the 
machine operator's panel. For detailed information, see the appropriate manual of the machine tool


key: chroma:document
string_value:
builder.
T
If bit 0 (NPC) of parameter No. 1402 has been set to 1, feed per revolution commands can be specified 
even when a position coder is not being used. (The CNC converts feed per revolution commands to feed
per minute commands.)
- For milling machining
F
Feed amount per spindle
revolution (mm/rev or inch/rev)


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 5. FEED FUNCTIONS
- 97 -
- For lathe cutting
Feed amount per spindle revolution
(mm/rev or inch/rev)
F
Fig. 5.3 (c) Feed per revolution
CAUTION
When the speed of the spindle is low, feedrate fluctuation may occur. 
The slower the spindle rotates, the more frequently feedrate fluctuation occurs.
M
- Inverse time feed
When G code for inverse time feed is specified, the inverse time specification mode (G93 mode) is set. 
Specify the inverse time (FRN) with an F code.


key: chroma:document
string_value:
A value from 0.001 to 9999.999 can be specified as FRN, regardless of whether the input mode is inches 
or metric, or the increment system is IS-B or IS-C.
F code specification value FRN
F1 0.001
F1 (*1) 1.000
F1.0 1.000
F9999999 9999.999
F9999 (*1) 9999.000
F9999.999 9999.999
NOTE
*1 Value specified in fixed-point format with bit 0 (DPI) of parameter No. 3401 set to 
1
G code for inverse time feed is a modal G code and belongs to group 05 (includes G code for feed per


key: chroma:document
string_value:
revolution and G code for feed per minute).
When an F value is specified in inverse time specification mode and the feedrate exceeds the maximum 
cutting feedrate, the feedrate is clamped to the maximum cutting feedrate.
In the case of circular interpolation, the feedrate is calculated not from the actual amount of movement in 
the block but from the arc radius. This means that actual machining time is longer when the arc radius is


key: chroma:document
string_value:
longer than the arc distance and shorter when the arc radius is shorter than the arc distance. Inverse time 
feed can also be used for cutting feed in a canned cycle.
NOTE
1 In the inverse time specification mode, an F code is not handled as a modal 
code and therefore needs to be specified in each block. If an F code is not 
specified, alarm PS1202, “NO F COMMAND AT G93 ” is issued.
2 When F0 is specified in inverse time specification mode, alarm PS0011, “FEED 
ZERO (COMMAND)” is issued.


key: chroma:document
string_value:
ZERO (COMMAND)” is issued.
3 Inverse time feed cannot be used when PMC axis control is in effect.
4 If the calculated cutting feedrate is smaller than the allowable range, alarm 
PS0011, “FEED ZERO (COMMAND)” is issued.


key: chroma:document
string_value:
5. FEED FUNCTIONS PROGRAMMING B-64694EN/01
- 98 -
Example
- For linear interpolation (G01)
distance
feedrate
time(min)
1 FRN = =
Feedrate: mm/min (for metric input)
inch/min (for inch input)
Distance: mm (for metric input)
inch (for inch input)
- To end a block in 1 (min)
1
1(min)
1
(min)
1 = = = time
FRN Specify F1.0.
- To end a block in 10 (sec)
6
10 / 60(sec)
1
(sec)/ 60
1 = = = time
FRN Specify F6.0.
- To find the movement time required when F0.5 is specified
2
0.5


key: chroma:document
string_value:
2
0.5
1 1 (min) = = = FRN
TIME 2 (min) is required.
- To find the movement time required when F10.0 is specified
6
10
1 60 60 (min) = = × = FRN
TIME 6 (sec) is required.
- For circular interpolation (G02, G03)
arcradius
feedrate
time
FRN = = (min)
1
Feedrate: mm/min (for metric input)
inch/min (for inch input)
Arc radius: mm (for metric input)
inch (for inch input)
NOTE
In the case of circular interpolation, the feedrate is calculated not from the actual


key: chroma:document
string_value:
amount of movement in the block but from the arcadias.
- Switching of a modal code in group 05
Usually, if a modal code in group 05 is switched using the feed selection command and the axis command 
is executed in cutting feed mode without specifying a feedrate (F), the feedrate (F) is inherited as modal 
data.
If bit 4 (MFC) of parameter No. 13450 is set to 1, the feedrate (F) is cleared if a modal code in group 05


key: chroma:document
string_value:
is switched. This causes alarm PS0011, "FEED ZERO (COMMAND)", to be issued in the cutting block. 
Thus, it is possible to prevent cutting from being executed at an unintended feedrate (F) that is inherited 
as modal data.


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 5. FEED FUNCTIONS
- 99 -
Example
Execute the program below by setting bit 4 (MFC) of parameter No. 13450 to 1.
At the block for switching from G94 to G95 (N06), alarm PS0011 is issued.
O0001 ;
N01 G90 G00 X0 Y0 ;
N02 M03 S100 ;
N03 G91 G01 ;
N04 G94 X10.0 F100.0 ;
N05 Y10.0 ;
N06 G95 X10.0 ; ⇒ Alarm PS0011 is issued.
N07 Y10.0;
M30;
NOTE
1 In G93 mode, if the axis command and the feedrate (F) command are not in the


key: chroma:document
string_value:
same block, alarm PS1202, "NO F COMMAND AT G93" is issued regardless of 
the setting of this parameter.
2 If the G code of group 05 is cleared due to a reset, by setting bit 6 (CLR) of 
parameter No. 3402 to 1 and bit 5 (C05) of parameter No. 3406 to 0, so that the 
modal G code is switched, the feedrate (F) will be cleared even if bit 7 (CFH) of 
parameter No. 3409 is set to 1.
3 If bit 7 (FC0) of parameter No. 1404 is set to 1, alarm PS0011 is not issued and


key: chroma:document
string_value:
the block is executed with a feedrate of 0 even if the feed selection command is 
used to switch the modal code of group 05 and the axis command is executed in 
cutting feed mode without specifying a feedrate (F). In G93 mode, alarm PS1202 
is issued regardless of the setting of the parameter bit FC0.
4 Alarm PS0011 or PS1202 is not used even if the feed selection command is 
used to switch the modal code of group 05 and the axis command is executed in


key: chroma:document
string_value:
cutting feed mode without specifying a feedrate (F), provided that the travel 
distance is 0.
5 Alarms PS0011 and PS1202 are issued if the feed selection command is used to 
switch the modal code of group 05 and the axis command is executed in cutting 
feed mode without specifying a feedrate (F), even if cutting feedrate (parameter 
No. 1411) during automatic operation is set. (M series.)
- One-digit F code feed
M


key: chroma:document
string_value:
- One-digit F code feed
M
When a one-digit number from 1 to 9 is specified after F, the feedrate set for that number in a parameters
Nos. 1451 to 1459 is used. When F0 is specified, the rapid traverse rate is applied.
The feedrate corresponding to the number currently selected can be increased or decreased by turning on 
the switch for changing one-digit F feedrate on the machine operator's panel, then by rotating the manual 
pulse generator.


key: chroma:document
string_value:
pulse generator.
The increment/decrement, ∆F, in feedrate per scale of the manual pulse generator is as follows:
X
F F
100
max ∆ =
Fmax : Feedrate upper limit for F1-F4 set by parameter No.1460, or feedrate upper limit for 
F5-F9 set by parameter No.1461
X : Any value of 1-127 set by parameter No.1450
The feedrate set or altered is kept even while the power is off. The current feed rate is displayed on the 
LCD screen.


key: chroma:document
string_value:
5. FEED FUNCTIONS PROGRAMMING B-64694EN/01
- 100 -
- Cutting feedrate clamp
Parameter No. 1430 can be used to specify the maximum cutting feedrate for each axis. When the cutting 
feedrate along an axis exceeds the maximum feedrate for the axis as a result of interpolation, the cutting 
feedrate is clamped to the maximum feedrate.
Reference
See Appendix D for range of feedrate command value.
5.4 CUTTING FEEDRATE CONTROL
Cutting feedrate can be controlled, as indicated in Table 5.4(a).


key: chroma:document
string_value:
Table 5.4 Cutting Feedrate Control
Function name G code Validity of G code Description
Exact stop G09 This function is valid for 
specified blocks only.
The tool is decelerated at the end point of a 
block, then an in-position check is made. 
Then the next block is executed.
Exact stop mode G61
Once specified, this 
function is valid until G62, 
G63, or G64 is specified.
The tool is decelerated at the end point of a 
block, then an in-position check is made. 
Then the next block is executed.


key: chroma:document
string_value:
Cutting mode G64
Once specified, this 
function is valid until G61, 
G62, or G63 is specified.
The tool is not decelerated at the end point 
of a block, but the next block is executed.
Tapping mode G63
Once specified, this 
function is valid until G61, 
G62, or G64 is specified.
The tool is not decelerated at the end point 
of a block, but the next block is executed.
When G63 is specified, feedrate override 
and feed hold are invalid.
Automatic 
corner 
override
Automatic 
override for


key: chroma:document
string_value:
Automatic 
override for 
inner corners
G62
Once specified, this 
function is valid until G61, 
G63, or G64 is specified.
When the tool moves along an inner corner 
during tool radius compensation, override is 
applied to the cutting feedrate to suppress 
the amount of cutting per unit of time so 
that a good surface finish can be produced.
Internal circular 
cutting feedrate 
change
-
This function is valid in 
the tool radius 
compensation mode, 
regardless of the G code.


key: chroma:document
string_value:
regardless of the G code.
The internal circular cutting feedrate is 
changed.
NOTE
1 The purpose of in-position check is to check that the servo motor has reached 
within a specified range (specified with a parameter by the machine tool builder).
In-position check is not performed when bit 5 (NCI) of parameter No. 1601 is set 
to 1.
2 Spindle override is enabled during tapping mode.
3 Inner corner angle θ: 2° < θ ≤ α ≤ 178°
(α is a set value)
Workpiece
θ
Tool


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 5. FEED FUNCTIONS
- 101 -
Format
Exact stop G09 IP_ ;
Exact stop mode G61 ;
Cutting mode G64 ;
Tapping mode G63 ;
Automatic corner override G62 ;
5.4.1 Exact Stop (G09, G61), Cutting Mode (G64), Tapping Mode 
(G63)
Explanation
The inter-block paths followed by the tool in the exact stop mode, cutting mode, and tapping mode are 
different.
At the end point of a block specifying exact stop (G09), or each block during exact stop mode (G61),


key: chroma:document
string_value:
cutting feed is decelerated and an in-position check is performed (Fig. 5.4.1 (a)).
In-position check
Tool path
(1)
(2)
Y
 0 X
Exact stop
G09 G01 Y10.0 F1000.0; (1)
X2.0; (2)
Exact stop mode
G61;
G01 Y10.0 F1000.0; (1)
X2.0; (2)
Fig. 5.4.1 (a) Example of tool path when G09 or G61 is executed
At the end of each block during tapping mode (G63) or cutting mode (G64), deceleration of cutting feed 
is not performed and execution proceeds to the next block (Fig. 5.4.1 (b)).
Tool path


key: chroma:document
string_value:
Tool path
Program path
(1)
(2)
Y
 0 X
Tapping mode
G63;
G01 Y10.0 F1000.0; (1)
X2.0; (2)
Cutting mode
G64;
G01 Y10.0 F1000.0; (1)
X2.0; (2)
Fig. 5.4.1 (b) Example of tool path when G63 or G64 is executed
CAUTION
The cutting mode (G64 mode) is set at power-on or system clear.
- Restriction on tapping mode (G63)
There are restrictions when the following functions are used. Please refer to each function for detail.
- Retrace
- AI contour control


key: chroma:document
string_value:
5. FEED FUNCTIONS PROGRAMMING B-64694EN/01
- 102 - 
5.4.2 Automatic Corner Override 
M
When tool radius compensation is performed, the movement of the tool is automatically decelerated at an 
inner corner and internal circular area. This reduces the load on the tool and produces a smoothly 
machined surface. 
5.4.2.1 Automatic override for inner corners (G62) 
Explanation 
 - Override condition


key: chroma:document
string_value:
- Override condition 
When G62 is specified, and the tool path with tool radius compensation applied forms an inner corner, the 
feedrate is automatically overridden at both ends of the corner. 
 There are four types of inner corners (Fig. 5.4.2.1 (a)). 
 2°≤θ≤θp≤178° in Fig. 5.4.2.1 (a). 
θp is a value set with parameter No. 1711. When θ is approximately equal to θp, the inner corner is 
determined with an error of 0.001° or less. 
θ
θ
θ
θ
: Tool 
: Programmed path 
: Tool center path


key: chroma:document
string_value:
: Tool center path 
1. Straight line-straight line 2. Straight line-arc 
3. Arc-straight line 4. Arc-arc 
Fig. 5.4.2.1 (a) Inner corner 
 - Override range 
When a corner is determined to be an inner corner, the feedrate is overridden before and after the inner 
corner. The distances Ls and Le, where the feedrate is overridden, are distances from points on the tool 
center path to the corner (Fig. 5.4.2.1 (b), Fig. 5.4.2.1 (c), Fig. 5.4.2.1 (d)). Ls and Le are set with


key: chroma:document
string_value:
parameters Nos. 1713 and 1714. 
Programmed path 
Le 
a b 
Ls 
Tool center path 
The feedrate is overridden from point a to point b. 
Fig. 5.4.2.1 (b) Override Range (Straight Line to Straight Line)


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 5. FEED FUNCTIONS
- 103 -
When a programmed path consists of two arcs, the feedrate is overridden if the start and end points are in 
the same quadrant or in adjacent quadrants (Fig. 5.4.2.1 (c)).
Fig. 5.4.2.1 (c) Override Range (Arc to Arc)
Regarding program (2) of an arc, the feedrate is overridden from point a to point b and from point c to 
point d (Fig. 5.4.2.1 (d)).
c
d a
Le Ls
b
Ls Le
(2)
Programmed path
Tool center path
Tool


key: chroma:document
string_value:
Tool center path
Tool
Fig. 5.4.2.1 (d) Override Range (Straight Line to Arc, Arc to Straight Line)
- Override value
An override value is set with parameter No. 1712. An override value is valid even for dry run and 
one-digit F code feed specification.
In the feed per minute mode, the actual feedrate is as follows:
 F × (automatic override for inner corners) × (feedrate override)
Limitation
- Look-ahead acceleration/deceleration before interpolation


key: chroma:document
string_value:
Override for inner corners is disabled during look-ahead acceleration/deceleration before interpolation.
- Start-up/G41, G42
Override for inner corners is disabled if the corner is preceded by a start-up block or followed by a block 
including G41 or G42.
- Offset 
Override for inner corners is not performed if the offset is zero.


key: chroma:document
string_value:
5. FEED FUNCTIONS PROGRAMMING B-64694EN/01
- 104 -
5.4.2.2 Internal circular cutting feedrate change
For internally offset circular cutting, the feedrate on a programmed path is set to a specified feedrate (F) 
by specifying the circular cutting feedrate with respect to F, as indicated below (Fig. 5.4.2.2 (a)). This 
function is valid in the tool radius compensation mode, regardless of the G62 code. 
 F × Rc / Rp
Rc : Tool center path radius
Rp : Programmed radius


key: chroma:document
string_value:
Rp : Programmed radius
It is also valid for the dry run and the one-digit F code feed command.
Rc
Rp
Programmed path
Tool center 
path
Fig. 5.4.2.2 (a) Internal circular cutting feedrate change
If Rc is much smaller than Rp, Rc/Rp 0; the tool stops. A minimum deceleration ratio (MDR) is to be 
specified with parameter No. 1710. When Rc/Rp≤MDR, the feedrate of the tool is (F×MDR).
If parameter No. 1710 is 0, the minimum deceleration ratio (MDR) is at 100%.
CAUTION


key: chroma:document
string_value:
CAUTION
When internal circular cutting must be performed together with override for inner 
corners, the feedrate of the tool is as follows:
× × (override for the inner corners)× (feedrate override) Rp
Rc F


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 5. FEED FUNCTIONS
- 105 -
5.5 FEEDRATE INSTRUCTION ON IMAGINARY CIRCLE FOR 
A ROTARY AXIS
Overview
For the feedrate instruction on imaginary circle for a rotary axis, a circle with the radius specified with 
parameter No. 1465 (which is referred to as an imaginary circle) is considered, and the feedrate of the 
rotary axis is set to the feedrate on its circumference.
Explanation
- Cutting feedrate
Conventional method


key: chroma:document
string_value:
Conventional method
Usually, the feedrate of a rotary axis is set to the rotation feedrate (deg/mm).
Feedrate of liner axis(X axis) X (mm min) L
X F F /
∆ = ×
Feedrate of rotary axis(C axis) C (deg min) L
C F F /
∆ = ×
Synthetic movement distance L X Y Z C (mm)
2 2 2 2 = ∆ + ∆ + ∆ + ∆
Movement time (min) F
L T =
Feedrate instruction on imaginary circle of a rotary axis
For the feedrate instruction on imaginary circle for a rotary axis, the feedrate of the rotary axis is set to


key: chroma:document
string_value:
the movement feedrate on an imaginary circle with the radius specified with parameter No. 1465.
By setting the imaginary radius to 0, the rotary axis can be excluded from feedrate calculation.
Rotary axis feedrate
Imaginary 
radius
X
Y
Program example
N1G91G01X10.F10.
N2C10.
N2
N1
C
Imaginary circle
Fig. 5.5 (a) 
Feedrate of liner axis(X axis) X (mm min) L
X F F / ′
∆ = ×
Feedrate of rotary axis(C axis) C (deg min) L
C F F / ′
∆ = ×
Synthetic movement distance (mm)
lC C L X Y Z
2


key: chroma:document
string_value:
lC C L X Y Z
2
2 2 2
180 

 

 × × ∆ ′ = ∆ + ∆ + ∆ +
π
Movement time (min) F
L T ′ ′ =
lC : imaginary radius(parameter No.1465)


key: chroma:document
string_value:
5. FEED FUNCTIONS PROGRAMMING B-64694EN/01
- 106 -
For the feedrate instruction on imaginary circle for a rotary axis, due to the difference in how to determine 
the movement distance, if a particularly small value is set for the imaginary radius, the movement on the 
axis will be fast. Pay careful attention to the input to the parameter.
A cutting feedrate clamp is performed based on the per-axis maximum cutting feedrate parameter No.


key: chroma:document
string_value:
1430 and the actual speed on the axis (data before conversion). Thus, if a large value is set for the 
imaginary radius parameter No. 1465, a command can be issued with a feedrate exceeding the setting of 
the maximum cutting feedrate, and if a small value is set for the imaginary radius, the feedrate is clamped 
below the setting of the maximum cutting feedrate.
Note that the feedrate instruction on imaginary circle for a rotary axis is also effective to a dry run.
- AI Contour Control


key: chroma:document
string_value:
- AI Contour Control
AI contour control is performed on the movement speed on an imaginary circumference. The movement 
feedrate may, therefore, not be the feedrate for the calculation in the feedrate instruction on imaginary 
circle for a rotary axis if the feedrate is changed with the feedrate control of AI contour control. The 
feedrate during AI contour control is clamped with parameter No. 1432. If parameter No. 8465 is not 0, 
the feedrate is clamped with parameter No. 8465.


key: chroma:document
string_value:
- If the imaginary radius is 0 mm
If the imaginary radius is 0 mm, the travel distance on the rotary axis is 0 mm. Thus, the combined travel 
distance is
2 2 2 L′ = ∆X + ∆Y + ∆Z
It is, therefore, possible to exclude the speed component on the rotary axis and regard the movement 
speed on the linear axis as specified speed F.
If only a rotary axis is specified with this setting, a movement occurs at the maximum cutting feedrate.
Examples
- Example 1
If, in the increment system IS-B,


key: chroma:document
string_value:
G91 G01 C10. F10. ;
is specified,
(1) If 10.000 (10 mm) is set for the imaginary radius parameter No. 1465, the calculating formula is:
( )
( ) ( )
( / )
( )
( / )
( )
( )
/ min
( )
2
( ) ( )
2
0.17453292 10.4719755
10
1.7453292
57.2957795
1.7453292
10
10
1.7453292
180
10 10
180
min sec
mm min
mm
deg min
mm
deg
C mm
mm
C mm deg
F
L T
F
l C
L
= ⋅ ⋅ ⋅ = ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ =
′ ′ =
= ⋅ ⋅ ⋅ ⋅ ⋅ ⋅ = ×
= ⋅ ⋅ ⋅ 






 × ×  = 
 

 × × ∆ ′ = π π


key: chroma:document
string_value:
 

 × × ∆ ′ = π π
Thus, the movement time is about 10.472 sec, and the rotation speed is about 57.296 deg/min. The 
speed on the imaginary radius of 10.000 mm in Fig. 5.5 (b) above is regarded as the specified speed, 
10.000 mm/min.


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 5. FEED FUNCTIONS
- 107 -
(2) If 36.000 (36 mm) is set for the imaginary radius parameter No. 1465, the movement time is:
( )
( ) ( )
( / )
( )
( / )
( )
( )
/
( )
2
( ) ( )
2
0.628318530 37.6991118
10
6.28318530
15.9154943
6.28318530
10
10
6.28318530
180
36 10
180
min sec
mm min
mm
deg min
mm
deg
C mm min
mm
C mm deg
F
L T
F
l C
L
= ⋅⋅⋅ = ⋅⋅⋅ ⋅⋅⋅ =
′ ′ =
= ⋅⋅⋅ ⋅⋅⋅ = ×
= ⋅⋅⋅ 






 × ×  = 
 

 × ×∆ ′ = π π


key: chroma:document
string_value:
 

 × ×∆ ′ = π π
Thus, the movement time is about 37.700 sec, and the rotation speed is about 15.915 deg/min. The 
speed on the imaginary radius of 36.000 mm in Fig. 5.5 (b) above is regarded as the specified speed, 
10.000 mm/min.
10mm
36mm
Specified speed
F=10mm/min
Rotation speed when 
10 mm is set
Rotation speed when 
36 mm is set ...(2)
Fig. 5.5 (b)
- Example 2
In a machine in which the tool direction is changed with a rotary axis, such as that shown in Fig. 5.5 (c), it


key: chroma:document
string_value:
is possible to specify the movement speed at the reference position with F by enabling the feedrate 
instruction on imaginary circle for a rotary axis and setting the imaginary radius parameter No. 1465 to 0 
mm. Reference 
position
The speed component on 
the rotary axis is excluded.
The specified speed F is 
regarded as the movement 
speed at the reference position.
Fig. 5.5 (c)
Limitation
The feedrate instruction on imaginary circle for a rotary axis supports linear interpolation (G01) only.


key: chroma:document
string_value:
It does not support the following functions:
- Feed per revolution (G95)
- Normal direction control
- Cylindrical interpolation
- PMC axis control


key: chroma:document
string_value:
5. FEED FUNCTIONS PROGRAMMING B-64694EN/01
- 108 -
M
- Inverse time feed (G93)
T
- Polar coordinate interpolation
NOTE
1 The feedrate instruction on imaginary circle for a rotary axis is enabled if bit 0 
(ROTx) of parameter No. 1006 and bit 0 (RFDx) of parameter No. 1408 are 1.
2 The imaginary radius parameter No. 1465 of the feedrate instruction on 
imaginary circle for a rotary axis can be overwritten with a programmable 
parameter input (G10).


key: chroma:document
string_value:
parameter input (G10).
3 If the feedrate instruction on imaginary circle for a rotary axis is enabled, setting 
0 in the imaginary radius parameter No. 1465 and only a rotary axis is specified, 
a movement occurs with the maximum cutting feed.
4 Great care is required for the settings of bit 0 (RFDx) of parameter No. 1408 and 
the imaginary radius parameter No. 1465. Of particular note is that if a small 
value is set for the imaginary radius and the feedrate instruction on imaginary


key: chroma:document
string_value:
circle for a rotary axis is used, the movement on the axis is faster than when the 
command is not used.
5 If feed axis synchronization control is used in the feedrate instruction on 
imaginary circle for a rotary axis, the settings of parameters Nos. 1408 and 1465 
for the master axis are also used for the slave axis.
5.6 DWELL
Format
M
G04 X_; or G04 P_;
X_ :Specify a time or spindle speed (decimal point permitted)
P_ :Specify a time or spindle speed (decimal point not permitted)
T


key: chroma:document
string_value:
T
G04 X_ ; or G04 U_ ; or G04 P_ ;
X_ :Specify a time or spindle speed (decimal point permitted)
U_ :Specify a time or spindle speed (decimal point permitted)
P_ :Specify a time or spindle speed (decimal point not permitted)
Explanation
By specifying a dwell, the execution of the next block is delayed by the specified time. (Dwell per 
second)
By setting bit 1 (DWL) of parameter No. 3405 in the feed per revolution mode, the execution of the next


key: chroma:document
string_value:
block is delayed until the rotation count of the spindle reaches the specified number. (Dwell per 
revolution)
Table 5.6 (a) Command value range of the dwell time (Command by X or U)
Increment system Command value range Dwell time unit
IS-A 0.01 to 999999.99
IS-B 0.001 to 99999.999 s or rev
IS-C 0.0001 to 9999.9999


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 5. FEED FUNCTIONS
- 109 -
Table 5.6 (b) Command value range of the dwell time (Command by P)
Increment system Command value range Dwell time unit
IS-A 1 to 99999999 0.01 s or rev
IS-B 1 to 99999999 0.001 s or rev
IS-C 1 to 99999999 0.0001 s or rev
In the case of dwell per second, the specification unit for dwell time specified with P can be fixed at 0.001 
second by setting bit 7 (DWT) of parameter No. 1015 to 1.
NOTE


key: chroma:document
string_value:
NOTE
1 When X, U, or P is specified without a decimal point, the specification unit does 
not depend on inch/metric input. Depending on whether the X-axis is present, 
the following increment system is used:
- When the X-axis is present
The increment system of the X-axis is used.
- When the X-axis is not present
The increment system of the reference axis is used.
2 When P is specified, bit 7 (IPR) of parameter No. 1004 exercises no influence.


key: chroma:document
string_value:
3 Specify dwell in a single block specifying no other codes.
While dwell is being executed, 1 is set for diagnosis data No. 0002.
M
Specify dwell also to make an exact stop in the cutting mode (G64 mode).
If the specification of P and X is omitted, an exact stop occurs.
Diagnosis data
2 Dwell execution status
While dwell is being executed, 1 is displayed, and 0 is displayed during the non-execution.


key: chroma:document
string_value:
6. REFERENCE POSITION PROGRAMMING B-64694EN/01
- 110 -
6 REFERENCE POSITION
A CNC machine tool has a special position where, generally, the tool is exchanged or the coordinate 
system is set, as described later. This position is referred to as a reference position.
6.1 REFERENCE POSITION RETURN
Overview
- Reference position
The reference position is a fixed position on a machine tool to which the tool can easily be moved by the 
reference position return function.


key: chroma:document
string_value:
For example, the reference position is used as a position at which tools are automatically changed. Up to 
four reference positions can be specified by setting coordinates in the machine coordinate system in 
parameters Nos. 1240 to 1243.
Reference position
Machine zero point
3rd reference position
2nd reference position
4th reference 
position
Y
X
Fig. 6.1 (a) Machine zero point and reference positions
- Automatic reference position return (G28) and movement from the reference


key: chroma:document
string_value:
position (G29)
The automatic reference position return (G28) function returns tools automatically to the reference 
position via an intermediate position along a specified axis. 
The intermediate position means the relay point for the axes movement in order to avoid collision when 
there is the interference object on the way of the reference position return.
When reference position return is completed, the lamp for indicating the completion of reference position


key: chroma:document
string_value:
return goes on. The return from reference position (G29) function moves tools from the reference position 
to a specified position via an intermediate position along a specified axis.


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 6. REFERENCE POSITION
- 111 -
A (Starting point for reference 
position return)
C (Destination of return from 
the reference position)
R (Reference position)
Automatic reference position return (G28)
A → B → R
Movement from the reference position (G29)
B (Intermediate R → B → C
position)
Interference object
Fig. 6.1 (b) Reference position return and movement from the reference position


key: chroma:document
string_value:
If you want to return directly the axes to the reference position from the current position, please specify 
the incremental command of travel distance zero or the absolute command to current position in the G28 
block of the return axes. In this case, an intermediate position is regarded to the current position. The axes 
are moved to commanded position after passing the starting point of reference position return when the 
G29 command is specified.
C (Destination of return from


key: chroma:document
string_value:
C (Destination of return from 
the reference position)
R (Reference position)
Automatic reference position return (G28)
A → R
Movement from the reference position (G29)
R → A → C
A (Starting point of reference 
position return = intermediate 
position)
Fig. 6.1 (c) Reference position return and movement from the reference position
- Reference position return check (G27)
The reference position return check (G27) is the function which checks whether the tool has correctly


key: chroma:document
string_value:
returned to the reference position as specified in the program. If the tool has correctly returned to the 
reference position along a specified axis, the lamp for the axis for indicating the completion of reference 
position return goes on.
If the tool has not reached the reference position, an alarm PS0092, "ZERO RETURN CHECK (G27) 
ERROR" is issued.
When no movement was made along the axis, whether the current position is the reference position is 
checked.


key: chroma:document
string_value:
checked.
- In-position check disable reference position return (G28.2, G30.2)
You can disable in-position check at a middle point and reference position by specifying G28.2 or G30.2 
as a reference point return command.


key: chroma:document
string_value:
6. REFERENCE POSITION PROGRAMMING B-64694EN/01
- 112 -
Format
- Automatic reference position return and 2nd/3rd/4th reference position return
In-position check disable reference position return
G28 IP_; Reference position return
G30 P2 IP_; 2nd reference position return (P2 can be omitted.)
G30 P3 IP_; 3rd reference position return
G30 P4 IP_; 4th reference position return
G28.2 IP_; In-position check disable reference position return


key: chroma:document
string_value:
G30.2 P2 IP_; In-position check disable 2nd reference position return (P2 can be 
omitted.)
G30.2 P3 IP_; In-position check disable 3rd reference position return
G30.2 P4 IP_; In-position check disable 4th reference position return
IP : Specify the intermediate position in the absolute coordinate system.
(absolute/incremental programming)
There is no need to calculate an actual travel distance between the intermediate 
position and the reference position.
- Movement from reference position


key: chroma:document
string_value:
G29 IP_;
IP : Specify the destination of return from the reference position in the absolute coordinate 
system. (absolute/incremental programming)
The intermediate position is determined by G28 or G30 specified immediately before 
this command.
- Reference position return check
G27 IP_;
IP : Specify positioning to the reference position in the absolute coordinate system so as to 
return to the reference position. (absolute/incremental programming)
Explanation


key: chroma:document
string_value:
Explanation
- Automatic reference position return (G28)
Positioning to the intermediate or reference positions are performed at the rapid traverse rate of each axis.
Therefore, for safety, the compensation functions, such as the tool radius compensation and tool length 
compensation, should be cancelled before executing this command.
The coordinates for the intermediate position are stored in the CNC for the axes for which a value is


key: chroma:document
string_value:
specified in a G28 block. For the other axes, the previously specified coordinates are used. 
(Example)
N1 G28 X40.0 ; (The tool moves to the reference position along the X-axis and the 
intermediate position (X40.0) is stored.)
N2 G28 Y60.0 ; (The tool moves to the reference position along the Y-axis and the 
intermediate position (Y60.0) is stored.)
N3 G29 X10.0 Y20.0 ; (The tool moves to the position specified with G29 via the intermediate


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 6. REFERENCE POSITION
- 113 -
- 2nd, 3rd, and 4th reference position return (G30)
The 2nd, 3rd, and 4th reference position return (G30) function can be used after the reference positions 
are established.
The G30 command is generally used when the automatic tool changer (ATC) position differs from the 
reference position.
- Movement from the reference position (G29)
This function is executed after the tool is returned to the reference position by G28 or G30.


key: chroma:document
string_value:
For incremental programming, the command value specifies the incremental value from the intermediate 
point.
The tool moves to the intermediate and specified positions at the feedrate specified with a parameter.
When the workpiece coordinate system is changed after the tool reaches the reference position through 
the intermediate point by the G28 command, the intermediate point also shifts to a new coordinate system.


key: chroma:document
string_value:
If G29 is then commanded, the tool moves to the commanded position through the intermediate point 
which has been shifted to the new coordinate system.
The same operations are performed also for G30 command.
After the power is turned on, an alarm PS0305, “INTERMEDIATE POSITION IS NOT ASSIGNED” is 
issued if an attempt is made to execute G29 (movement from the reference position) before G28 
(automatic reference position return) or G30 (2nd, 3rd, and 4th reference position return) is executed.


key: chroma:document
string_value:
- Reference position return check (G27)
G27 command positions the tool at rapid traverse rate. If the tool reaches the reference position, the lamp 
for indicating the completion of reference position return lights up. 
When the tool returns to the reference position along only one axis, the lamp for the axis for indicating 
the completion of reference position return lights up.
After positioning, if the tool has not reached the reference position along a specified axis, an alarm


key: chroma:document
string_value:
PS0092, "ZERO RETURN CHECK (G27) ERROR" is issued.
When no movement was made along the axis, whether the current position is the reference position is 
checked.
- In-position check disable reference position return (G28.2, G30.2)
You can disable in-position check at a middle point and reference position by specifying G28.2 or G30.2 
as a reference point return command.
Disabling the in-position check at the middle point and reference position reduces the cycle time.


key: chroma:document
string_value:
Note that, if the G28.2 command causes reference position return at low speed, the in-position check is 
disabled at the middle point but enabled at the reference position.
In the operations of and restrictions on reference position return, G28.2 and G30.2 are the same as G28 
and G30, except for in-position check.
- Setting of the reference position return feedrate
Before a reference position is established with the first reference position return after power-on, the


key: chroma:document
string_value:
manual and automatic reference position return feedrates and automatic rapid traverse rate conform to the 
setting of parameter No. 1428 for each axis. 
After a reference position is established upon the completion of reference position return, the manual 
reference position return feedrate conforms to the setting of the parameter No. 1428 for each axis.


key: chroma:document
string_value:
6. REFERENCE POSITION PROGRAMMING B-64694EN/01
- 114 -
NOTE
1 To this feedrate, a rapid traverse override (F0,25,50,100%) is applied, for which 
the setting is 100%.
2 After a reference position has been established upon the completion of reference 
position return, the automatic reference position return feedrate will conform to 
the ordinary rapid traverse rate.
3 When a value is set for parameter No. 1428, the feedrates conform to the 
parameter settings shown below.


key: chroma:document
string_value:
1420: Rapid traverse rate 1423: Jog feedrate
1424: Manual rapid traverse rate 1428: Reference position return feedrate
When parameter No. 1428 is set to 0, the feedrates conform to the parameter 
settings shown below.
*1 By using bit 2 (JZR) of parameter No. 1401, the manual reference position
return feedrate can always be set as a jog feedrate.
*2 When bit 0 (RPD) of parameter No. 1401 is 1, the setting of parameter No. 
1424 (manual rapid traverse rate) is used.


key: chroma:document
string_value:
When the setting of parameter No. 1424 (manual rapid traverse rate) is 0, 
parameter No. 1420 (rapid traverse rate) is used.
*3 When reference position return without dogs is performed in rapid traverse 
mode, or when manual reference position return is performed in rapid 
traverse mode regardless of deceleration dogs after a reference position is 
established, the reference position return feedrate for each of these functions 
(setting of bit 1 (DLF) of parameter No. 1404) is used.
Limitation


key: chroma:document
string_value:
Limitation
- Status the machine lock being turned on
The lamp for indicating the completion of reference position return does not go on when the machine lock 
is turned on, even when the tool has automatically returned to the reference position. In this case, it is not 
checked whether the tool has returned to the reference position even when a reference position return 
check command is specified.
- When automatic reference position return (G28) is executed if no reference 
position is established


key: chroma:document
string_value:
position is established
When automatic reference position return (G28) is executed if no reference position is established, 
movement from the intermediate position in a reference position direction is the same as that in manual 
reference position return.
(This movement is referred to as a low-speed type of automatic reference position return (G28).)
Before a reference position
is established
After a reference position is 
established
Automatic reference position return (G28) No. 1428 No.1420


key: chroma:document
string_value:
Automatic rapid traverse (G00) No.1428 No.1420
Manual reference position return (*1) No.1428 No.1428 (*3)
Manual rapid traverse rate No.1423 (*2) No.1424
Before a reference position
is established
After a reference position is 
established
Automatic reference position return (G28) No. 1420 No.1420
Automatic rapid traverse (G00) No.1420 No.1420
Manual reference position return (*1) No.1424 No.1424 (*3)
Manual rapid traverse rate No.1423 (*2) No.1424


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 6. REFERENCE POSITION
- 115 -
In this case, the tool moves in the direction for reference position return specified in bit 5 (ZMIx) of 
parameter No. 1006. Therefore the specified intermediate position must be a position to which reference 
position return is possible.
NOTE
When automatic reference position return (G28) is executed after a reference 
position is established, positioning is performed from the intermediate position to


key: chroma:document
string_value:
the reference position. This movement is referred to as a high-speed type of 
automatic reference position return (G28).
- Reference position return check in an offset mode
In an offset mode, the position to be reached by the reference position return check is the position 
obtained by adding the offset value. 
Therefore, if the position with the offset value added is not the reference position, the lamp for indicating


key: chroma:document
string_value:
the completion of reference position return does not light up, but an alarm is displayed instead. Usually, 
cancel offsets before G27 is commanded.
- Lighting the lamp when the programmed position does not coincide with the 
reference position
When the machine tool system is an inch system with metric input, the lamp for indicating the completion 
of reference position return may also light up even if the programmed position is shifted from the


key: chroma:document
string_value:
reference position by the least setting increment. This is because the least setting increment of the 
machine tool system is smaller than its least command increment.
- Automatic reference position return (G28) if roll over is used on a rotation axis 
(type A)
If, in an absolute command for automatic reference position return (G28) on a rotation axis, the rotation 
axis is of type A (bit 0 (ROT) of parameter No. 1006 = 1 and bit 1 (ROS) of parameter No. 1006 = 0) and


key: chroma:document
string_value:
roll over is used (bit 0 (ROA) of parameter No. 1008 = 1), movement to the midpoint follows the setting 
of bit 1 (RAB) of parameter No. 1008, and movement from the midpoint to the reference position follows 
the setting of bit 5 (ZMI) of parameter No. 1006.
If, however, bit 6 (RRF) of parameter No. 1008 is set to 1, movement from the midpoint to the reference 
position also follows the setting of bit 1 (RAB) of parameter No. 1008.
- Restriction on automatic reference position return (G28)


key: chroma:document
string_value:
There are restrictions when the following functions are used. Please refer to each function for detail.
- Mirror image
- Plane conversion
- Machine lock
- Extension of the manual handle retrace function
- Improvement of tool compensation for tool retract and recover
- Retrace
- Positioning by optimum accelerations
- In-position check disable signal
- Axis switching
- Spindle electronic gear box
- Superimposed control
- Simple spindle electronic gear box
- Electronic gear box
- Figure copying


key: chroma:document
string_value:
- Figure copying
- Programmable mirror image
- Flexible synchronization control
- Inter-path flexible synchronization control


key: chroma:document
string_value:
6. REFERENCE POSITION PROGRAMMING B-64694EN/01
- 116 -
- High precision oscillation function
- High-speed program check function
- Synchronous control
- Composite control
- Tool functions of lathe system
- Normal direction control
- Compensation function
- Coordinate system rotation
- Cutter compensation and tool nose radius compensation
- Tool length compensation
- Scaling
- Restriction on 2nd, 3rd, and 4th reference position return (G30)


key: chroma:document
string_value:
There are restrictions when the following functions are used. Please refer to each function for detail.
- Plane conversion
- Machine lock
- Improvement of tool compensation for tool retract and recover
- Retrace
- In-position check disable signal
- Axis switching
- Superimposed control
- Electronic gear box
- Programmable mirror image
- Flexible synchronization control
- Tool functions of lathe system
- Normal direction control
- Compensation function
- Coordinate system rotation


key: chroma:document
string_value:
- Coordinate system rotation
- Cutter compensation and tool nose radius compensation
- Tool length compensation
- Scaling
- Restriction on reference position return check (G27)
There are restrictions when the following functions are used. Please refer to each function for detail.
- Machine lock
- Retrace
- Superimposed control
- Electronic gear box
- Programmable mirror image
- Flexible synchronization control
- Compensation function
- Coordinate system rotation
- Scaling


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 6. REFERENCE POSITION
- 117 -
Example
- When the reference position return is executed directly from the current 
position without passing an intermediate position.
G28G91X0Y0 ; (The axes are directly moved to reference position R from starting point A 
without passing an intermediate position.)
200
300
500
200 1000 1300
Y
X
Automatic reference position return (G28)
A → R
A (Starting point for reference position return)
R (Reference position)


key: chroma:document
string_value:
R (Reference position)
Fig. 6.1 (d) Reference position return and movement from the reference position
- When the movement passes an intermediate position.
G28G90X1000.0Y500.0 ; (Programs movement from A to B. The tool moves to reference position R via 
intermediate position B.)
T1111 ; (Changing the tool at the reference position)
G29X1300.0Y200.0 ; (Programs movement from B to C. The tool moves from reference position R 
to C specified with G29 via intermediate position B.)
200
300
500


key: chroma:document
string_value:
200
300
500
200 1000 1300
Y
X
Automatic reference position return (G28)
A → B → R
Movement from the reference position (G29)
R → B → C
A (Starting point for reference 
position return)
B (Intermediate 
position)
C (Destination of return from the 
reference position)
R (Reference position)
Fig. 6.1 (e) Reference position return and movement from the reference position


key: chroma:document
string_value:
7. COORDINATE SYSTEM PROGRAMMING B-64694EN/01
- 118 -
7 COORDINATE SYSTEM
By teaching the CNC a desired tool position, the tool can be moved to the position. Such a tool position is 
represented by coordinates in a coordinate system. Coordinates are specified using program axes.
When three program axes, the X-axis, Y-axis, and Z-axis, are used, coordinates are specified as follows:
 X_Y_Z_ 
This command is referred to as a dimension word.


key: chroma:document
string_value:
- For milling machining (Tool position specified by X40.0Y50.0Z25.0 )
Z
Y
X
40.0
50.0
25.0
Fig. 7 (a)
- For lathe cutting (Tool position specified by X50.0 Z40.0)
X
Zero point
40.0
Z
Fig. 7 (b)
Coordinates are specified in one of following three coordinate systems:
(1) Machine coordinate system
(2) Workpiece coordinate system
(3) Local coordinate system
The number of the axes of a coordinate system varies from one machine to another. So, in this manual, a


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 7. COORDINATE SYSTEM
- 119 -
7.1 MACHINE COORDINATE SYSTEM
The point that is specific to a machine and serves as the reference of the machine is referred to as the 
machine zero point. A machine tool builder sets a machine zero point for each machine.
A coordinate system with a machine zero point set as its origin is referred to as a machine coordinate 
system.
A machine coordinate system is set by performing manual reference position return after power-on (see


key: chroma:document
string_value:
III Section 3.1, “MANUAL REFERENCE POSITION RETURN”). A machine coordinate system, once 
set, remains unchanged until the power is turned off.
The reference position is not always the origin of the machine coordinate system.
(See Item, "Setting a machine coordinate system" described later.)
Format
M
(G90)G53 IP _ P1;
IP_ : Absolute command dimension word
P1 : Enables the high-speed G53 function.
(G90)G53.2 G01 IP＿F＿;
IP_ : Absolute command dimension word
F_ : Feedrate
T
G53 IP _ P1;


key: chroma:document
string_value:
F_ : Feedrate
T
G53 IP _ P1;
IP_ : Absolute command dimension word
P1 : Enables the high-speed G53 function.
G53.2 G01 IP＿F＿;
IP_ : Absolute command dimension word
F_ : Feedrate
Explanation
- Selecting a machine coordinate system (G53)
When a command is specified the position on a machine coordinate system, the tool moves to the position 
by rapid traverse. G53, which is used to select a machine coordinate system, is a one-shot G code; that is,


key: chroma:document
string_value:
it is valid only in the block in which it is specified on a machine coordinate system. Specify an absolute 
command for G53. When an incremental command is specified, the G53 command is ignored. When the 
tool is to be moved to a machine-specific position such as a tool change position, program the movement 
in a machine coordinate system based on G53.
- High-speed G53 function
This function enables the inter-rapid traverse block overlap function between machine coordinate


key: chroma:document
string_value:
selection command (G53) and positioning (rapid traverse) command (G00) blocks, thus making it 
possible to execute the next rapid traverse command (G00) without decelerating to a stop at the end of the 
machine coordinate selection command (G53). Therefore, high-speed positioning is available even when 
the machine coordinate selection command (G53) is used.
Specifying P1 in a G53 block enables the high-speed G53 function.


key: chroma:document
string_value:
7. COORDINATE SYSTEM PROGRAMMING B-64694EN/01
- 120 -
- Selecting a machine coordinate system with feedrate (G53.2)
Positioning of machine coordinate system at a feed rate is available with the command of G53.2. The feed 
rate can be used in the modal of G01.
G53.2 is one shot G code. Moreover, the tool offset value is temporarily canceled by G53.2 command 
like G53.
As for the time constant, a usual feed rate are used. At the point of G53.2 command, the axis decelerates


key: chroma:document
string_value:
to a stop once like G53 command.
Feed per minute, feed per revolution, and inverse time feed of G codes of 05 group are available.
When group 01 G-code except G00/G01 is commanded with G53.2, the alarm PS5372, “IMPROPER 
MODAL G-CODE” is generated. And, when G53.2 is commanded while group 01 Modal G-code is the 
one except G00/G01, the alarm PS5372, “IMPROPER MODAL G-CODE (G53.2)” is generated.
Limitation
- Cancel of the compensation function


key: chroma:document
string_value:
When the G53 command is specified, cancel the compensation functions such as the cutter compensation, 
tool length compensation, tool nose radius compensation, and tool offset beforehand.
- G53 command immediately after power supply turning on
The Reference point by the manual Reference point return or G28 command should return once after 
turning on the power supply because it should set the machine coordinate system before it instructs in 
G53.


key: chroma:document
string_value:
G53. 
However, the operation is unnecessary for the machine with the absolute-position detector.
- Specification in the same block
M
Commands G50/G51, G50.1/G51.1, and G68/G69 cannot be specified in the same block where the G53 
command is specified.
T
Commands G50/G51 (except for G code system A), G50.1/G51.1, and G68.1/G69.1 cannot be specified 
in the same block where the G53 command is specified.
Note
NOTE
G53 is a G code for disabling buffering.


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 7. COORDINATE SYSTEM
- 121 -
Reference
- Setting a machine coordinate system
When manual reference position return is performed after power-on, a machine coordinate system is set 
so that the reference position is at the coordinate values of (a, β) set using parameter No.1240.
β
Reference position
Machine coordinate system
Machine zero point
a
Fig. 7.1 (a)
Example (selecting a machine coordinate system with specifying a feedrate)
N1 G90 G01 ;


key: chroma:document
string_value:
N1 G90 G01 ;
N2 G53.2 X50.0 Y100.0 F1000 ; Absolute command with feedrate F1000
N3 G53.2 X150.0 F500 ; Absolute command with feedrate F500
Fig. 7.1 (b)
Y axis
100
0
50 150 X axis
Temporarily decelerates and stops.


key: chroma:document
string_value:
7. COORDINATE SYSTEM PROGRAMMING B-64694EN/01
- 122 -
7.2 WORKPIECE COORDINATE SYSTEM
Overview
A coordinate system used for machining a workpiece is referred to as a workpiece coordinate system. A 
workpiece coordinate system is to be set with the CNC beforehand (setting a workpiece coordinate 
system).
A machining program sets a workpiece coordinate system (selecting a workpiece coordinate system).
A set workpiece coordinate system can be changed by shifting its origin (changing a workpiece


key: chroma:document
string_value:
coordinate system). 
7.2.1 Setting a Workpiece Coordinate System
A workpiece coordinate system can be set using one of three methods:
(1) Method using a workpiece coordinate system setting G code
A workpiece coordinate system is set by specifying a value in the program after a workpiece 
coordinate system setting G code.
(2) Automatic setting
If bit 0 (ZPR) of parameter No. 1201 is set to 1, a workpiece coordinate system is automatically set


key: chroma:document
string_value:
when manual reference position return is performed. (See Section, “MANUAL REFERENCE 
POSITION RETURN”.)
(3) Method using a workpiece coordinate system selection G code
Six workpiece coordinate systems can be set beforehand using the MDI unit. Program commands 
G54 to G59 can be used to select the workpiece axis to be used. (See Subsection, “Displaying and 
Setting the Workpiece Origin Offset Value”.)
When using an absolute command, establish the workpiece coordinate system in any of the above ways.


key: chroma:document
string_value:
Format
- Setting a workpiece coordinate system
M
(G90) G92 IP_
T
G50 IP_
Explanation
A workpiece coordinate system is set so that a point on the tool, such as the tool tip, is at specified 
coordinates.
M
If a coordinate system is set using G92 during tool length offset, a coordinate system in which the 
position before offset matches the position specified in G92 is set. Cutter compensation is cancelled 
temporarily with G92.
T


key: chroma:document
string_value:
temporarily with G92.
T
If IP_ is an incremental command value, the workpiece coordinate system is defined so that the current 
tool position coincides with the result of adding the specified incremental value to the coordinates of the 
previous tool position.
When bit 0 (WAB) of parameter No. 11279 is set to 1, the setting of the workpiece coordinate system is 
executed with absolute value even if the incremental mode (G91) in the G-code system B/C of the lathe 
system is selected.


key: chroma:document
string_value:
system is selected.
If a coordinate system is set using G50 during offset, a coordinate system in which the position before 
offset matches the position specified in G50 is set.


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 7. COORDINATE SYSTEM
- 123 -
Example
M
25.2 X
Z
23.0
0
X
Z
600.0
1200.0
0
If an absolute command is issued, the 
base point moves to the commanded 
position. In order to move the tool tip to 
the commanded position, the difference 
from the tool tip to the base point is 
compensated by tool length offset (see 
Section, “TOOL LENGTH 
COMPENSATION (G43, G44, G49)”).
(Example 2)
Setting the coordinate system by the G92X600.0Z1200.0; command (The


key: chroma:document
string_value:
base point on the tool holder is the start point for the program.)
Base point
(Example 1)
Setting the coordinate system by the 
G92X25.2Z23.0; command (The tool tip is the start 
point for the program.)
Fig. 7.2.1 (a)
T
Fig. 7.2.1 (b)
CAUTION
The set workpiece coordinate system depends on diameter programming or 
radius programming.
Notes
- Manual reference position return
When the manual reference position return is performed, the value of the workpiece coordinate system set


key: chroma:document
string_value:
by G code (G92, or G50 for the lathe system G-code system A) is cleared to 0. And when the automatic 
reference position return (G28) is performed, this workpiece coordinate system is not cleared to 0 but 
stored.


key: chroma:document
string_value:
7. COORDINATE SYSTEM PROGRAMMING B-64694EN/01
- 124 -
- Command for setting a workpiece coordinate system / clamp at maximum 
spindle speed in the tool length compensation mode
Executing a workpiece coordinate system setting G code command (G92 or, for G code system A in the 
lathe system, G50) presets a coordinate system in such a way that the specified position will be a 
pre-compensation position.
However, setting for workpiece coordinate system / clamp at maximum spindle speed cannot be used


key: chroma:document
string_value:
together with a block where tool length compensation vectors vary. For example, it cannot be used 
together with the following blocks.
Example
1 Block in which G43/G44 is issued
2 Block which is in the G43 or G44 mode and in which an H code is issued
3 Block which is in the G43 or G44 mode and in which G49 is issued
4 Block in which, in the G43 or G44 mode, compensation vectors are canceled 
using a G code such as G28 or G53 and then resumed again


key: chroma:document
string_value:
The current tool length offset can not be changed by following method:
Stop operation just before this G code, and change the correct offset by MDI or other method.
7.2.2 Selecting a Workpiece Coordinate System
The user can choose from set workpiece coordinate systems as described below. (For information about 
the methods of setting, see Subsection, “Setting a Workpiece Coordinate System”.)
(1) Once a workpiece coordinate system is set by a workpiece coordinate system setting G code or by


key: chroma:document
string_value:
automatic workpiece coordinate system setting, absolute commands indicate positions in the 
workpiece coordinate system.
(2) Choosing from six workpiece coordinate systems set using the MDI unit
By specifying a G code from G54 to G59, one of the workpiece coordinate systems 1 to 6 can be 
selected.
G54 : Workpiece coordinate system 1 G55 : Workpiece coordinate system 2
G56 : Workpiece coordinate system 3 G57 : Workpiece coordinate system 4


key: chroma:document
string_value:
G58 : Workpiece coordinate system 5 G59 : Workpiece coordinate system 6
Workpiece coordinate system 1 to 6 are established after reference position return after the power is 
turned on. When the power is turned on, G54 coordinate system is selected.
When bit 2 (G92) of parameter No. 1202 is set to 1, executing the workpiece coordinate system setting 
G92 code command results in the issue of an alarm PS0010, “IMPROPER G-CODE”. This is designed to 
prevent the user from confusing coordinate systems.


key: chroma:document
string_value:
CAUTION
The set workpiece origin offset value depends on diameter programming or 
radius programming.


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 7. COORDINATE SYSTEM
- 125 -
Example
X
Y
100.0
40.
Workpiece coordinate system 2 (G55)
In this example, positioning is made to
positions (X=40.0, Y=100.0) in workpiece
coordinate system 2.
G90 G55 G00 X40.0 Y100.0 ;
Fig. 7.2.2
7.2.3 Changing Workpiece Coordinate System
The six workpiece coordinate systems specified with G54 to G59 can be changed by changing an external 
workpiece origin offset value or workpiece origin offset value.


key: chroma:document
string_value:
Three methods are available to change an external workpiece origin offset value or workpiece origin 
offset value.
(1) Inputting from the MDI unit (see Subsection, “Displaying and Setting the Workpiece Origin Offset 
Value”.)
(2) Programming (using a programmable data input G code or a workpiece coordinate system setting G 
code)
(3) Using the external data input function
An external workpiece origin offset value can be changed by input signal to CNC. Refer to machine


key: chroma:document
string_value:
tool builder's manual for details.
Workpiece 
coordinate system 1 
(G54)
Workpiece 
coordinate system 2 
(G55)
Workpiece 
coordinate system 3 
(G56)
Workpiece 
coordinate system 4 
(G57)
Workpiece coordinate 
system 5 (G58)
Workpiece coordinate 
system 6 (G59)
ZOFS2 ZOFS3 ZOFS4
ZOFS5
ZOFS1
Machine zero point ZOFS6
EXOFS : External workpiece origin offset value
ZOFS1 to ZOFS6 : Workpiece origin offset value
EXOFS


key: chroma:document
string_value:
EXOFS
Fig. 7.2.3 (a) Changing an external workpiece origin offset value or workpiece origin offset value
Format
- Changing by inputting programmable data
G10 L2 Pp IP_;
p=0 : External workpiece origin offset value
p=1 to 6 : Workpiece origin offset value correspond to workpiece coordinate system 1 to 6
IP_ : For an absolute command, workpiece origin offset for each axis.
For an incremental command, value to be added to the set workpiece origin offset for


key: chroma:document
string_value:
7. COORDINATE SYSTEM PROGRAMMING B-64694EN/01
- 126 -
- Changing by setting a workpiece coordinate system
M
G92 IP_ ;
T
G50 IP_ ;
Explanation
- Changing by inputting programmable data
By specifying a programmable data input G code, the workpiece origin offset value can be changed for 
each workpiece coordinate system.
- Changing by setting a workpiece coordinate system
By specifying a workpiece coordinate system setting G code, the workpiece coordinate system (selected


key: chroma:document
string_value:
with a code from G54 to G59) is shifted to set a new workpiece coordinate system so that the current tool 
position matches the specified coordinates (IP_).
Then, the amount of coordinate system shift is added to all the workpiece origin offset values. This means 
that all the workpiece coordinate systems are shifted by the same amount.
CAUTION
When a coordinate system is set with workpiece coordinate system setting G92 
code command after an external workpiece origin offset value is set, the


key: chroma:document
string_value:
coordinate system is not affected by the external workpiece origin offset value. 
When G92X100.0Z80.0; is specified, for example, the coordinate system having 
its current tool reference position at X = 100.0 and Z = 80.0 is set.
T
If IP is an incremental command value, the workpiece coordinate system is defined so that the current tool 
position coincides with the result of adding the specified incremental value to the coordinates of the 
previous tool position. (Coordinate system shift)
Example


key: chroma:document
string_value:
Example
M
X
X’
Y Y’
Tool position
A
160 100
100
100
200
If G92X100Y100; is commanded when the tool is positioned
at (200, 160) in G54 mode, workpiece coordinate system 1
(X' - Y') shifted by vector A is created.
New workpiece coordinate system
Original workpiece coordinate system
G54 workpiece coordinate system
60
Fig. 7.2.3 (b)


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 7. COORDINATE SYSTEM
- 127 -
Suppose that a G54 workpiece coordinate 
system is specified. Then, a G55 workpiece 
coordinate system where the black circle on 
the tool (figure at the left) is at (600.0,1200.0) 
can be set with the following command if the 
relative relationship between the G54 
workpiece coordinate system and G55 
workpiece coordinate system is set correctly:
G92X600.0Z1200.0;
Also, suppose that pallets are loaded at two


key: chroma:document
string_value:
different positions. If the relative relationship 
of the coordinate systems of the pallets at the 
two positions is correctly set by handling the 
coordinate systems as the G54 workpiece 
coordinate system and G55 workpiece 
coordinate system, a coordinate system shift 
with G92 in one pallet causes the same 
coordinate system shift in the other pallet. 
This means that workpieces on two pallets 
can be machined with the same program just 
by specifying G54 or G55.


key: chroma:document
string_value:
by specifying G54 or G55.
G54 workpiece coordinate system
1200.0
Z
Z
X'
600.0
600.0
1200.0
G55 workpiece coordinate system
Z'
Z'
X
X
X' - Z' ...........New workpiece coordinate system
X - Z .............Original workpiece coordinate system
A : Offset value created by G92
B : Workpiece origin offset value in the G54
C : Workpiece origin offset value in the G55
A
B
C
A
X'
A
Fig. 7.2.3 (c)
Example
T
X X'
Tool position
A
160 100
100
100
200


key: chroma:document
string_value:
A
160 100
100
100
200
If G50X100Z100; is commanded when the tool is
positioned at (200, 160) in G54 mode, workpiece
coordinate system 1 (X' - Z') shifted by vector A is
created.
New workpiece coordinate system
Original workpiece coordinate system
G54 workpiece coordinate system
60
Z
Z'
Fig. 7.2.3 (d)


key: chroma:document
string_value:
7. COORDINATE SYSTEM PROGRAMMING B-64694EN/01
- 128 -
Fig. 7.2.3 (e)
7.2.4 Workpiece Coordinate System Preset (G92.1)
The workpiece coordinate system preset function presets a workpiece coordinate system shifted by 
manual intervention to the pre-shift workpiece coordinate system. The latter system is displaced from the 
machine zero point by a workpiece origin offset value.
There are two methods for using the workpiece coordinate system preset function. One method uses a


key: chroma:document
string_value:
programmed command. The other uses MDI operations on the absolute position display screen, relative 
position display screen, and overall position display screen (see Subsection, “Workpiece Coordinate 
System Preset”).
Format
M
G92.1 IP 0 ;
IP 0 : Specifies axis addresses subject to the workpiece coordinate system preset 
operation. Axes that are not specified are not subject to the preset operation.
T
G50.3 IP0 ; (G92.1 IP 0; for G code system B or C)


key: chroma:document
string_value:
IP 0 : Specifies axis addresses subject to the workpiece coordinate system preset 
operation. Axes that are not specified are not subject to the preset operation.


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 7. COORDINATE SYSTEM
- 129 -
Explanation
When manual reference position return operation is performed in the reset state, a workpiece coordinate 
system is shifted by the workpiece origin offset value from the machine coordinate system zero point. 
Suppose that the manual reference position return operation is performed when a workpiece coordinate 
system is selected with G54. In this case, a workpiece coordinate system is automatically set which has its


key: chroma:document
string_value:
origin displaced from the machine zero point by the G54 workpiece origin offset value; the distance from 
the origin of the workpiece coordinate system to the reference position represents the current position in 
the workpiece coordinate system.
Reference position
G54 workpiece coordinate system
Workpiece origin
Manual reference position return
Machine zero point
G54 workpiece
origin offset value
Fig. 7.2.4 (a)


key: chroma:document
string_value:
Fig. 7.2.4 (a) 
If an absolute position detector is provided, the workpiece coordinate system automatically set at 
power-up has its origin displaced from the machine zero point by the G54 workpiece origin offset value. 
The machine position at the time of power-up is read from the absolute position detector and the current 
position in the workpiece coordinate system is set by subtracting the G54 workpiece origin offset value


key: chroma:document
string_value:
from this machine position. The workpiece coordinate system set by these operations is shifted from the 
machine coordinate system using the commands and operations listed below.
(a) Manual intervention performed when the manual absolute signal *ABSM is off
(b) Move command executed in the machine lock state
(c) Movement by handle interruption
(d) Operation using the mirror image function 
(e) Shifting the workpiece coordinate system by setting the local coordinate system or workpiece


key: chroma:document
string_value:
coordinate system
In the case of (a) above, the workpiece coordinate system is shifted by the amount of movement during 
manual intervention.
WZnMachine zero point
Workpiece origin
offset value
WZo
G54 workpiece
coordinate system before
manual intervention
G54 workpiece coordinate
system after manual
intervention
Po
Pn
Amount of
movement during
manual intervention
Fig. 7.2.4 (b) 
In the operation above, a workpiece coordinate system once shifted can be preset using G code (G92.1)


key: chroma:document
string_value:
specification or MDI operation (See the section of “Workpiece Coordinate System Preset” in “SETTING 
AND DISPLAYING DATA”) to a workpiece coordinate system displaced by a workpiece origin offset 
value from the machine zero point.


key: chroma:document
string_value:
7. COORDINATE SYSTEM PROGRAMMING B-64694EN/01
- 130 -
Bit 3 (PPD) of parameter No. 3104 specifies whether to preset relative coordinates as well as absolute 
coordinates. Moreover, the difference below the least input increment between absolute coordinate point 
and relative coordinate point is corrected to the value of the preset(or origin) of relative coordinates when 
bit 4 (RPP) of parameter No.3129 is set to 1.
Limitation


key: chroma:document
string_value:
Limitation
- Tool radius ⋅ tool nose radius compensation, tool length compensation, tool 
offset
When using the workpiece coordinate system preset function, cancel compensation modes: Tool radius ⋅
tool nose radius compensation, tool length compensation, and tool offset. If the function is executed 
without canceling these modes, compensation vectors are cancelled.
M
- Tool length compensation
When using the workpiece coordinate system preset function, cancel tool length compensation. If the


key: chroma:document
string_value:
function is executed without canceling these modes, compensation vectors are cancelled.
- Program restart
The workpiece coordinate system preset function is not executed during program restart.
M
- Prohibited modes
Do not use the workpiece coordinate system preset function when the scaling, coordinate system rotation, 
programmable image, or figure copy mode is set.
7.2.5 Addition of Workpiece Coordinate System Pair (G54.1 or G54)
M


key: chroma:document
string_value:
M
Besides the six workpiece coordinate systems (standard workpiece coordinate systems) selectable with 
G54 to G59, 48 or 300 additional workpiece coordinate systems (additional workpiece coordinate 
systems) can be used.
Format
- Selecting the additional workpiece coordinate systems
G54.1Pn ; or G54Pn ;
Pn : Codes specifying the additional workpiece coordinate systems
n : 1 to 48 or 1 to 300
- Setting the workpiece origin offset value in the additional workpiece 
coordinate systems (G10)


key: chroma:document
string_value:
coordinate systems (G10)
G10L20Pn IP_;
Pn : Codes specifying the workpiece coordinate system for setting the workpiece origin 
offset value
n : 1 to 48 or 1 to 300
IP_ : Axis addresses and a value set as the workpiece origin offset


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 7. COORDINATE SYSTEM
- 131 -
Explanation
- Selecting the additional workpiece coordinate systems
When a P code is specified together with G54.1 (G54), the corresponding coordinate system is selected 
from the additional workpiece coordinate systems (1 to 48 or 1 to 300).
A workpiece coordinate system, once selected, is valid until another workpiece coordinate system is 
selected. Standard workpiece coordinate system 1 (selectable with G54) is selected at power-on.


key: chroma:document
string_value:
G54.1 P1........... Additional workpiece coordinate system 1
G54.1 P2........... Additional workpiece coordinate system 2
 :
G54.1 P48......... Additional workpiece coordinate system 48
 :
G54.1 P300....... Additional workpiece coordinate system 300
As with the standard workpiece coordinate systems, the following operations can be performed for a 
workpiece origin offset in an additional workpiece coordinate system:


key: chroma:document
string_value:
(1) The workpiece origin offset value setting screen can be used to display and set a workpiece origin 
offset value.
(2) The G10 function enables a workpiece origin offset value to be set by programming (see Subsection, 
“Changing Workpiece Coordinate System”).
(3) A custom macro allows a workpiece origin offset value to be handled as a system variable.
(4) Workpiece origin offset data can be entered or output as external data.


key: chroma:document
string_value:
(5) The PMC window function enables workpiece origin offset data to be read as program command 
modal data.
- Setting the workpiece origin offset value in the additional coordinate systems 
(G10)
When a workpiece origin offset value is specified using an absolute value, the specified value is the new 
offset value. When it is specified using an incremental value, the specified value is added to the current 
offset value to obtain a new offset value.
Limitation
- Specifying P codes


key: chroma:document
string_value:
- Specifying P codes
A P code must be specified after G54.1 (G54). If G54.1 is not followed by a P code in the same block, 
additional workpiece coordinate system 1 (G54.1P1) is assumed.
If a value not within the specifiable range is specified in a P code, an alarm PS0030, “ILLEGAL OFFSET 
NUMBER” is issued.
P codes other than workpiece offset numbers cannot be specified in a G54.1 (G54) block.
Example 1) G54.1G04P1000;
Example 2) G54.1M98P48;


key: chroma:document
string_value:
7. COORDINATE SYSTEM PROGRAMMING B-64694EN/01
- 132 -
7.2.6 Automatic Coordinate System Setting
When bit 0 (ZPR) of parameter No. 1201 for automatic coordinate system setting is 1, a coordinate 
system is automatically determined when manual reference position return is performed.
Once a, β, and γ are set with parameter No. 1250, a workpiece coordinate system is set upon reference 
position return so that the base point on the tool holder or the tip of the basic tool is positioned at X = a,


key: chroma:document
string_value:
Y = β, and Z = γ.
This processing occurs as if the following are specified at the reference position:
M
G92XaYβZγ;
T
G50XaZγ;
T
When the setting of a workpiece coordinate system shift amount is other than 0, a workpiece coordinate 
system shifted by the amount is set.
7.2.7 Workpiece Coordinate System Shift
T
Explanation
When the coordinate system actually set by the G50 command or the automatic system setting deviates


key: chroma:document
string_value:
from the programmed workpiece system, the set coordinate system can be shifted (see III Section 3.1, 
“MANUAL REFERENCE POSITION RETURN”).
Set the desired shift amount in the workpiece coordinate system shift memory.
Fig. 7.2.7 (a) Workpiece coordinate system shift


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 7. COORDINATE SYSTEM
- 133 -
Format
- Changing the workpiece coordinate system shift amount
G10 P0 IP_;
IP : Settings of an axis address and a workpiece coordinate system shift amount
CAUTION
1 A single block can contain a combination of X, Y, Z, C, U, V, W, and H (in G 
code system A). In this case, if commands are specified for the same axis, 
whichever appears later becomes valid.
2 Be sure not to specify other G codes for the same block. When specified, only


key: chroma:document
string_value:
modal information is updated.
3 Be sure not to specify any auxiliary functions / spindle speed functions / tool 
functions or 2nd auxiliary functions for the same block. When specified, alarm 
PS1144 "G10 FORMAT ERROR" is issued.
4 When it commanded with bit 6 (NWS) of parameter No. 1201 is set to 1, alarm 
PS0010, "IMPROPER G-CODE" is issued.
Limitation
- Shift amount and coordinate system setting command


key: chroma:document
string_value:
Specifying a coordinate system setting command (G50 or G92) invalidates the shift amount that has 
already been set.
Example)
When G50X100.0Z80.0; is specified, a coordinate system is set so that the current base position of 
the tool is at X =100.0 and Z = 80.0, regardless of which value has been set for the workpiece 
coordinate system shift amount.
- Shift amount and coordinate system setting


key: chroma:document
string_value:
After a shift amount is set, when automatic coordinate system setting is performed upon manual reference 
position return, the set coordinate system is immediately shifted by the set amount.
- Diameter and radius values
The workpiece coordinate system shift amount depends on diameter programming or radius 
programming.
Example)
Although the base point should be positioned at X = φ120.0 (diameter value) and Z = 70.0 from the


key: chroma:document
string_value:
workpiece origin, the actual position is at X = φ121.0 and Z = 69.0 from the origin. Set a shift 
amount as shown below:
X=1.0, Z=-1.0


key: chroma:document
string_value:
7. COORDINATE SYSTEM PROGRAMMING B-64694EN/01
- 134 -
Fig. 7.2.7 (b)
7.3 LOCAL COORDINATE SYSTEM
When a program is created in a workpiece coordinate system, a child workpiece coordinate system can be 
set for easier programming. Such a child coordinate system is referred to as a local coordinate system.
Format
G52 IP_; Setting the local coordinate system
 :
G52 IP 0 ; Canceling of the local coordinate system
IP_ : Origin of the local coordinate system
Explanation


key: chroma:document
string_value:
Explanation
By specifying G52 IP_;, a local coordinate system can be set in all the workpiece coordinate systems 
(G54 to G59). The origin of each local coordinate system is set at the position specified by IP_ in the 
workpiece coordinate system.
Once a local coordinate system is established, the coordinates in the local coordinate system are used in 
an axis shift command. The local coordinate system can be changed by specifying the G52 command with


key: chroma:document
string_value:
the origin of a new local coordinate system in the workpiece coordinate system. 
To cancel the local coordinate system or specify the coordinate value in the workpiece coordinate system, 
match the origin of the local coordinate system with that of the workpiece coordinate system.


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 7. COORDINATE SYSTEM
- 135 -
(Local coordinate system)
(Local coordinate system)
(Machine coordinate system)
Machine coordinate system zero point
Reference position
(G59: Workpiece coordinate
system 6)
(G54: Workpiece coordinate system 1)
G55
G56 G57
G58
IP_
IP_
Fig. 7.3 Setting the local coordinate system
CAUTION
1 When bit 2 (ZCL) of parameter No.1201 is set to 1 and an axis returns to the


key: chroma:document
string_value:
reference position by the manual reference position return function, the origin of 
the local coordinate system of the axis matches that of the workpiece coordinate 
system. The same is true when the following command is issued:
 G52a0;
 a: Axis which returns to the reference position
2 The local coordinate system setting does not change the workpiece and machine 
coordinate systems.
3 Whether the local coordinate system is canceled at reset depends on the


key: chroma:document
string_value:
parameter setting. The local coordinate system is canceled when either bit 6 
(CLR) of parameter No.3402 or bit 3 (RLC) of parameter No.1202 is set to 1. In 
3-dimensional coordinate conversion mode, however, the local coordinate 
system is not canceled when bit 2 (D3R) of parameter No. 5400 is set to 1.
4 When a workpiece coordinate system is set with the G92 (G50 for G code 
system A in the T series) command, the local coordinate system is canceled.


key: chroma:document
string_value:
However, the local coordinate system of an axis for which no coordinate system 
is specified in a G92 (G50 for G code system A in the T series) block remains 
unchanged.
5 G52 cancels the offset temporarily in tool radius ⋅ tool nose radius compensation.
6 Command a move command immediately after the G52 block in the absolute 
mode.


key: chroma:document
string_value:
7. COORDINATE SYSTEM PROGRAMMING B-64694EN/01
- 136 -
7.4 PLANE SELECTION
Select the planes for circular interpolation, cutter compensation, and drilling by G-code.
The following table lists G-codes and the planes selected by them.
Explanation
Table 7.4 Plane selected by G code
G code Selected plane Xp Yp Zp
G17 Xp Yp plane X-axis or an axis 
parallel to it
Y-axis or an axis 
parallel to it
Z-axis or an axis 
parallel to it G18 Zp Xp plane
G19 Yp Zp plane


key: chroma:document
string_value:
G19 Yp Zp plane
Xp, Yp, Zp are determined by the axis address appeared in the block in which G17, G18 or G19 is 
commanded.
When an axis address is omitted in G17, G18 or G19 block, it is assumed that the addresses of basic three
axes are omitted.
Parameter No. 1022 is used to specify that an optional axis be parallel to the each axis of the X-, Y-, and 
Z-axes as the basic three axes.
The plane is unchanged in the block in which G17, G18 or G19 is not commanded.


key: chroma:document
string_value:
The movement instruction is irrelevant to the plane selection.
M
When the power is turned on or the CNC is reset, G17 (XY plane), G18 (ZX plane), or G19 (YZ plane) is 
selected by bits 1 (G18) and 2 (G19) of parameter No. 3402).
T
When the power is turned on, G18 (ZX plane) is selected.
By setting bit 0 (TPS) of parameter No. 3458 to 1, it is possible to select a modal plane by setting bits 1 
(G18) and 2 (G19) of parameter No. 3402.
NOTE
U-, V-, and W-axes can be used with G-codes B and C.


key: chroma:document
string_value:
Example
Plane selection when the X-axis is parallel with the U-axis. 
G17 X_Y_ ; XY plane, 
G17 U_Y_ ; UY plane
G18 X_Z_ ; ZX plane
X_Y_ ; Plane is unchanged (ZX plane)
G17 ; XY plane
G18 ; ZX plane
G17 U_ ; UY plane
G18Y_ ; ZX plane, Y axis moves regardless without any relation to the plane.


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING
- 137 -
8.COORDINATE VALUE AND 
DIMENSION
8 COORDINATE VALUE AND DIMENSION
8.1 ABSOLUTE AND INCREMENTAL PROGRAMMING
There are two ways to command travels of the tool; the absolute programming, and the incremental 
programming. In the absolute programming, coordinate value of the end position is programmed. The 
incremental programming is used to program the amount of a tool movement.
M
G90 and G91 are used to programming absolute or incremental programming, respectively.


key: chroma:document
string_value:
T
Absolute programming or incremental programming is used depending on the programming used. See 
following tables.
Table 8.1 (a)
G code system A B or C
Command method Address word G90, G91
Format
M
Absolute programming G90 IP_ ;
Incremental programming G91 IP_ ;
T
- G code system A
Table 8.1 (b)
Absolute programming Incremental programming
X axis move command X U 
Z axis move command Z W 
Y axis move command Y V 
C axis move command C H 
- G code system B or C


key: chroma:document
string_value:
PROGRAMMING B-64694EN/01
- 138 -
8.COORDINATE VALUE AND 
DIMENSION
Example
M
Absolute programming
Incremental programming
G90 X40.0 Y70.0 ;
G91 X-60.0 Y40.0 ;
Y
X
70.0
30.0
40.0 100.0
End point
Start point
Fig. 8.1 (a) 
T
Tool movement from point P to point Q (diameter programming is used for the X-axis)
Table 8.1 (c)
G code system A G code system B or C
Absolute programming X400.0 Z50.0 ; G90 X400.0 Z50.0 ;
Incremental programming U200.0 W-400.0 ; G91 X200.0 Z-400.0 ;
φ400 φ200
50


key: chroma:document
string_value:
φ400 φ200
50
450
P
(200, 450)
Q
(400, 50)
Z
X
Fig. 8.1 (b)
NOTE
1 Absolute programming and incremental programming can be used together in a 
block.
In the above example, the following command can be specified : X400.0 
W-400.0 ; (in the G code system A)
2 When both X and U or Z and W are used together in a block, the one specified 
later is effective.
3 Incremental programming cannot be used when names of the axes are A and B 
during G code system A is selected.


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING
- 139 -
8.COORDINATE VALUE AND 
DIMENSION
8.2 INCH/METRIC CONVERSION (G20, G21)
Either inch or metric input (least input increment) can be selected by G code.
Format
G20 ; Inch input
G21 ; Metric input
This G code must be specified in an independent block before setting the coordinate system at the 
beginning of the program. After the G code for inch/metric conversion is specified, the unit of input data


key: chroma:document
string_value:
is switched to the least inch or metric input increment of increment system (see Section, “INCREMENT 
SYSTEM”). The unit of data input for degrees remains unchanged. The unit systems for the following 
values are changed after inch/metric conversion:
- Feedrate commanded by F code
- Positional command 
- Workpiece origin offset value 
- Tool compensation value
- Unit of scale for manual pulse generator
- Movement distance in incremental feed
- Some parameters


key: chroma:document
string_value:
- Some parameters
When the power is turned on, the G code is the same as that held before the power was turned off.
WARNING
G20 and G21 must not be switched during a program.
NOTE
1 When the least input increment and the least command increment systems are 
different, the maximum error is half of the least command increment. This error 
is not accumulated.
(Example)
- Increment system : IS-B
- Least input increment (for input) : In case of "0.0001" inch


key: chroma:document
string_value:
- Least command increment (for output) : "0.00254" -> "0.003" (Difference = 
0.00046 : About 1/2 of least command increment)
Input "0.0001 inch" -> the moving increment of the machine "0.00254 mm".
However, when the increment system is IS-B, the value of the movement of the
machine becomes "0.003 mm".
Therefore, the error margin of "0.00046 mm" (About 1/2 of least command
increment) is generated as a difference.
2 The inch and metric input can also be switched using settings (see Subsection,


key: chroma:document
string_value:
“Displaying and Entering Setting Data”).
3 If a function selected using bit 2 (IRFx) of parameter No. 14000 or bit 0 (NIM) of 
parameter No. 11222 is not used, be sure to perform inch/metric conversion at 
the machine coordinate system origin.
4 G code of inch/metric conversion must be specified in a single block in principle.
However, G17, G18, G19, G90, and G91 can be exceptionally specified in the 
same block. If especially “move command”, “tool offset” and “command that


key: chroma:document
string_value:
PROGRAMMING B-64694EN/01
- 140 -
8.COORDINATE VALUE AND 
DIMENSION
Performing inch/metric conversion in the reference position (parameter No. 
1240 is not 0)
Conventionally, inch/metric conversion must be performed at the machine coordinate system origin. 
However, setting bit 2 (IRFx) of parameter No. 14000 to 1 enables inch/metric conversion to be 
performed in the reference position (parameter No. 1240).


key: chroma:document
string_value:
If an attempt is made to perform inch/metric conversion when an axis with this function enabled is not in 
the reference position, alarm PS5362, “CONVERT INCH/MM AT REF-POS” is issued to cancel the 
attempt.
Before trying to perform inch/metric conversion, be sure to set the axis of interest to the reference 
position, using the G28 command, for example.
In addition, if the workpiece coordinate system has been shifted from the machine coordinate system,


key: chroma:document
string_value:
using the following commands or operations, bit 1 (CIM) of parameter No. 11222 can be used to select 
whether to issue alarm PS1298, “ILLEGAL INCH/METRIC CONVERSION” or to clear the offset.
- Manual intervention performed with the manual absolute signal *ABSM being off
- Move command issued with the machine locked
- Move command issued using a handle interrupt
- Mirror image-based operation
- Workpiece coordinate system shift caused by local coordinate system setting (G52) or workpiece


key: chroma:document
string_value:
coordinate system setting (G92)
Switching conditions
Performing inch/metric conversion in any position other than the reference position requires satisfying all 
of the following conditions. Failing to satisfy any of the conditions results in alarm PS1298, “ILLEGAL 
INCH/METRIC CONVERSION” being issued. For electronic gear box 2 pair synchronization or 
electronic gear box synchronization, alarm PS1595, “ILL-COMMAND IN EGB MODE” is issued.
- Positioning or linear interpolation


key: chroma:document
string_value:
- Polar coordinate command cancel
- Spindle Speed fluctuation detection off
- Tool radius ⋅ tool nose radius compensation cancel
- Normal direction control cancel
- Tool length offset cancel
- Programmable mirror image cancel
- Macro modal call A/B cancel
- Coordinate system rotation or 3-dimensional coordinate system conversion mode off
- Mirror image for double turret or balanced cutting mode cancel (T series only)
- Canned cycle cancel
- Electronic gear box 2 pair synchronization cancel


key: chroma:document
string_value:
- Electronic gear box synchronization cancel
- Constant surface speed control cancel
M
- Scaling cancel
T
- Polar coordinate interpolation cancel mode
- Polygon turning cancel
Restrictions
When performing the following operations, make sure that the axis of interest is in the machine 
coordinate system origin.
- Inch/metric conversion based on bit 2 (INI) of setting parameter No. 0000
- Inch/metric conversion based on programmable parameter input (G10)


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING
- 141 -
8.COORDINATE VALUE AND 
DIMENSION
Performing inch/metric conversion in positions other than the reference 
position
Setting bit 0 (NIM) of parameter No. 11222 enables inch/metric conversion to be performed even in 
positions other than the reference position.
In addition, if the workpiece coordinate system has been shifted from the machine coordinate system, 
using the following commands or operations, bit 1 (CIM) of parameter No. 11222 can be used to select


key: chroma:document
string_value:
whether to issue alarm PS1298 or to clear the offset.
- Manual intervention performed with the manual absolute signal *ABSM being off
- Move command issued with the machine locked
- Move command issued using a handle interrupt
- Mirror image-based operation
- Workpiece coordinate system shift caused by local coordinate system setting (G52) or workpiece 
coordinate system setting (G92)
If an axis is under any of the following controls, however, no automatic coordinate system conversion


key: chroma:document
string_value:
based on this function can be carried out for the axis.
- PMC axis control
- Axis synchronous control (for slave axes when the master axis is a PMC axis)
- Flexible synchronization control (for slave axes when the master axis is a PMC axis)
- Spindle control with servo motor
- Servo/spindle synchronous control
Switching conditions
Performing inch/metric conversion in any position other than the reference position requires satisfying all


key: chroma:document
string_value:
of the following conditions. Failing to satisfy any of the conditions results in alarm PS1298 being issued. 
For electronic gear box 2 pair synchronization or electronic gear box synchronization, alarm PS1595 is 
issued.
- Positioning or linear interpolation
- Polar coordinate command cancel
- Spindle Speed fluctuation detection off
- Tool radius ⋅ tool nose radius compensation cancel
- Normal direction control cancel
- Tool length offset cancel
- Programmable mirror image cancel


key: chroma:document
string_value:
- Macro modal call A/B cancel
- Coordinate system rotation or 3-dimensional coordinate system conversion mode off
- Mirror image for double turret or balanced cutting mode cancel (T series only)
- Canned cycle cancel
- Electronic gear box 2 pair synchronization cancel
- Electronic gear box synchronization cancel
- Constant surface speed control cancel
M
- Scaling cancel
T
- Polar coordinate interpolation cancel mode
- Polygon turning cancel
Restrictions


key: chroma:document
string_value:
Restrictions
When performing the following operations, make sure that the axis of interest is in the machine 
coordinate system origin.
- Inch/metric conversion based on programmable parameter input (G10)
- Inch/metric conversion based on custom macro variable No. 3005


key: chroma:document
string_value:
PROGRAMMING B-64694EN/01
- 142 -
8.COORDINATE VALUE AND 
DIMENSION
Limited to the reference position
Setting bit 0 (NIM) of parameter No. 11222 and bit 3 (IMRx) of parameter No. 14000 enables inch/metric 
conversion to limit in the reference position (parameter No. 1240). This function is used when the 
parameter No. 1240≠0.0 and the inch/metric conversion based on bit 2 (INI) of setting parameter No. 
0000 is limited to the reference position.


key: chroma:document
string_value:
An alarm (PS5362) will be generated if inch/metric conversion is performed without the reference 
position return. Also, inch/metric conversion based on programmable parameter input (G10) or custom 
macro variable No. 3005 can not be commanded. An alarm (PS1298) will be generated. The operation of 
bit 1 (CIM) of parameter No. 11222 and the switching condition etc., it is the same as the specification 
that bit 0 (NIM) of parameter No. 1122 is set to 1.
8.3 DECIMAL POINT PROGRAMMING


key: chroma:document
string_value:
8.3 DECIMAL POINT PROGRAMMING
Numerical values can be entered with a decimal point. A decimal point can be used when entering a 
distance, time, or speed. Decimal points can be specified with the following addresses:
M
X, Y, Z, U, V, W, A, B, C, I, J, K, Q, R, F
T
X, Y, Z, U, V, W, A, B, C, I, J, K, R, F,H(*1)
(*1) only G code system A.
Explanation
There are two types of decimal point notation: calculator-type notation and standard notation.


key: chroma:document
string_value:
When calculator-type decimal notation is used, a value without decimal point is considered to be 
specified in millimeters inch, or deg. When standard decimal notation is used, such a value is considered 
to be specified in least input increments. Select either calculator-type or standard decimal notation by 
using the bit 0 (DPI) of parameter No.3401.Values can be specified both with and without decimal point 
in a single program.
Example
Table 8.3 (a)


key: chroma:document
string_value:
Example
Table 8.3 (a) 
Program command Pocket calculator type decimal 
point programming
Standard type decimal point 
programming
X1000
Command value without decimal point
1000mm
Unit :mm
1mm
Unit : Least input increment (0.001mm)
X1000.0
Command value with decimal point
1000mm
Unit :mm
1000mm
Unit :mm
CAUTION
When specifying a dimension word for a command G code in a block, be sure to 
place the dimension word after the command G code.


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING
- 143 -
8.COORDINATE VALUE AND 
DIMENSION
NOTE
1 A specified value less than the minimum unit is treated as described below.
Example 1)
When a value is specified directly at an address (in the case of 1/1000mm 
IS-B)
X1.2345 ; Treated as X1.235
X-1.2345 ; Treated as X-1.234
Example 2)
When a value is assigned to a macro variable (in the case of 1/1000mm IS-B)
#100=1.2345; 
X#100 ; Treated as X1.235
#100=-1.2345; 
X#100 ; Treated as X-1.234


key: chroma:document
string_value:
X#100 ; Treated as X-1.234
2 When more than the digits indicated in table below are specified, an alarm 
occurs. 
Table8.3 (b) Maximum command digit number
increment system
When address I, J, K or R is 
used to specify the radius for 
circular interpolation
The address other than the 
radius of circular interpolation
IS-A 11 digits 8 digits
The increment systems
other than IS-A 12 digits 9 digits
If a value is entered with a decimal point, the number of digits is also checked


key: chroma:document
string_value:
after the value is converted to an integer according to the least input increment.
Examples:
X1.23456789;
When increment system is IS-A, alarm PS0003, “TOO MANY DIGIT” 
occurs because more than eight digits are specified.
X1234567.8;
If the least input increment is 0.01 mm, the value is converted to integer 
123456780. When increment system is IS-A, because the integer has more 
than eight digits, an alarm occurs.


key: chroma:document
string_value:
PROGRAMMING B-64694EN/01
- 144 -
8.COORDINATE VALUE AND 
DIMENSION
8.4 DIAMETER AND RADIUS PROGRAMMING
Since the workpiece cross section is usually circular in CNC lathe control programming, its dimensions 
can be specified in two ways :
Diameter and Radius
Z axis
A
B
D1
X axis
D2
R1
R2
D1, D2 : Diameter programming
R1, R2 : Radius programming
Fig. 8.4
When the diameter is specified, it is called diameter programming and when the radius is specified, it is 
called radius programming.


key: chroma:document
string_value:
called radius programming.
Explanation
- Notes on diameter programming/radius programming for each command
Radius programming or diameter programming can be specified by bit 3 (DIA) of parameter No.1006. 
When using diameter programming, note the conditions listed in the Table 8.4 (a).
Table 8.4 (a) Notes on specifying diameter value
Item Notes
X axis command Specified with a diameter value
Incremental command Specified with a diameter value


key: chroma:document
string_value:
In the above figure, specifies D2 minus D1 for tool path B to A.
Coordinate system setting (G50) Specifies a coordinate value with a diameter value
Component of tool offset value Bit 1 of parameter No.5004 determines either diameter or 
radius value
Parameters in canned cycle, such as cutting 
depth along X axis. (R) Specifies a radius value
Radius designation in circular interpolation (R, I, 
K, and etc.) Specifies a radius value


key: chroma:document
string_value:
Feedrate along axis Specifies change of radius/rev. or change of radius/min.
Display of axis position Displayed as diameter value


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING
- 145 -
9.SPINDLE SPEED FUNCTION 
(S FUNCTION)
9 SPINDLE SPEED FUNCTION (S FUNCTION)
9.1 SPECIFYING THE SPINDLE SPEED WITH A CODE
When a value is specified after address S, the code signal and strobe signal are sent to the machine to 
control the spindle rotation speed.
A block can contain only one S code. Refer to the appropriate manual provided by the machine tool 
builder for details such as the number of digits in an S code or the execution order when a move


key: chroma:document
string_value:
command and an S code command are in the same block.
9.2 SPECIFYING THE SPINDLE SPEED VALUE DIRECTLY 
(S5-DIGIT COMMAND)
The spindle speed can be specified directly by address S followed by a max. five-digit value (min-1
). The 
unit for specifying the spindle speed may vary depending on the machine tool builder. Refer to the 
appropriate manual provided by the machine tool builder for details.
9.3 CONSTANT SURFACE SPEED CONTROL (G96, G97)


key: chroma:document
string_value:
Specify the surface speed (relative speed between the tool and workpiece) following S. The spindle is 
rotated so that the surface speed is constant regardless of the position of the tool.
Format
- Constant surface speed control command
G96Sxxxxx ;
 ↑ Surface speed (m/min or feet/min)
This surface speed unit may change according to machine tool builder's specification.
- Constant surface speed control cancel command
G97Sxxxxx ;
 ↑ Spindle speed (min-1
)


key: chroma:document
string_value:
↑ Spindle speed (min-1
)
This surface speed unit may change according to machine tool builder's specification.
- Constant surface speed controlled axis command
G96Pα ;
P0 : Axis set in the parameter No. 3770
P1 : 1st axis, P2 : 2nd axis, P3 : 3rd axis, P4 : 4th axis
P5 : 5th axis, P6 : 6th axis, P7 : 7th axis, P8 : 8th axis
NOTE
If multi-spindle control (spindle selecting based on address P or spindle name 
expansion) is enabled, axis specification based on address P is disabled. Use


key: chroma:document
string_value:
PROGRAMMING B-64694EN/01
- 146 -
9.SPINDLE SPEED FUNCTION 
(S FUNCTION)
- Clamp of maximum spindle speed
G92 S_ ;
The maximum spindle speed (min-1
) follows S.
T
G50 S_ ; 
The maximum spindle speed (min-1
) follows S.
NOTE
G50 can be used with G code system A.
Explanation
- Constant surface speed control command (G96)
G96 (constant surface speed control command) is a modal G code. After a G96 command is specified, the


key: chroma:document
string_value:
program enters the constant surface speed control mode (G96 mode) and specified S values are assumed 
as a surface speed. A G96 command must specify the axis along which constant surface speed control is 
applied. A G97 command cancels the G96 mode. When constant surface speed control is applied, a 
spindle speed higher than the value specified in G92S_; or G50S_; (maximum spindle speed) is clamped 
at the maximum spindle speed. When the power is turned on, the maximum spindle speed is not yet set


key: chroma:document
string_value:
and the speed is not clamped. S (surface speed) commands in the G96 mode are assumed as S = 0 (the 
surface speed is 0) until M03 (rotating the spindle in the positive direction) or M04 (rotating the spindle 
in the negative direction) appears in the program.
Fig. 9.3 (a) Relation between workpiece radius, spindle speed and surface speed


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING
- 147 -
9.SPINDLE SPEED FUNCTION 
(S FUNCTION)
- Setting the workpiece coordinate system for constant surface speed control
To execute the constant surface speed control, it is necessary to set the workpiece coordinate system , and 
so the coordinate value at the center of the rotary axis, for example, Z axis, (axis to which the constant 
surface speed control applies) becomes zero.
X
Z
0


key: chroma:document
string_value:
X
Z
0
Fig. 9.3 (b) Example of the workpiece coordinate system for constant surface speed control
- Surface speed specified in the G96 mode
G96 mode G97 mode
Specify the surface speed in m/min
(or feet/min)
G97 command
Store the surface speed in m/min
(or feet/min)
Command for
the spindle
speed
Specified
The specified
spindle speed
(min-1) is used
Not specified
The surface speed (m/min or
feet/min) is converted to the
spindle speed (min-1)
Commands other than G96
G96 command


key: chroma:document
string_value:
G96 command
The specified
surface
speed is used
Command
for the surface
speed
The stored surface speed (m/min or
feet/min) is used. If no surface
is stored, 0 is assumed.
Specified
Not specified


key: chroma:document
string_value:
PROGRAMMING B-64694EN/01
- 148 -
9.SPINDLE SPEED FUNCTION 
(S FUNCTION)
- Maximum spindle speed clamp
If the spindle rotating at the maximum speed specified with the relevant parameter may cause a problem 
in the constant surface speed control mode, execute maximum spindle speed clamp (M series: G92S_;, T 
series: G50S_;) before starting constant surface speed control so that the spindle speed does not exceed 
the specified speed.


key: chroma:document
string_value:
the specified speed.
When maximum spindle speed clamp has not been executed after power-on, constant surface speed 
control may be specified due to a program error or operator error including the use of an improper 
procedure for executing a machining program. To avoid this problem, bit 4 (CSA) of parameter No. 3712 
can be set to 1 to issue alarm PS5557, “NO MAX SP SPEED CLAMP COMMAND” in the above case to 
prevent the spindle from rotating at an unexpected speed.


key: chroma:document
string_value:
When bit 0 (CLM) of parameter No.3785 is set to 0, and spindle selection by extended spindle name is 
enabled, if extended spindle name is commanded at clamp command of maximum spindle speed G92 
(G50 in G code system A of T series), alarm PS0539 “MAX SP SPEED CLAMP COMMAND ERROR”
is issued. “S” has to be commanded at clamp command of maximum spindle speed.
Example
Suppose that extended spindle name is set as follows.
Table 9.3 (a) Setting of extended spindle name


key: chroma:document
string_value:
Spindle number Extended spindle name
First spindle S
Second spindle SB
If “G92 SB30 ;” is commanded, alarm PS0539 “MAX SP SPEED CLAMP COMMAND ERROR” is 
issued. Clamp of maximum spindle speed has to be command “G92 S30 ;”. If “S” is set as extended 
spindle name, alarm PS0539 is not issued.
- Selection of axis as the calculation reference in constant surface speed 
control
When bit 0 (CLM) of parameter No.3785 is set to 0, and spindle selection by address P or extended


key: chroma:document
string_value:
spindle name of multi-spindle control is enabled, selection of axis as the calculation reference in constant 
surface speed control “G96 P_ ;” is commanded, alarm PS0190 “ILLEGAL AXIS SELECTED (G96)” is 
issued. Please command programmable parameter input G10 in changing axis as the calculation reference 
in constant surface speed control.
Example
Suppose that spindle selection by address P is enabled.
- If “G96 P_ ;” is commanded, alarm PS0190 is issued.


key: chroma:document
string_value:
- If “G96 S_ P_ ;” is commanded, spindle selected by address P is controlled by constant surface 
speed control.
Example
Suppose that extended spindle name is set as Table 9.3 (a).
- If “G96 P_ ;” is commanded, alarm PS0190 is issued.
- If “G96 S_ P_ ;” , or “G96 SB_ P_ ” is commanded, alarm PS0190 is issued.
When extended spindle name is enabled, address P cannot be commanded at G96 block.
- G96 command without surface speed


key: chroma:document
string_value:
When bit 1 (G96) of parameter No.3785 is set to 1, and spindle selection by address P or extended spindle 
name is enabled, if G96 command without surface speed is commanded, alarm PS5355 “S CODE IS NOT 
COMMANDED AT G96” is issued.


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 
- 149 - 
9.SPINDLE SPEED FUNCTION 
(S FUNCTION) 
NOTE 
 When spindle selection by address P or extended spindle name is enabled, if 
G96 is commanded without surface speed, surface speed which is commanded 
at previous G96 command is applied. Axis as the calculation reference in 
constant surface speed control which is commanded previously regardless of 
G96/G97 mode is applied. In order to prevent rotation of unexpected spindle by


key: chroma:document
string_value:
G96 command without surface speed, please command surface speed at G96 
command. 
- Spindle speed calculation during the 3-dimensional coordinate system 
conversion / the tilted working plane indexing 
In the constant surface speed control in the 3-dimensional coordinate system conversion / the tilted 
working plane indexing mode, the coordinate system which is the standard of speed calculation can be 
changed by the parameter 3CS(No.11221#6).


key: chroma:document
string_value:
Table 9.3 (b) The standard coordinate system of spindle speed calculation 
Parameter 3CS Coordinate system of standard 
0 Workpiece coordinate 
1 Program coordinate (3-dimensional coordinate system conversion) 
/ Feature coordinate (Tilted working plane indexing) 
r=7.0711(mm) 
Workpiece coordinate (G54) 
(parameter 3CS=0) 
Tool 
Program coordinate (G68) / 
Feature coordinate (G68.2) 
(parameter 3CS=1) 
r'=10.0(mm) 
X 
Z X' 
45°
Z' 
Spindle speed N


key: chroma:document
string_value:
45°
Z' 
Spindle speed N 
Fig.9.3 (c) Spindle speed calculation during the 3-dimensional coordinate system conversion 
/ the tilted working plane indexing 
Example) 
When the followings are set by the programming. 
- the surface speed S=10(m/min) 
- the axis as the calculation reference is X 
N1 G68 X0 Y0 Z0 I0 J1 K0 R-45.0 
N2 G01 G90 X0 Y0 Z0 F100.0 
N3 G96 S10 P1 
N4 X10.0 Y0 Z0


key: chroma:document
string_value:
PROGRAMMING B-64694EN/01
- 150 -
9.SPINDLE SPEED FUNCTION 
(S FUNCTION)
N5 G97
N6 G69
Table 9.3 (c) The spindle speed in N4 (calculation by relation of N=S/2πr)
Parameter 3CS Radius value r (mm) In the axis (X)
as the calculation reference Spindle speed N(mm-1
)
0 7.0711 225
1 10.0 159
Limitation
- Constant surface speed control for threading
The constant surface speed control is also effective during threading. Accordingly, it is recommended that


key: chroma:document
string_value:
the constant surface speed control be invalidated with G97 command before starting the scroll threading 
and taper threading, because the response problem in the servo system may not be considered when the 
spindle speed changes.
- Constant surface speed control for rapid traverse (G00)
In a rapid traverse block specified by G00, the constant surface speed control is not made by calculating 
the surface speed to a transient change of the tool position, but is made by calculating the surface speed


key: chroma:document
string_value:
based on the position at the end point of the rapid traverse block, on the condition that cutting is not 
executed at rapid traverse.
- Rigid tapping
If rigid tapping is commanded during constant surface speed control, alarm (PS0200), ”ILLEGAL S 
CODE COMMAND” is issued. Command rigid tapping after canceling constant surface speed control.
Notes
- Clamp at maximum spindle speed in the tool length compensation mode


key: chroma:document
string_value:
Clamp at maximum spindle speed cannot be used together with a block where tool length compensation 
vectors vary. For example, it cannot be used together with the following blocks.
Example
1 Block in which G43/G44 is issued
2 Block which is in the G43 or G44 mode and in which an H code is issued
3 Block which is in the G43 or G44 mode and in which G49 is issued
4 Block in which, in the G43 or G44 mode, compensation vectors are canceled 
using a G code such as G28 or G53 and then resumed again


key: chroma:document
string_value:
The current tool length offset can not be changed by following method:
Stop operation just before this G code, and change the correct offset by MDI or other method.


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING
- 151 -
9.SPINDLE SPEED FUNCTION 
(S FUNCTION)
Example
T
300 400 500 600 700 800 900 1000 1100
1200
130014001500
1050
1475
200
375
500
300
400
700
X
Z
1
2
3
4
N16
N16
N15
N15
N14
N14 N11
N11
100
675
600
Programmed path
Tool path after offset
Radius value
f600 f400
N8 G00 X1000.0Z1400.0 ;
N9 T33;
N11 X400.0Z1050.0;
N12 G50S3000 ; (Designation of max. spindle speed)
N13 G96S200 ; (Surface speed 200 m/min)
N14 G01 Z 700.0F1000 ;


key: chroma:document
string_value:
N14 G01 Z 700.0F1000 ;
N15 X600.0Z 400.0;
N16 Z_ ; 
The CNC calculates the spindle speed which is proportional to the specified surface speed at the position 
of the programmed coordinate value on the X axis. This is not the value calculated according to the X 
axis coordinate after offset when offset is valid. At the end point N15 in the example above, the speed at 
600 dia. (Which is not the turret center but the tool nose) is 200 m/min. If X axis coordinate value is


key: chroma:document
string_value:
PROGRAMMING B-64694EN/01
- 152 -
9.SPINDLE SPEED FUNCTION 
(S FUNCTION)
9.4 SPINDLE POSITIONING FUNCTION
Overview
In turning, the spindle connected to the spindle motor is rotated at a certain speed to rotate the workpiece 
mounted on the spindle. This spindle control status is referred to as spindle rotation mode.
The spindle positioning function turns the spindle connected to the spindle motor by a certain angle to


key: chroma:document
string_value:
position the workpiece mounted on the spindle at a certain angle. This spindle control status is referred to 
as spindle positioning mode.
The spindle positioning function involves the following three operations:
1. Canceling the spindle rotation mode and entering the spindle positioning mode
Place the spindle in the spindle positioning mode and establish a reference position by specifying a 
given M code (set with a parameter). (Spindle orientation)


key: chroma:document
string_value:
2. Positioning the spindle in the spindle positioning mode
The spindle is positioned in either of the two methods:
1) Positioning with an arbitrary angle by an axis address
2) Positioning with a semi-fixed angle by a given M code (set with a parameter)
3. Canceling the spindle positioning mode, and entering the spindle rotation mode
Place the spindle in the spindle rotation mode by specifying a given M code (set with a parameter).


key: chroma:document
string_value:
The least command increment, least input increment, and maximum value for the spindle positioning axis 
are as follows:
- Least command increment
- Least input increment
0.001 deg (IS-B)
- Maximum value
±999999.999 deg
9.4.1 Spindle Orientation
When spindle positioning is first performed after the spindle motor is used for normal spindle operation, 
or when spindle positioning is interrupted, the spindle orientation is required.


key: chroma:document
string_value:
Orientation permits the spindle to stop at a predetermined position.
Orientation is directed by the M code set in parameter No. 4960. The direction of orientation can be set 
with a parameter.
For the serial spindle, it is set in bit 4 (RETSV) of parameter No. 4000. With the grid shift function, the 
orientation position can be shifted in a range of 0 to 360 deg with parameter No. 4073 for a serial spindle.
- Feedrate during spindle orientation


key: chroma:document
string_value:
An orientation feedrate for a serial spindle is determined by a spindle parameter setting.
In orientation, the serial spindle stops at the orientation position after several rotations of the spindle 
motor.
- Omission of orientation
By using bit 2 (ISZ) of parameter No. 4950, orientation upon switching to spindle positioning mode can 
be omitted if it is unnecessary (for example, when no start position is specified and incremental


key: chroma:document
string_value:
positioning from the current position is only required). More specifically, when an M code for switching 
to spindle positioning mode is specified, the spindle control mode is simply switched to spindle 
positioning mode and then the processing is completed without orientation.
360
4096 = 0.088 deg (when the gear ratio of the spindle to the position coder •
•


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING
- 153 -
9.SPINDLE SPEED FUNCTION 
(S FUNCTION)
- Program reference position
The position at which orientation is completed is assumed to be a program reference position. However, 
the program reference position can be changed through coordinate system setting (G92 or G50) or 
automatic coordinate system setting (bit 0 (ZPR) of parameter No. 1201).
When a setting is made to omit orientation, a program reference position is not established, and operation


key: chroma:document
string_value:
by an absolute command is unpredictable during spindle positioning with an axis address.
9.4.2 Spindle Positioning
The spindle can be positioned with a semi-fixed angle or arbitrary angle.
- Positioning with a semi-fixed angle
Use an M code to specify a positioning angle. The specifiable M code value may be one of the six values 
from Mα to M (α+5). Value α must be set in parameter No. 4962 beforehand. The positioning angles


key: chroma:document
string_value:
corresponding to Mα to M (α+5) are listed below. Value β must be set in parameter No. 4963 
beforehand.
M-code
(Ex.) β = α + 5 Positioning angle (Ex.) β = 30°
Mα β 30°
M (α + 1) 2β 60°
M (α + 2) 3β 90°
M (α + 3) 4β 120°
M (α + 4) 5β 150°
M (α + 5) 6β 180°
When the number of M codes to be used, value γ, is specified in parameter No. 4964, a specifiable M 
code value may be in a range of values from Mα to M (α + (γ - 1)), up to 255 values from Mα to M (α + 
(255 - 1)).
M code


key: chroma:document
string_value:
(255 - 1)).
M code
(Ex.) γ = 11 Positioning angle (Ex.) β = 30°
Mα β 30°
M (α + 1) 2β 60°
M (α + 2) 3β 90°
M (α + 3) 4β 120°
... ... ...
M (α + 11 - 1) 11β 330°
The direction of rotation can be specified in bit 1 (IDM) of parameter No.4950.
- Positioning with an arbitrary angle
Specify the position with an arbitrary angle using the axis address followed by a signed numeric value or 
numeric values. The axis address must be specified in the G00 mode.


key: chroma:document
string_value:
(The explanation below is given assuming that a C axis address is set.)
(Example) C-45000
C180.000
A numeric with the decimal point can be entered. The value must be specified in degrees.
(Example) C36.0=C36 deg


key: chroma:document
string_value:
PROGRAMMING B-64694EN/01
- 154 -
9.SPINDLE SPEED FUNCTION 
(S FUNCTION)
- Absolute commands and incremental commands
Incremental commands are always used for positioning with a semi-fixed angle (using M codes).
The direction of rotation can be specified with bit 1 (IDM) of parameter No. 4950.
Absolute and incremental commands can be used for positioning with an arbitrary angle.
With absolute commands for positioning with an arbitrary angle, when the rotation axis rollover function


key: chroma:document
string_value:
is used (bit 0 (ROA) of parameter No. 1008 is 1), shortcut control is also enabled (bit 1 (RAB) of 
parameter No. 1008 is 0).
Program reference position
A
B
180°
90°
Command format
G-code system A in lathe system G-code system B or C in lathe system, 
and machining center system
Address 
used
Command A-B in 
the above figure
Address used and G 
code
Command A-B in 
the above figure
Absolute command
Specify the end point with a 
distance from the program 
reference position.


key: chroma:document
string_value:
reference position.
C C180.0 ; G90, C G90 C180 .;
Incremental 
command
Specify a distance from 
the start point to the end 
point.
H H90.0 ; G91, C G91 C90 .;
- Feedrate during positioning
The feedrate during positioning equals the rapid traverse speed specified in parameter No. 1420.
For the specified speed, an override of 100%, 50%, 25%, and F0 (parameter No. 1421) can be applied.
9.4.3 Canceling Spindle Positioning


key: chroma:document
string_value:
When modes are to be switched from spindle positioning to normal spindle rotation, the M code set in 
parameter No. 4961 must be specified.
Also, the spindle positioning mode is canceled and the spindle rotation mode is set in the following cases:
<1> A reset operation (including an emergency stop) occurs when a servo alarm is issued.
<2> A reset operation (including an emergency stop) occurs when a spindle alarm is issued.


key: chroma:document
string_value:
<3> An orientation operation in progress is stopped due to a reset or alarm, or for some other reason.
<4> A reset operation (including an emergency stop) occurs when bit 0 (IOR) of parameter No. 4950 is 
1.
CAUTION
1 During execution of spindle positioning sequences (canceling the spindle rotation 
mode and entering the spindle positioning mode, positioning the spindle in the 
spindle positioning mode, and canceling the spindle positioning mode and


key: chroma:document
string_value:
entering the spindle rotation mode), the automatic operation stop signal *SP is 
invalid. This means that automatic operation does not stop until all the 
sequences are completed, even when the *SP signal becomes “0”.


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING
- 155 -
9.SPINDLE SPEED FUNCTION 
(S FUNCTION)
CAUTION
2 Dry run and machine lock cannot be performed during spindle positioning.
3 Auxiliary function lock is disabled for M codes for the spindle positioning function.
4 The serial spindle Cs-axis contour control function and the spindle positioning 
function cannot be used at a time. If both functions are specified, the spindle 
positioning function has priority.


key: chroma:document
string_value:
5 The spindle positioning axis is handled as a controlled axis. Therefore, controlled 
axis-related signals (such as the overtravel signal) must be set.
6 When using the rigid tapping function and the spindle positioning function
concurrently, do not specify rigid tapping in spindle positioning mode or spindle 
positioning in rigid tapping mode.
NOTE
1 M code commands for positioning of a spindle must be specified in a single


key: chroma:document
string_value:
block. Other commands must not be contained in the same block. (Also, M code 
commands for positioning of another spindle must not be contained in the same 
block.)
Even when the single-block, multiple-M code command function is also used, 
related M codes must be specified in a single block.
2 Even when the single-block, multiple-M code command function is also used, 
related M codes must be specified in a single block.


key: chroma:document
string_value:
3 Axis address commands for positioning of a spindle must be specified in a single 
block. Other commands must not be contained in the same block. However, the 
following commands can be contained in the same block where axis address 
commands are specified:
G00, G90, G91, G92 (G-code systems B and C in the T series, M series)
G00, G50 (G-code system A in the T series)
4 M code commands for spindle positioning specify M codes that are not buffered.


key: chroma:document
string_value:
5 Spindle positioning cannot be performed by manual operation (in jog feed, 
manual handle feed, or other mode).
6 Spindle positioning cannot be performed by PMC axis control.
7 For spindle positioning, program restart and block restart operations cannot be 
performed. Use the MDI for these operations.
8 The stored stroke limit check is disabled for the spindle positioning axis.
9 The axis removal function is disabled for the spindle positioning axis.


key: chroma:document
string_value:
10 The pitch error compensation function is disabled for the spindle positioning axis.
11 When a setting is made to omit spindle orientation, the reference position return 
completion signal does not become “1”.
12 In spindle orientation, all-axis interlock and axis-specific interlock are checked 
only when a block is started. A signal is ignored if input during the execution of 
the block.
13 A difference between a specified travel distance and an actual travel distance is


key: chroma:document
string_value:
PROGRAMMING B-64694EN/01
- 156 -
9.SPINDLE SPEED FUNCTION 
(S FUNCTION)
9.5 SPINDLE SPEED FLUCTUATION DETECTION
Overview
With this function, an overheat alarm OH0704, “OVERHEAT” is raised and the spindle speed fluctuation 
detection alarm signal SPAL is issued when the spindle speed deviates from the specified speed due to 
machine conditions.
This function is useful, for example, for preventing the seizure of the guide bushing.


key: chroma:document
string_value:
G26 enables spindle speed fluctuation detection. G25 disables spindle speed fluctuation detection.
Format
- Spindle speed fluctuation detection on
G26 Pp Qq Rr Ii;
p: Time (in ms) from the issue of a new spindle rotation command (S command) to the start 
of checking whether the actual spindle speed is so fast that an overheat can occur.
When a specified speed is reached within the time period of P, a check is started at that 
time.
q: Tolerance (%) of a specified spindle speed
 = 1− ×100


key: chroma:document
string_value:
= 1− ×100
specified spndle speed
actual spindle speed q
If a specified spindle speed lies within this range, it is regarded as having reached the 
specified value. Then, the checking of an actual spindle speed is started.
r: Spindle speed fluctuation (%) at which the actual spindle speed is so fast that an 
overheat can occur
 = 1− ×100
speciofied spndle speed
speed that can cause overheat
r
If the fluctuation of the actual spindle speed to the specified spindle speed exceeds the


key: chroma:document
string_value:
spindle speed fluctuation of R, the actual spindle speed is regarded as being so fast that 
an overheat can occur.
i: Spindle speed fluctuation width at which the actual spindle speed (min-1
) is so fast that 
an overheat can occur
If the fluctuation (width) between the specified and actual spindle speeds exceeds the 
spindle speed fluctuation width of I, the actual spindle speed is regarded as being so fast 
that an overheat can occur.
NOTE
Specify G26 in a separate block.


key: chroma:document
string_value:
G26 enables the spindle speed fluctuation detection function. The values specified for P, Q, R, and I are 
set in the following parameters: No. 4914, No. 4911, No. 4912, and No. 4913, respectively. Each 
command address corresponds to a parameter number as listed below.
Command address Parameter number
Q No.4911
R No.4912
I No.4913
P No.4914
If the P, Q, R, or I command address is omitted, the function detects the fluctuation of the actual spindle


key: chroma:document
string_value:
speed according to the value set in the corresponding parameters Nos. 4914, 4911, 4912, or 4913.
The parameters Nos. 4914, 4911, 4912, and 4913 for the spindle on which the currently selected position 
coder is mounted are used for the setting and spindle speed fluctuation detection check.


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING
- 157 -
9.SPINDLE SPEED FUNCTION 
(S FUNCTION)
- Spindle speed fluctuation detection off
G25;
NOTE
Specify G25 in a separate block.
G25 disables the spindle speed fluctuation detection function.
When G25 is specified, the parameters Nos. 4914, 4911, 4912, and 4913 are unchanged. 
Explanation
The function for detecting spindle speed fluctuation checks whether the actual speed varies for the


key: chroma:document
string_value:
specified speed or not. Si or Sr, whichever is greater, is taken as the allowable fluctuation speed (Sm). An 
alarm (OH0704) is activated when the actual spindle speed varies for the commanded speed (Sc) under 
the condition that the variation width exceeds the allowable variation width (Sm).
|Sc – Sa| > Sm
Sc : Specified spindle speed
Sa : Actual spindle speed
Si : The allowable constant variation width which is independent of the specified spindle speed 
(parameter No.4913)


key: chroma:document
string_value:
(parameter No.4913)
Sr : The allowable variation width which is obtained by multiplying Sc (commanded spindle speed) 
by r (constant ratio). (r = parameter No.4912)
Bit 0 (FLR) of parameter No. 4900= 0 Bit 0 (FLR) of parameter No. 4900= 1
100
r Sr = Sc ×
1000
r Sr = Sc ×
Sm: Si or Sr, whichever is greater
- Conditions to start spindle speed fluctuation detection
If the specified spindle speed Sc changes, spindle speed fluctuation detection starts when one of the 
conditions below is met.


key: chroma:document
string_value:
conditions below is met. 
When bit 7 (FDTs) of parameter No. 4900 is set to 1, spindle speed fluctuation detection starts when 
condition <2> is met.
<1> The actual spindle speed falls in a range of (Sc - Sq) to (Sc + Sq)
Sc : Specified spindle speed
Sq : Tolerance within which the spindle is assumed to attain the programmed speed
(parameter No.4911)
Parameter FLR= 0 Parameter FLR= 1
100
q Sq = Sc ×
1000
q Sq = Sc ×


key: chroma:document
string_value:
q Sq = Sc ×
1000
q Sq = Sc ×
<2> When time p specified in parameter No. 4914 elapses after the specified speed Sc changes.


key: chroma:document
string_value:
PROGRAMMING B-64694EN/01
- 158 -
9.SPINDLE SPEED FUNCTION 
(S FUNCTION)
- Examples of spindle speed fluctuation detection
(Example 1)
When an alarm OH0704 is issued after a specified spindle speed is reached
Spindle 
speed
Specified 
speed
Actual 
speed
Time
Specification of Start of check Alarm
another speed
CHECK NO CHECK CHECK
Sq
Sq
Si
Si
Sr
Sr
G26 mode
P
(Example 2)
When an alarm OH0704 is issued before a specified spindle speed is reached
Spindle 
speed
Specified 
speed


key: chroma:document
string_value:
speed
Specified 
speed
Actual 
speed 
Time
Start of Alarm
check
Specification of 
another speed
CHECK NO CHECK CHECK
Sq
Sq
Si
Si
Sr
Sr
P
G26 mode
Specified speed : (Speed specified by address S and five-digit value) × (spindle override)
Actual speed : Speed detected with a position coder
p : Period after a change occurs in the actual spindle speed until detection starts
Parameter No.4914, address P
Sq: (Specified spindle speed) × (Detection start tolerance (q))


key: chroma:document
string_value:
Parameter No.4911, address Q
Parameter FLR = 0 Parameter FLR = 1
100
q
1000
q
Sr : (Specified spindle speed) × (Allowable variation (r))
Parameter No.4912, address R
Parameter FLR = 0 Parameter FLR = 1
100
r
1000
r


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING
- 159 -
9.SPINDLE SPEED FUNCTION 
(S FUNCTION)
Si : Allowable variation width
Parameter No.4913, address I
If the difference between the specified speed and actual speed exceeds both Sr and Si, an alarm OH0704 
is raised.
- Relationship between spindle speed control and each spindle
Spindle
Function
Serial spindle
1st spindle 2nd spindle 3rd spindle 4th spindle
Spindle speed fluctuation detection Possible Possible(*1) Possible(*1) Possible(*1)
NOTE


key: chroma:document
string_value:
NOTE
1 A multi spindle control function is necessary.
2 The spindle speed fluctuation detection function is effective for a single spindle. 
The function cannot be executed for two or more spindles. 
The spindle speed fluctuation detection function is effective for a spindle on 
which the currently selected position coder is mounted. Just a single position 
coder can be selected. Multiple position coders cannot be selected. For the


key: chroma:document
string_value:
selection of a position coder, see the section of "Multi spindle." 
* Position coder selection signals (PC2SLC, PC3SLC, PC4SLC)
3 The parameters that become valid are the parameters of the spindle speed 
fluctuation detection function (No.4911, No.4912, No.4913, No.4914) for the 
spindle on which the currently selected position coder is mounted.
- Spindle for which to detect the spindle speed fluctuation


key: chroma:document
string_value:
For the spindle for which to detect the spindle speed fluctuation, refer to the appropriate manual provided 
by the machine tool builder.
- About spindle speed fluctuation detection at power-on or cleared state
At power-on or cleared state by reset, whether spindle speed fluctuation detection function is disabled
(G25 mode) or is enabled (G26 mode) depends on the setting of bit 0 (G26) of parameter No. 4902 as 
follows.


key: chroma:document
string_value:
follows.
- When bit 0 (G26) of parameter No. 4902 set to 0, spindle speed fluctuation detection function is
disabled.
- When bit 0 (G26) of parameter No. 4902 set to 1, spindle speed fluctuation detection function is
enabled. 
Placing the G25/G26 group in the cleared state requires the following parameter settings:
- Bit 6 (CLR) of parameter No. 3402 set to 1
- Bit 0 (C08) of parameter No. 3407 set to 1 (T series) / Bit 3 (C19) of parameter No. 3408 set to 1 (M
series)


key: chroma:document
string_value:
PROGRAMMING B-64694EN/01
- 160 -
9.SPINDLE SPEED FUNCTION 
(S FUNCTION)
G26(No.4902#0) CLR(No.3402#6)
(T series)
C08(No.3407#0)
(M series)
C19(No.3408#3)
At power-on
At reset 
in G25 mode
At reset 
in G26 mode
0
0 0 G25 G25 G26
1 G25 G25 G26
1 0 G25 G25 G25
1 G25 G25 G26
1
0 0 G26 G25 G26
1 G26 G25 G26
1 0 G26 G26 G26
1 G26 G25 G26
- Parameters of spindle speed fluctuation detection at power-on


key: chroma:document
string_value:
At power-on when bit 6 (UDPs) of parameter No.4900 is set to 1, parameters Nos. 4921 to 4924 (dp, dq, 
dr, di) are valid and parameters Nos. 4911 to 4914 (p, q, r, i) are invalid.
Because of specified address P, Q, R, I in the machining program, value of parameters Nos. 4911 to 4914 
(p, q, r, i) are changed and value of parameters Nos. 4921 to 4924 (dp, dq, dr, di) are not changed. So, 
parameters Nos. 4921 to 4924 (dp, dq, dr, di) are used as default parameter at power-on.


key: chroma:document
string_value:
When parameters Nos. 4921 to 4924 (dp, dq, dr, di) are valid, if address P, Q, R, I are specified in the 
machining program even once as following,
G26 Pp Qq Rr Ii ;
the specified values are set for parameters Nos. 4911 to 4914 (p, q, r, i) and these parameters are valid as 
parameters of spindle speed fluctuation detection. If address P, Q, R, I are not specified in the machining 
program, parameters Nos. 4921 to 4924 (dp, dq, dr, di) are still valid. Examples of valid spindle speed


key: chroma:document
string_value:
fluctuation detection parameters are shown below.
At cleared state, G25 / G26 mode changes according to parameter bit 0 (G26) of parameter No.4902, but 
valid parameters of spindle speed fluctuation detection don’t change. And, When mode is change into 
G25 mode, Valid state of the parameters of spindle speed fluctuation detection is held. After that, when 
mode is change into G26 mode again, this valid state is applied. Examples are shown below.
G25 mode p q r i
G26 mode ○ dp ○ dq ○ dr ○ di ○


key: chroma:document
string_value:
G26 mode ○ dp ○ dq ○ dr ○ di ○
Current mode and valid parameters
G26 Pp Qq Rr Ii ; machining program
G25 mode p ○ q ○ r ○ i ○
G26 mode ○ dp dq dr di
(Example 1)
G25 mode p q r i
G26 mode ○ dp ○ dq ○ dr ○ di ○
G26 Rr Ii ;
G25 mode p q r ○ i ○
G26 mode ○ dp ○ dq ○ dr di
(Example 2)


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING
- 161 -
9.SPINDLE SPEED FUNCTION 
(S FUNCTION)
NOTE
Alarm PS1305 is issued because value of specified address P, Q, R, I in the 
machining program is out of valid data range. At this time, about address of 
value out of valid data range, if type of parameters Nos. 4921 to 4924 (dp, dq, 
dr, di) are valid before machining program, type of parameters Nos. 4921 to 
4924 (dp, dq, dr, di) are still valid.
G25 mode p q r i
G26 mode ○ dp ○ dq ○ dr ○ di ○
G26 Rr Ii ;


key: chroma:document
string_value:
G26 Rr Ii ;
G25 mode p q r ○ i ○
G26 mode ○ dp ○ dq ○ dr di
(Example 4)
clear (bit 0 (G26) of parameter No.4902 is set to 1)
G25 mode p q r ○ i ○
G26 mode ○ dp ○ dq ○ dr di
G25 ;
G25 mode ○ p q r i
G26 mode dp dq dr di
G26 ;
G25 mode p q r ○ i ○
G26 mode ○ dp ○ dq ○ dr di
G25 mode p q r ○ i ○
G26 mode ○ dp ○ dq ○ dr di
G25 ;
G25 mode ○ p q r i
G26 mode dp dq dr di
G25 mode p q r ○ i ○
G26 mode ○ dp ○ dq ○ dr di
(Example 3)
clear (bit 0 (G26) of parameter No.4902 is set to 1)


key: chroma:document
string_value:
PROGRAMMING B-64694EN/01
- 162 -
9.SPINDLE SPEED FUNCTION 
(S FUNCTION)
9.6 SPINDLE CONTROL WITH SERVO MOTOR
9.6.1 Spindle Control with Servo Motor
- Command with a program
This function provides SV speed control mode in which spindle rotation commands, S commands, are 
effective to a rotation axis with a servo motor and position control mode in which normal positioning can 
be performed. To place a servo motor under speed control, you must turn SV speed control mode ON


key: chroma:document
string_value:
(G96.4). Once SV speed control mode is turned ON,
S commands are effective to the servo motor until it is canceled.
You cannot specify positioning commands while SV speed control mode is ON. To perform positioning, 
you must cancel SV speed control mode.
To cancel SV speed control mode (turn position control mode ON), you must specify a spindle indexing 
command, G96.1/G96.2.
In position control mode, S commands are invalid as in the normal servo axis state. Note, however, S


key: chroma:document
string_value:
command information is stored; when SV speed control mode is ON, rotation starts at the already 
specified speed.
- Command with a signal
You can also turn SV speed control mode ON/OFF with the SV speed control mode signal SRVON1 to 
SRVON8. When you turn SV speed control mode ON with the signal, and if you turn SV speed control 
mode OFF with a program command, you must specify the SV speed control mode signal or specify


key: chroma:document
string_value:
G96.4 to turn SV speed control mode ON again. You can check the state of SV speed control mode with 
the SV speed control mode in-progress signal SVREV1 to SVREV8. 
When you turn SV speed control mode signal OFF while rotating, spindle indexing is executed. Then SV 
speed control mode is turned off. Spindle indexing is executed with R0(absolute position 0).
NOTE
To specify a M code to turn SV speed control mode ON/OFF by the SV speed 
control mode signal SRVON1 to SRVON8, use an independent block.


key: chroma:document
string_value:
Format
G96.4 P_ ; SV speed control mode ON
M03 (M04) S_ P_ ; Rotation command
S: Spindle speed [min-1
] (numeric value of up to five digits)
P: Spindle selection with multi-spindle control
To specify a spindle selection command P, use parameter No. 3781 (P code for selecting a spindle in 
multi-spindle control).
Using G96.4 and a spindle selection command P can turn the SV speed control mode ON for each axis


key: chroma:document
string_value:
separately. Likewise, using a spindle indexing command (G96.1/G96.2) and a spindle selection command 
P can cancel the SV speed control mode, that is, turn on the position control mode ON, for each axis 
separately.
To specify “G96.4 P_ ;”, use an independent block.
However, it is possible to specify "G96.4 P_ S_ ;".


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING
- 163 -
9.SPINDLE SPEED FUNCTION 
(S FUNCTION)
9.6.2 Spindle Indexing Function
Format
G96.1 P_ R_ ; After spindle indexing is completed, the operation of the next block is 
started.
G96.2 P_ R_ ; Before spindle indexing is completed, the operation of the next block 
is started.
G96.3 P_ ; After it is confirmed that spindle indexing is completed, the operation 
of the next block is started.
P: Spindle selection with multi-spindle control


key: chroma:document
string_value:
R: Stoppage angle [deg] (0 to (parameter No. 1260))
To specify a spindle selection command P, use parameter No. 3781 (P code for selecting a spindle in 
multi-spindle control).
To turn the position control mode ON without performing spindle indexing, do so after canceling the SV 
speed control mode by issuing a G96.1 command with no R specified when the motor is at a halt.
When the motor is rotating, issuing a G96.1 (or G96.2) command with no R specified results in the motor


key: chroma:document
string_value:
coming to a halt by behaving in the same manner as for R0.
NOTE
1 When using G96.2, issue G96.3 before another spindle move command, to 
make sure that the spindle is at a complete halt.
2 To issue G96.1, G96.2, or G96.3, use an independent block.
Spindle indexing command
- Move command
(1) Command waiting for spindle indexing to be completed
If G96.1 is issued, the next block is executed after spindle indexing is completed.
(2) Command not waiting for spindle indexing to be completed


key: chroma:document
string_value:
If G96.2 is issued, the next block can be executed before spindle indexing is completed.
- Movement completion check command
G96.3 is used to check to see if spindle indexing is completed. If it has not been completed, the next 
block waits for spindle indexing to be completed. If it is completed, the next block is executed.
- SV speed control mode cancellation
If G96.1 is used to perform spindle indexing, the SV speed control mode is canceled when spindle 
indexing is completed.


key: chroma:document
string_value:
indexing is completed.
If G96.2 is used to perform spindle indexing, G96.3 can be used to check to see if spindle indexing is 
completed and, if completed, cancel the SV speed control mode. Issuing G96.2 not followed by G96.3 
cannot cancel the SV speed control mode even if spindle indexing is completed.
Start SV speed control mode cancellation at a path to which the axis of interest belongs.
- Spindle indexing command during spindle rotation


key: chroma:document
string_value:
Issuing G96.1 or G96.2 with a position specified during spindle
rotation causes the spindle to stop at the specified position. 
Example)
M03 S1000 ;................ Rotation at S1000
G96.1 P1 R180. ;......... Stoppage of rotation at the 180deg position


key: chroma:document
string_value:
PROGRAMMING B-64694EN/01
- 164 -
9.SPINDLE SPEED FUNCTION 
(S FUNCTION)
- Spindle indexing speed
Issuing G96.1 or G96.2 causes a move speed to be dedicated to
spindle indexing. Specify the move speed for spindle indexing,
using parameter No. 11012.
Spindle indexing command (absolute coordinate/machine coordinate)
Using bit 0 (SIC) of parameter No. 11005 can select which coordinate
system, absolute or machine, is to be used in spindle indexing.
Example:


key: chroma:document
string_value:
Example:
If the difference between the machine and absolute coordinates (machine coordinate – absolute 
coordinate) is 100.000:
- Spindle indexing performed by turning the SV speed control mode signals SRVON1 to 
SRVON8 OFF (“1” to “0”) or issuing a spindle indexing G code (with no R specified)
1. If bit 0 (SIC) of parameter No. 11005 = 0:
Spindle indexing is performed with a machine coordinate of 100.000 and an absolute 
coordinate of 0.000.
2. If bit 0 (SIC) of parameter No. 11005 = 1:


key: chroma:document
string_value:
Spindle indexing is performed with a machine coordinate of 0.000 and an absolute 
coordinate of 260.000.
- G code-based spindle indexing (with R specified)
Assuming that spindle indexing is specified with R100.000:
1. If bit 0 (SIC) of parameter No. 11005 = 0:
Spindle indexing is performed with a machine coordinate of 200.000 and an absolute 
coordinate of 100.000.
2. If bit 0 (SIC) of parameter No. 11005 = 1:
Spindle indexing is performed with a machine coordinate of 100.000 and an absolute


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 10. TOOL FUNCTION (T FUNCTION)
- 165 -
10 TOOL FUNCTION (T FUNCTION)
10.1 TOOL SELECTION FUNCTION
By specifying an up to 8-digit numerical value following address T, a code signal and a strobe signal are 
transmitted to the machine tool. This is used to select tools on the machine.
One T code can be commanded in a block. Refer to the machine tool builder's manual for the number of


key: chroma:document
string_value:
digits commendable with address T and the correspondence between the T codes and machine operations.
When a move command and a T code are specified in the same block, the commands are executed in one 
of the following two ways:
(i) Simultaneous execution of the move command and T function commands.
(ii) Executing T function commands upon completion of move command execution.
The selection of either (i) or (ii) depends on the machine tool builder's specifications. Refer to the manual


key: chroma:document
string_value:
issued by the machine tool builder for details.
Explanations
T
The value after the T code indicates the desired tool. Part of the value is also used as a tool offset number 
that specifies the amount of tool offset or the like. The tool can be selected as follows according to the 
specification method and parameter settings.
Description of a T code (Note 1)
How to specify the offset number for 
each parameter setting Bit 1 (LGN) of parameter No. (Note 2)
5002 = 0
Bit 1 (LGN) of parameter No.


key: chroma:document
string_value:
Bit 1 (LGN) of parameter No. 
5002 = 1
T 
↑ ↑
Tool selection Tool geometry
tool wear offset
T 
↑ ↑
Tool selection Tool wear
tool geometry offset
offset
The tool wear offset number is specified 
using the low-order one digit of a T code.
When parameter No.5028 is set to 1
T 
↑ ↑
Tool selection Tool geometry
tool wear offset
T 
↑ ↑
Tool selection Tool wear
tool geometry offset
offset
The tool wear offset number is specified


key: chroma:document
string_value:
using the low-order two digits of a T code.
When parameter No.5028 is set to 2
T 
↑ ↑
Tool selection Tool geometry
tool wear offset
T 
↑ ↑
Tool selection Tool wear
tool geometry offset
offset
The tool wear offset number is specified 
using the low-order three digits of a T code.
When parameter No.5028 is set to 3
NOTE
1 The maximum number of digits of a T code can be specified by parameter 
No.3032 as 1 to 8.


key: chroma:document
string_value:
No.3032 as 1 to 8.
2 When parameter No.5028 is set to 0, the number of digits used to specify the 
offset number in a T code depends on the number of tool offsets.
Example)
When the number of tool offsets is 1 to 9: Low-order one digit
When the number of tool offsets is 10 to 99: Low-order two digits
When the number of tool offsets is 100 to 999: Low-order three digits


key: chroma:document
string_value:
10. TOOL FUNCTION (T FUNCTION) PROGRAMMING B-64694EN/01
- 166 -
Refer to the machine tool builder's manual for correspondence between the T-code and the tool and the 
number of digit to specify tool selection.
Example (T2+2)
N1G00X1000Z1400;
N2T0313; (Select tool No. 3 and tool offset value No. 13)
N3X400Z1050;
10.2 TOOL MANAGEMENT FUNCTION
Overview
The tool management function totally manages tool information including information about tool offset 
and tool life.
Explanation


key: chroma:document
string_value:
and tool life.
Explanation
A tool type number is specified with a T code. The tool type number is any number the user can define 
freely. With tool type numbers, tools can be grouped by various conditions such as life, compensation 
value, and cutting conditions. When each type is assumed to have a single tool, tool type numbers are 
equivalent to unique tool numbers.
For each tool, an information storage area is prepared in the CNC (SRAM). This area contains


key: chroma:document
string_value:
information such as a tool type number, tool life, tool status (such as a breakage condition), tool 
compensation number (H, D, G, or W), spindle speed (S), cutting feedrate (F), and freely-definable 
customize data. Such data is called tool management data.
A cartridge management table that links cartridge information and tool management data is provided so 
that the CNC can manage the cartridges of the machine and tool change operations. In addition, areas for


key: chroma:document
string_value:
managing the tools in the spindle and tool standby positions are prepared.
When a tool type number is specified using a T code command, a tool that has the tool type number and 
the shortest life is searched for, and the cartridge number and pot number of the location where the tool is 
stored are output to the PMC. Then, a tool change operation using the cartridge number and pot number is 
enabled by the PMC ladder sequence.


key: chroma:document
string_value:
Tool information in the CNC is managed by the tool management data and cartridge management table 
(including the spindle management table and standby position table).
- Tool management data
As tool management data, information about each tool is registered with a tool management data number.
The following number of sets of tool management data can be used:
Tool management function 64 sets 64 sets in total
Tool management function 240 sets 240 sets in total


key: chroma:document
string_value:
Tool management function 1000 sets 1000 sets in total
NOTE
For the number of tool management data sets, refer to the relevant manual 
issued by the machine tool builder.


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 10. TOOL FUNCTION (T FUNCTION)
- 167 -
- Details of data
The following details the tool management data registered for each data number:
- Tool type number (T code)
Item Description
Data length 4byte
Valid data range 0,1 to 99,999,999
- Tool life counter
Item Description
Data length 4byte
Unit of data When the number of use times is specified: Times
When time is specified: Seconds
Valid data range When the number of use times is specified: 0 to 99,999,999 times


key: chroma:document
string_value:
When time is specified: 0 to 3,599,999 s (999 hours 59 minutes 59 seconds)
The value of an increment counter, that is, the number of use times (time) is indicated. The remaining life 
value is [the maximum tool life value minus tool life counter value].
- Maximum tool life value
Item Description
Data length 4byte
Unit of data When the number of use times is specified: Times
When time is specified: Seconds
Valid data range When the number of use times is specified: 0 to 99,999,999 times


key: chroma:document
string_value:
When time is specified: 0 to 3,599,999 s (999 hours 59 minutes 59 seconds)
- Notice life value
Item Description
Data length 4byte
Unit of data When the number of use times is specified: Times
When time is specified: Seconds
Valid data range When the number of use times is specified: 0 to 99,999,999 times
When time is specified: 0 to 3,599,999 s (999 hours 59 minutes 59 seconds)
If a value other than 0 is set, the tool life expiration notice signal TLCHB or TLCHBx is output when the


key: chroma:document
string_value:
remaining life value of the tool (= maximum tool life value minus tool life counter value) has reached the 
set value.
- Tool life status
Item Description
Data length 1byte
Detail data 0: Life management is not performed.
1: Tool not yet used
2: Life remains.
3: Life expired.
4: Tool breakage (skip)
The machine (PMC) determines tool breakage and stores corresponding information through the window.


key: chroma:document
string_value:
In tool management of the CNC, a broken tool is regarded as being equivalent to tools whose lives have 
expired.


key: chroma:document
string_value:
10. TOOL FUNCTION (T FUNCTION) PROGRAMMING B-64694EN/01
- 168 -
- Tool information
Item Description
Data length 1 byte (flag data)
#0 RGS 0: Tool management data is invalid. (-)
1: Tool management data is valid. (R)
#1 TIM 0: Type for counting the number of use times (C)
1: Type for counting time (T)
#2 BDT 0: Normal tool (N)
1: Oversize tool (B)
#3 LOC 0: Data accessible (U)
1: Data not accessible (L)
#4 SEN When the tool life status indicates that tool management is not performed:


key: chroma:document
string_value:
0: This tool is not searched. (-).
1: This tool is searched. (S)
#5 to #7 Reserved
When RGS is set to 0 in tool management data, the tool management data is regarded as not being
registered even when values are set for other items.
NOTE
Make sure you specify the same life count type for all tools of the same type. 
You can check tools of the same type for any difference in life count type, using 
the "check function."
M
- Tool length compensation number (H)
Item Description
Data length 2byte


key: chroma:document
string_value:
Data length 2byte
Valid data range 0 to 999
- Cutter compensation number (D)
Item Description
Data length 2byte
Valid data range 0 to 999
T
- Tool geometry compensation number (G)
Item Description
Data length 2byte
Valid data range 0 to 999
- Tool wear compensation number (W)
Item Description
Data length 2byte
Valid data range 0 to 999
NOTE
When the machine control type is the combined system type, tool length 
compensation and cutter compensation numbers are used for paths for the


key: chroma:document
string_value:
machining center system, and for paths for the lathe system, tool geometry 
compensation and tool wear compensation numbers are used.


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 10. TOOL FUNCTION (T FUNCTION)
- 169 -
- Spindle speed (S)
Item Description
Data length 4byte
Unit of data min-1
Valid data range 1 to 99,999
- Feedrate (F)
Item Description
Data length 4byte
Unit of data mm/min, inch/min, deg/min, mm/rev, inch/rev 
Valid data range 0 to 99,999,999
As additional tool management data, areas for setting customize data (5 data items including customize


key: chroma:document
string_value:
data 0 and customize data 1 to 4) are provided without defining specific usage. The user can use these 
customize data areas freely to set a warning life value, cutting resistance, override value, spindle current 
value, maximum and minimum S/F, and other items according to the targeted application.
- Customize data 0
Item Description
Data length 1 byte (bit type)
Valid data range 0 or 1 on a bit-by-bit basis
- Customize data 1 to 4 (to 20) (to 40)
Item Description
Data length 4byte


key: chroma:document
string_value:
Data length 4byte
Valid data range -99,999,999 to 99,999,999
NOTE
For the maximum number of tool management function customization data
items, refer to the relevant manual issued by the machine tool builder.
- Cartridge management table
The storage status of tools in cartridges is managed with the cartridge management table.
- Multiple cartridge numbers can be defined. (Numbers from 1 to 4, up to four cartridges)


key: chroma:document
string_value:
- The maximum number of pots for all cartridges is 64, 240, or 1000, which depends on whether a 
tool management data option is selected.
- Cartridge numbers and pot numbers can be assigned freely within cartridge management data by 
parameter setting (described later).
- The tool management data number adjacent to a pot number is linked with tool data defined in the 
tool management table. Therefore, the tool attached to the pot is indicated.


key: chroma:document
string_value:
- Zero set as a data number indicates that no tool is attached.
- The cartridge management table can be read from and written to through the PMC window and 
FOCAS2.
- The spindle management table and standby position table are provided to indicate special cartridge 
positions.
- Spindle positions and standby positions, regarded as special cartridge positions, have fixed cartridge 
numbers 11 to 14 (the positions of the first to fourth spindles) and 21 to 24 (the first to fourth 
standby positions).


key: chroma:document
string_value:
standby positions).
- With the PMC window, the spindle position table and standby position table can be read from and 
written to.
- Tool life counting is performed only for the tools at the spindle positions.


key: chroma:document
string_value:
10. TOOL FUNCTION (T FUNCTION) PROGRAMMING B-64694EN/01
- 170 -
- Multi-path system
The tool management data and cartridge management table are common data among the paths. The 
spindle management table and standby position table, however, are treated as independent data for each 
path.
When the spindle table or standby position table is specified as a cartridge from the PMC window, 
specify the following, in which the path number is set in the hundred’s place:
Spindle position


key: chroma:document
string_value:
Spindle position
First Second Third Fourth
First path 111(11) 112(12) 113(13) 114(14)
Second path 211 212 213 214
Standby position
First Second Third Fourth
First path 121(21) 122(22) 123(23) 124(24)
Second path 221 222 223 224
NOTE
When specifying 111, 121, and so on to specify the first path, you may specify 
just 11, 21, and so on.
. . . . .
Tool management data
- Data of each tool such as type number, life status, and compensation number 
- The number of sets of data is 64, 240, or 1000.


key: chroma:document
string_value:
Cartridge management table
- This table indicates the cartridge and pot to which each set of tool management 
data is assigned.
- Up to four cartridges are used.
Path 1 Path 2 Path 10
Standby position table
121 to 124 (21 to 24)
Spindle position table
111 to 114 (11 to 14)
Standby position table
221 to 224
Spindle position table
211 to 214
Standby position table
1021 to 1024
Spindle position table
1011 to 1014
- M/T series


key: chroma:document
string_value:
1011 to 1014
- M/T series
The tool management data and cartridge management table are data common to the M and T series.
- Tool life management and tool change
The CNC performs tool life management, regarding tools having the same tool type number as a group. 
When a tool type number (T code) is specified by an NC program, the tool management data registered in 
the CNC is searched to find a tool having the shortest life among the tools with the same tool type 
number.


key: chroma:document
string_value:
number.
The cartridge number and pot number corresponding to the searched tool are output as a T code signal to 
the PMC. Based on the output cartridge number and pot number, the PMC performs preparation for a tool 
change (to the next tool). A different tool can also be selected on the PMC side.
The CNC performs tool life counting for each tool that is at a spindle position in the spindle management 
table.


key: chroma:document
string_value:
table.
When the lives of all tools having the tool type number specified by the T code have expired, alarm 
PS5317, “ALL TOOL LIFE IS OVER” is issued. If there is a tool in the spindle position or standby 
position, that tool is selected to continue machining.


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 10. TOOL FUNCTION (T FUNCTION)
- 171 -
As the T code signal, a specified tool type number instead of the cartridge number and pot number can 
also be output directly by parameter setting.
There are two types of tool life management counting methods: counting the number of use times and 
counting cutting time. One of the counting methods is set in tool information of tool management data.
Other major specifications related to tool life management are as follows:


key: chroma:document
string_value:
Tool type number (T code) : Up to 8 digits (1 to 99,999,999)
Maximum tool life value : 99,999,999 times when the number of use times is specified
: 999 hours 59 minutes 59 seconds when time is specified
Life count interval when time is specified : 1 second
Tool life management count restart M code : Enabled
Tool life count override : Enabled
To specify a certain tool directly without performing tool life management by tool type number, use the 
following format:


key: chroma:document
string_value:
following format:
M (value in parameter No. 13252) T (cartridge number) (pot number) ;
When parameter No. 13252 is set to 333, the cartridge number is 2, and the pot number is 27, for example, 
the following command is specified:
M333 T20027;


key: chroma:document
string_value:
10. TOOL FUNCTION (T FUNCTION) PROGRAMMING B-64694EN/01
- 172 -
- Tool search order
Tools having a tool type number (T) specified by a program are searched sequentially from tool 
management data number 1 while registered data contents are checked. The following shows how a 
search operation is made within the NC:
Is tool management data valid (is bit 0 (RGS) of tool information set to 1)?
Is tool being edited?
Does tool type number (T) match with specified number?


key: chroma:document
string_value:
Is tool registered in cartridge (is cartridge number non-zero value)?
Is cartridge targeted for search (are bits 0 to 3 of parameter No. 13203 set to 0)?
Is tool registered at spindle position or standby position of another path?
Does tool life status indicate that tool management is not performed (0)?
Is tool excluded from management target a search target (is bit 4 (SEN) of tool information 1)?
Search end
Does tool life status indicate that life expired (3)?


key: chroma:document
string_value:
Does tool life status indicate tool breakage (4)?
Regard tool with smallest remaining life or customize data value as candidate.
Bit 6 (SWC) of parameter No. 13203 (0: Check remaining life, 1: Check customize data)
Check of next tool?
Search end
Yes
No
No
Yes
Yes
No
Yes
No
Yes
No
No
Yes
No Yes
No
Yes
No
No
Yes
Yes


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 10. TOOL FUNCTION (T FUNCTION)
- 173 -
- System variables
The following tool management data of the tool being used as a spindle after a tool change by M06 and 
the tool to be used next which is specified by a T code can be read through custom macro variables:
Being used Item
#8401 Tool management data number
#8402 Tool type number (T)
#8403 Tool life counter
#8404 Maximum tool life value
#8405 Tool notice life value
#8406 Tool life status
#8407 Customize data 0 (bit)


key: chroma:document
string_value:
#8407 Customize data 0 (bit)
#8408 Tool information
#8409 Tool length compensation number (H)
#8410 Cutter compensation number (D)
#8411 Spindle speed (S)
#8412 Cutting feedrate (F)
#8413 Tool geometry compensation number (G)
#8414 Tool wear compensation number (W)
#8431 Customize data 1
#8432 Customize data 2
#8433 Customize data 3
#8434 Customize data 4
#8435 Customize data 5
#8436 Customize data 6
#8437 Customize data 7
#8438 Customize data 8
#8439 Customize data 9


key: chroma:document
string_value:
#8439 Customize data 9
#8440 Customize data 10
#8441 Customize data 11
#8442 Customize data 12
#8443 Customize data 13
#8444 Customize data 14
#8445 Customize data 15
#8446 Customize data 16
#8447 Customize data 17
#8448 Customize data 18
#8449 Customize data 19
#8450 Customize data 20
#8451 Customize data 21
#8452 Customize data 22
#8453 Customize data 23
#8454 Customize data 24
#8455 Customize data 25
#8456 Customize data 26
#8457 Customize data 27
#8458 Customize data 28


key: chroma:document
string_value:
#8458 Customize data 28
#8459 Customize data 29
#8460 Customize data 30
#8461 Customize data 31
#8462 Customize data 32
#8463 Customize data 33
#8464 Customize data 34
#8465 Customize data 35
#8466 Customize data 36
#8467 Customize data 37
For machining 
center systems
For lathe systems


key: chroma:document
string_value:
10. TOOL FUNCTION (T FUNCTION) PROGRAMMING B-64694EN/01
- 174 -
Being used Item
#8468 Customize data 38
#8469 Customize data 39
#8470 Customize data 40
When a cartridge number of a spindle position (11 to 14) or standby position (21 to 24) is specified in 
#8400, information about the corresponding position can be read.
If the spindle position table or standby position table has an empty pot, <empty> is read from #8402 to 
#8470.
Value 0 is read from #8401 (data number).


key: chroma:document
string_value:
Therefore, machining conditions registered in tool management data can be specified directly by coding, 
for example, D#8410, H#8409, S#8411, and F#8412 with a tool change macro (such as M06). Similarly, 
customize data can be referenced by a custom macro, and machining programs can be customized 
according to the tool used.
NOTE
For the maximum number of tool management function customization data
items, refer to the relevant manual issued by the machine tool builder.


key: chroma:document
string_value:
- Specifying a tool compensation number
M
When parameter No. 13265 is 0, a compensation number registered as tool management data of a tool 
attached at a spindle position can be selected by specifying H99 or D99.
(99 is treated as a special number, so 99 cannot be specified directly as a compensation number.)
When other than 0 is set in parameter No. 13265, the number set in the parameter can be specified instead


key: chroma:document
string_value:
of 99. For example, if parameter No. 13265 is 3, specifying H3 specifies the tool length compensation 
number registered for the tool at the spindle position.
T
When the tool management function is not used, a tool compensation number is specified also with a T 
code; when the tool management function is used, the T code is used only to specify a tool type number, 
so a tool compensation number must be specified with address D.


key: chroma:document
string_value:
Except the specifications for addresses, the specifications for the number of permissible digits (parameter 
No. 3032) and the number of digits consisting of a compensation number (parameter No. 5028), 
separation of geometry compensation numbers and wear compensation numbers (bit 1 (LGN) of 
parameter No. 5002), and so on are the same as for T.
If parameter No. 13265 is set to 0, when a compensation number registered for a tool attached at a spindle


key: chroma:document
string_value:
position is specified, the specification format varies according to the number of digits as follows, which is 
the same as for conventional T:
When the compensation number is 1 digit long : D9
When the compensation number is 2 digits long : D99
When the compensation number is 3 digits long : D999
Because 9, 99, or 999 is treated as a special number, it cannot be specified directly as a compensation 
number.


key: chroma:document
string_value:
number.
Unless parameter No. 13265 is set to 0, the number set in the parameter can be specified instead of 9, 99, 
or 999. When parameter No. 13265 is set to 3, specifying D3 specifies the tool geometry compensation 
number and tool wear compensation number registered for a tool attached at the spindle position.


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 10. TOOL FUNCTION (T FUNCTION)
- 175 -
Multi-path system
Depending on whether the local path is a machining center system or a lathe system, tool compensation 
numbers are specified by using one of the above methods.
Spindle selection
When specifying compensation numbers of a tool attached to a spindle other than the first spindle, specify 
the spindle number with address P within the same block that contains H/D. When specifying the first 
spindle, you can omit P.


key: chroma:document
string_value:
spindle, you can omit P.
D99 P3; Specifying compensation numbers registered for the tool attached at the third spindle
D99; Specifying compensation numbers registered for the tool attached at the first spindle
- Read/write operations for tool management data and cartridge management 
table
The tool management data and cartridge management table can be read from and written to by using the 
CNC/PMC data window library (FOCAS2). Therefore, a specific tool management system including all


key: chroma:document
string_value:
available tool data not registered in the CNC can be built easily by using the personal computer function.
Similarly, the tool management data and cartridge management table can also be read from and written to 
using the PMC window.
Tool management data of the tool being used as a spindle after a tool change operation performed by M06 
and the tool being selected by specifying a T code can be read using a custom macro.


key: chroma:document
string_value:
The user can modify tool management data by MDI from the tool management function screen of the 
CNC. Addition, modification, and deletion of the above tool management data can be made from a part 
program (G10). Such data can also be input to and output from external I/O equipment by using the ALL 
I/O screen and tool management function screen.
- G10 format
Addition, modification, and deletion are performed for the tool management data and cartridge


key: chroma:document
string_value:
management table from programs. For use of this function, the programmable data input option function 
is required.
If a format error is found in the commands from G10 L75/L76/L77 to G11, or if a value beyond the valid 
data range is specified, alarm PS5312, “ILLEGAL COMMAND IN G10 L75/76/77” is issued. In such a 
case, correct the program. Within the range from G10 to G11, no decimal point can be specified with any


key: chroma:document
string_value:
address. If a decimal point is specified, alarm PS0007, “ILLEGAL USE OF DECIMAL POINT” results.
- Registering new tool management data
Tool management data can be registered. When data is output to an external device from the tool
management data screen, this format is used. The specification of those items that are not registered may 
be omitted.


key: chroma:document
string_value:
10. TOOL FUNCTION (T FUNCTION) PROGRAMMING B-64694EN/01
- 176 -
G10 L75 P1;
N_ ; Tool management data number specification
T_ C_ L_ I_ B_ Q_ H_ D_ S_ F_ J_ K_ ;
P0 R_ ; Customization data 0
P1 R_ ; Customization data 1
P2 R_ ; Customization data 2
P3 R_ ; Customization data 3
P4 R_ ; Customization data 4
N_ ; Next tool management data number specification
:
G11;
N_ Tool management data No. 1 to 64 (1 to 240, 1 to 1000)
T_ Tool type No. (T) 0 to 99,999,999
C_ Tool life counter 0 to 99,999,999


key: chroma:document
string_value:
L_ Maximum tool life 0 to 99,999,999
I_ Noticed life 0 to 99,999,999
B_ Tool life state 0 to 4
Q_ Tool information Bit format (8 bits)
H_ Tool length compensation No. (H) 0 to 999 (M series)
D_ Cutter compensation No. (D) 0 to 999 (M series)
S_ Spindle speed (S) 0 to 99,999
F_ Cutting feedrate (F) 0 to 99,999,999
J_ Tool geometry compensation No. (G) 0 to 999 (T series)
K_ Tool geometry compensation No. (W) 0 to 999 (T series)
P_ Customization data No. 0 to 4 (0 to 20, 0 to 40)


key: chroma:document
string_value:
R_ Customization data value -99,999,999 to 99,999,999
Specify customization data in the following format:
P (customization-number) R (value)
Use the bit format only when specifying the customization data 0 (P0). Specify other data in the binary 
format. The specification of customization data that need not be set may be omitted.
Example)
G10 L75 P1;
N1 ; Tool management data No.1
T10000001 C0 L1000 B1 Q00000001 H1 D1 S4000 F10000 ;
P0 R11101101 ; Customization data 0


key: chroma:document
string_value:
P4 R99999999 ; Customization data 4
N2 ; Tool management data No.2
T10000002 C0 L2000 B1 Q00000001 H2 D2 S3000 F6000 ;
P1 R200 ; Customization data 1
P2 R10 ; Customization data 2
N5 ; Tool management data No.5
T10000005 C0 L5000 B1 Q00000001 H5 D5 S5000 F11000 ;
P2 R1 ; Customization data 2
P3 R500 ; Customization data 3
G11 ;
Registering tool management data No.1
Registering tool management data No.2
Registering tool management data No.5


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 10. TOOL FUNCTION (T FUNCTION)
- 177 -
Modifying tool management data
Tool management data can be modified.
The specification of those items that are not modified may be omitted.
G10 L75 P2 ;
N_ ;
T_ C_ L_ I_ B_ Q_ H_ D_ S_ F_ J_ K_ ;
P_ R_ ;
N_ ;
:
G11 ;
Deleting tool management data
The data of a specified data number can be deleted from tool management data.
The cartridge management table data corresponding to a deleted tool management data number is also


key: chroma:document
string_value:
deleted. (The tool management data number in the cartridge management table is cleared to 0.)
G10 L75 P3 ;
N_ ;
N_ ;
:
N_ ;
G11 ;
Registering new cartridge management table data
A tool management data number can be registered with a free pot in the cartridge management table.
G10 L76 P1 ; 
N cartridge-number P pot-number R tool-management-data-number ;
N cartridge-number P pot-number R tool-management-data-number ;
N cartridge-number P pot-number R tool-management-data-number ;


key: chroma:document
string_value:
N cartridge-number P pot-number R tool-management-data-number ;
G11 ;
For a spindle position table and standby position table, only cartridge number data is specified.
Example)
G10 L76 P2 ; 
N11 R1; Changes the tool management data number of the spindle position to No. 1.
N21 R29; Changes the tool management data number of the standby position to No. 29.
G11 ;
Modifying the cartridge management table
Tool management data numbers in the cartridge management table can be modified.


key: chroma:document
string_value:
10. TOOL FUNCTION (T FUNCTION) PROGRAMMING B-64694EN/01
- 178 -
G10 L76 P2 ; 
N cartridge-number P pot-number R tool-management-data-number ;
N cartridge-number P pot-number R tool-management-data-number ;
N cartridge-number P pot-number R tool-management-data-number ;
N cartridge-number P pot-number R tool-management-data-number ;
G11 ;
For a spindle position table and standby position table, only cartridge number data is specified.
Example)
G10 L76 P2 ;


key: chroma:document
string_value:
Example)
G10 L76 P2 ; 
N11 R1; Changes the tool management data number of the spindle position to No. 1.
N21 R29; Changes the tool management data number of the standby position to No. 29.
G11 ;
Deleting cartridge management table data
Tool management data numbers can be deleted from the cartridge management table.
G10 L76 P3 ; 
N cartridge-number P pot-number ;
N cartridge-number P pot-number ;
N cartridge-number P pot-number ;
N cartridge-number P pot-number ;
G11 ;


key: chroma:document
string_value:
G11 ;
For a spindle position table and standby position table, only cartridge number data is specified.
Example)
G10 L76 P3 ; 
N11 ; Deletes the tool management data number of the spindle position (clears the number to 0).
N21 ; Deletes the tool management data number of the standby position (clears the number to 0).
G11 ;


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 10. TOOL FUNCTION (T FUNCTION)
- 179 -
Naming customization data
The display name of customization data (0 to 40) can be set.
G10 L77 P1 ; 
N_ ;
P_ R_ ;
P_ R_ ;
;
N_ ;
P_ R_ ;
P_ R_ ;
G11 ;
N_: Customization data No. (0 to 40)
P_: Character No. (1 to 16)
R_: Character code (ASCII)
- Specify 0 to clear data.
- A set display name can be checked on the tool management data screen only.


key: chroma:document
string_value:
- When no name is registered, a name such as the default "Customize 3" is displayed.
- A name consisting of up to 16 characters is displayed. For a name shorter than 16 characters, register 
0 in the empty area. Those characters that are registered immediately before 0 are displayed.
- To clear data, set 0 as a character code.
- No character code data check is made.
When the name of customization data 3 is set as "MEASURE5", for example, specify the following:
Example)
G10 L77 P1 ;


key: chroma:document
string_value:
Example)
G10 L77 P1 ;
N3 ; Specifies customization data 3.
P1 R32 ; character ‘space’ ASCII code 20h
P2 R77 ; character “M” ASCII code 4Dh
P3 R69 ; character “E” ASCII code 45h
P4 R65 ; character “A” ASCII code 41h
P5 R83 ; character “S” ASCII code 53h
P6 R85 ; character “U” ASCII code 55h
P7 R82 ; character “R” ASCII code 54h
P8 R69 ; character “E” ASCII code 45h
P9 R53 ; character “5” ASCII code 35h
P10 R0 ; Clears data. (Not displayed. End)
G11 ;


key: chroma:document
string_value:
10. TOOL FUNCTION (T FUNCTION) PROGRAMMING B-64694EN/01
- 180 -
 Naming tool life states
The display name of a tool life state (0 to 4) can be set.
G10 L77 P2 ; 
N_ ;
P_ R_ ;
P_ R_ ;
N_ ;
P_ R_ ;
P_ R_ ;
G11 ;
N_: Tool life state (0 to 4)
P_: Character No. (1 to 12)
R_: Character code (ASCII)
- Specify 0 to clear data.
- A set display name can be checked on the tool management data screen only.
- If no name is registered, a default such as "Remaining" and "Unremaining" is displayed.


key: chroma:document
string_value:
- A name consisting of up to 12 characters is displayed. For a name shorter than 12 characters, register 
0 in the empty area. Those characters that are registered immediately before 0 are displayed.
- To clear data, set 0 as a character code.
- No character code data check is made.
- The defaults are as follows:
- 0: Invalid
- 1: Remaining
- 2: Remaining
- 3: Unremaining
- 4: Broken
To set "NORMAL" as the name of tool life state 2 (Remaining), specify the following:
Example)
G10 L77 P2 ;


key: chroma:document
string_value:
Example)
G10 L77 P2 ;
N2 ; Specifies tool life state 2.
P1 R78 ; character “N” ASCII code 4Eh
P2 R79 ; character “O” ASCII code 4Fh
P3 R82 ; character “R” ASCII code 52h
P4 R77 ; character “M” ASCII code 4Dh
P5 R65 ; character “A” ASCII code 41h
P6 R76 ; character “L” ASCII code 4Ch
P7 R0 ; Clears data. (Not displayed. End)
G11 ;


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 10. TOOL FUNCTION (T FUNCTION)
- 181 -
10.3 TOOL MANAGEMENT EXTENSION FUNCTION
Overview
The following functions have been added to the tool management function:
1. Customization of tool management data display
2. Setting of spindle position/standby position display
3. Input of customize data with the decimal point
4. Protection of various tool information items with the KEY signal
5. Selection of a tool life count period
6. Each tool data screen


key: chroma:document
string_value:
6. Each tool data screen
7. Total life time display for tools of the same type
They will be explained in detail below.
10.3.1 Customization of Tool Management Data Display
With the tool management data screen display customization function, the display positions of screen
elements (type number, tool information, life counter, and so forth) on the tool management screen can be 
changed and whether to display or hide such screen elements can be chosen using the G10 format. This


key: chroma:document
string_value:
function enables a customized tool management screen to be configured.
Format
G10L77P3;
N_ R_;
G11;
N_: Tool management data screen display position number
R_: Tool management data display item
Explanation
- number (N_)
- A display position number represents an ordinal number from the leftmost position on the tool 
management data screen.
- As N, a number from 1 to 200 can be specified.
- Tool management data display item (R_)
- For a value to be set (in R_), see the table below.


key: chroma:document
string_value:
- For actual setting, consider a display width plus 1.
- Items common to machining center systems and lathe systems
R Item Display width Remarks
-1 End of setting -
0 Blank column 10
1 No. 4 For spindle/standby positions for 2
paths
2 TYPE-NO. 8
3 MG 4
4 POT 5
5 T-INFORMATION 10
6 L-COUNT 10
7 MAX-LIFE 10
8 NOTICE-L 10


key: chroma:document
string_value:
10. TOOL FUNCTION (T FUNCTION) PROGRAMMING B-64694EN/01
- 182 -
R Item Display width Remarks
9 L-STATE 6 or 12 The display width is switched by bit 
1 of parameter No. 13201.
10 S (Spindle speed) 10
11 F (Feedrate) 10
12 Tool figure number (A) 3
- Offset-related items for machining center systems 
R Item Display width Remarks
20 H (Tool length compensation number) 4
21 D (Cutter compensation number) 4
22 OFFSET-M 10 Tool offset memory A
25 GEOMETRY(H) 10 Tool offset memory C
26 WEAR(H) 10


key: chroma:document
string_value:
26 WEAR(H) 10
27 GEOMETRY(D) 10
28 WEAR(D) 10
- Offset-related items for lathe systems 
R Item Display width Remarks
40 TG (Tool geometry compensation
number)
4
41 TW (Tool wear compensation number) 4
42 OFFSET-X 10
43 OFFSET-Z 10
44 OFFSET-R 10 Tool nose radius compensation
45 TIP 10
46 OFFSET-Y 10 Y-axis offset
47 OFFSET-B 10 B-axis control
48 GEOMETRY (X) 10 Tool geometry/wear compensation
49 WEAR (X) 10
50 GEOMETRY (Z) 10
51 WEAR (Z) 10


key: chroma:document
string_value:
51 WEAR (Z) 10
52 GEOMETRY (R) 10 Tool nose radius compensation, Tool 
53 GEOMETRY TIP 10 geometry/wear compensation
54 WEAR (R) 10
55 WEAR TIP 10
56 GEOMETRY (Y) 10 Y-axis offset, Tool geometry/ wear 
57 WEAR (Y) 10 compensation
58 GEOMETRY (B) 10 B-axis control, Tool geometry/ wear 
59 WEAR (B) 10 compensation
60 GEOMETRY (X2) 10 2nd geometry tool offset
61 GEOMETRY (Z2) 10
62 GEOMETRY (Y2) 10
Items related to customize data
R Item Display width Remarks
80 CUSTOM 0 10
81 CUSTOM 1 10


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 10. TOOL FUNCTION (T FUNCTION)
- 183 -
R Item Display width Remarks
85 CUSTOM 5 10 Tool management function customize 
data extension (5 to 20) or tool 
management function customize data
extension (5 to 40)
86 CUSTOM 6 10
87 CUSTOM 7 10
88 CUSTOM 8 10
89 CUSTOM 9 10
90 CUSTOM 10 10
91 CUSTOM 11 10
92 CUSTOM 12 10
93 CUSTOM 13 10
94 CUSTOM 14 10
95 CUSTOM 15 10
96 CUSTOM 16 10
97 CUSTOM 17 10
98 CUSTOM 18 10
99 CUSTOM 19 10
100 CUSTOM 20 10


key: chroma:document
string_value:
100 CUSTOM 20 10
101 CUSTOM 21 10 Tool management function customize 
102 CUSTOM 22 10 data extension (5 to 40)
103 CUSTOM 23 10
104 CUSTOM 24 10
105 CUSTOM 25 10
106 CUSTOM 26 10
107 CUSTOM 27 10
108 CUSTOM 28 10
109 CUSTOM 29 10
110 CUSTOM 30 10
111 CUSTOM 31 10
112 CUSTOM 32 10
113 CUSTOM 33 10
114 CUSTOM 34 10
115 CUSTOM 35 10
116 CUSTOM 36 10
117 CUSTOM 37 10
118 CUSTOM 38 10
119 CUSTOM 39 10
120 CUSTOM 40 10
NOTE


key: chroma:document
string_value:
120 CUSTOM 40 10
NOTE
1 If G10 L77 P3 is terminated normally, the power must be turned off before 
operation is continued.
2 The setting becomes effective after the power is turned off then back on.


key: chroma:document
string_value:
10. TOOL FUNCTION (T FUNCTION) PROGRAMMING B-64694EN/01
- 184 -
Example
Example of setting tool offset memory A
G10L77P3;
N1 R1;
N2 R2;
N3 R3;
N4 R4;
N5 R5;
N6 R6;
N7 R7;
N8 R8;
N9 R9;
N10 R11;
N11 R21; 
N12 R22;
N13 R80;
N14 R81;
N15 R-1;
G11;
Set tool management data screen display customization
Set No. as number 1
Set TYPE-NO. as number 2
Set MG as number 3
Set POT as number 4
Set T-INFORMATION as number 5
Set L-COUNT as number 6
Set MAX-LIFE as number 7


key: chroma:document
string_value:
Set MAX-LIFE as number 7
Set NOTICE-L as number 8
Set L-STATE as number 9
Set F (Feedrate) as number 10
Set D as number 11
Set OFFSET-M as number 12
Set CUSTOM 0 as number 13
Set CUSTOM 1 as number 14
End
Cancel the setting mode
On the tool management data screen, the first page displays "No., Type Number, MG, Pot, Tool 
Information, Life Counter, Maximum Life, Noticed Life, and Life State".
The second page displays "F (Feedrate), D (Cutter Compensation Number), Tool Offset-M, Customize


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 10. TOOL FUNCTION (T FUNCTION)
- 185 -
Example 1: Page 2
NOTE
1 This setting is enabled when bit 0 (TDC) of parameter No. 13201 is set to 1.
2 Up to 20 pages can be set.
3 Be sure to specify an end.
4 If an item that requires the corresponding option is specified without specifying
the option, the item is displayed as a blank field.
5 No items after an end are displayed.
(Example) In the case of N1 → R1 (No.), N2 → R2 (Type Number), N 3 → R3


key: chroma:document
string_value:
(MG), N4 → R-1 (End), N5 → R4 (Pot), only the items "No., Type
Number, and MG" are displayed on the screen.
6 If G10 L77 P3 is specified, the setting immediately before is initialized.
7 If an invalid value is set in R (tool management data display item), a blank field is 
displayed.
10.3.2 Setting of Spindle Position / Standby Position Display
In MG on the tool management data screen, a spindle position or standby position is displayed as a


key: chroma:document
string_value:
number such as 11, 12, and 13. With the spindle position/standby position display setting function, three 
arbitrary characters can be displayed using the G10 format.
Format
G10L77P4;
N_;
P_R_;
G11;
N_: Spindle position/standby position setting
P_: Character number
R_: Character code


key: chroma:document
string_value:
10. TOOL FUNCTION (T FUNCTION) PROGRAMMING B-64694EN/01
- 186 -
Explanation
- Spindle position/standby position setting (N_)
Specify a spindle position or standby position to be renamed. The table below indicates the values to be 
specified.
Spindle position
First Second Third Fourth
1st path 111 112 113 114
2nd path 211 212 213 214
Standby position
First Second Third Fourth
1st path 121 122 123 124
2nd path 221 222 223 224
- Character number (P_)


key: chroma:document
string_value:
- Character number (P_)
Specify a character number (1 to 3). Up to three characters are displayed. If a character string to be 
specified is shorter than three characters, specify 0 in the leading blank character position(s). A character
string immediately before 0 is displayed.
- Character code (R_)
Set the name of a spindle position/standby position by using a character code (ASCII code).
- For a character code, use ASCII code.
- No character code data check is made.
Example


key: chroma:document
string_value:
Example
When spindle 1 is named "SP1", and standby 1 is named "WT1"
G10L77P4; Set spindle position/standby position
N111; Specify spindle 1
P1 R83; 53h as ASCII code for "S"
P2 R80; 50h as ASCII code for "P"
P3 R49; 31h as ASCII code for "1"
N121; Specify standby 1
P1 R87; 57h as ASCII code for "W"
P2 R84; 54h as ASCII code for "T"
P3 R49; 31h as ASCII code for "1"
G11; Cancel the setting mode
In the MG item on the tool management data screen, spindle 1 is displayed as "SP1", and standby 1 is


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 10. TOOL FUNCTION (T FUNCTION)
- 187 -
NOTE
Data registered becomes effective after the screen display is switched to the tool 
management screen.
10.3.3 Input of Customize Data with the Decimal Point
With the function for input of customize data with the decimal point, the number of decimal places is set 
using the G10 format for each customize data item (customize data 1, ..., 40) to enable data input with the 
decimal point.
Format
G10L77P5;
N_R_;
G11;


key: chroma:document
string_value:
Format
G10L77P5;
N_R_;
G11;
N_: Customize data number
R_: Decimal point position
Explanation
- Customize data number (N_)
- A number from 1 through 4 can be specified for N.
- When tool management function customize data extension (from 5 through 20) is available, 
A number from 1 through 20 can be specified.
- When tool management function customize data extension (from 5 through 40) is available, 
A number from 1 through 40 can be specified.
- Decimal point position (R_)


key: chroma:document
string_value:
- Decimal point position (R_)
Specify a decimal point position (from 0 through 7). When 0 is set, the number of decimal places of 
customize data input cannot be performed.


key: chroma:document
string_value:
10. TOOL FUNCTION (T FUNCTION) PROGRAMMING B-64694EN/01
- 188 -
NOTE
1 If G10 L77 P5 is terminated normally, the power must be turned off before 
operation is continued.
2 The setting becomes effective after the power is turned off then back on.
3 When the number of decimal places is set for customize data, the number of 
decimal places can be input only through the MDI keys.
4 To set the number of decimal places for customize data 5 to 20, the customize


key: chroma:document
string_value:
data extension (5 to 20) option for the tool management function or the 
customize data extension (5 to 40) for the tool management function is required.
5 To set the number of decimal places for customize data 21 to 40, the customize 
data extension (5 to 40) for the tool management function is required.
Example 1
When customize data 1 and customize data 2 are input with three decimal places
G10L77P5; Set the number of decimal places for customize data


key: chroma:document
string_value:
N1 R3; Set the number of decimal places to 3 for customize data 1
N2 R3; Set the number of decimal places to 3 for customize data 2
G11; Cancel the setting mode
- Use in the G10 format
Between G10 and G11, the decimal point cannot be specified at any address. So, if decimal point input
for customize data is enabled with this function, a G10 L75/L76/L77 command using a custom macro 
variable (#8431 to #8450) reads and sets the value of the integer part.
Example 2
(Example 1)
Condition:


key: chroma:document
string_value:
(Example 1)
Condition:
"3" is set as the decimal point position of customize data 1.
"1" is set as the decimal point position of customize data 2.
Operation:
Data is transferred from customize data 1 to customize data 2 by using a custom macro
variable.


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 10. TOOL FUNCTION (T FUNCTION)
- 189 -
G10L77P5; <1> Set customize data decimal point position
N1 R3; <2> Set 3 as decimal point position of customize data 1
N2 R1; <3> Set 1 as decimal point position of customize data 2
G11; <4> Cancel the setting mode
;
G10 L75 P1; <5> Register tool management data
N01; <6> Register with No. 1
P1 R12345; <7> Set “12.345” for customize data 1
P2 R#8431; <8> Set “1.2” for customize data 2
G11; <9> Cancel the setting mode


key: chroma:document
string_value:
In Example 1, customize data 1 is directly set in customize data 2 by using a custom macro variable.
Customize data 1 holds "12.345". In step <8>, only the integer part is read and processed as "P2 
R12".
So, "1.2" is set in customize data 2.
(Example 2)
Condition:
"3" is set as the decimal point position of customize data 1.
"1" is set as the decimal point position of customize data 2.
Operation:
By using the custom macro variable of customize data 1, the data is transferred to customize


key: chroma:document
string_value:
data 2 after being multiplied by 1000.
G10L77P5; <1> Set customize data decimal point position
N1 R3; <2> Set 3 as decimal point position of customize data 1
N2 R1; <3> Set 1 as decimal point position of customize data 2
G11; <4> Cancel the setting mode
;
G10 L75 P1; <5> Register tool management data
N01; <6> Register with No. 1
P1 R12345; <7> Set “12.345” for customize data 1
P2 R[#8431*1000]; <8> Set “1234.5” for customize data 2
G11; <9> Cancel the setting mode


key: chroma:document
string_value:
In Example 2, customize data 1 is directly set in customize data 2 by using a custom macro variable.
Customize data 1 holds "12.345". In step <8>, the data is multiplied by 1000 to eliminate the 
fractional part.
So, this command is equivalent to "P2 R12345", so that "1234.5" is set in customize data 2.
10.3.4 Protection of Tool Information with the KEY Signal
When tool management data is in the edit state, information in it can be modified. By setting bit 0 of


key: chroma:document
string_value:
parameter No. 13204 to 1, tool management data is protected with the KEY signal so that information in 
it cannot be registered, modified, and deleted.


key: chroma:document
string_value:
10. TOOL FUNCTION (T FUNCTION) PROGRAMMING B-64694EN/01
- 190 -
10.3.5 Selection of a Tool Life Count Period
A tool life count period can be chosen either 1 sec or 8 msec tool-by-tool.
- Tool life count period selection
Bit 5 of tool information is used to select a life count period.
Item Description
Data length 1 byte (flag data)
#5 REV 0: A life count period of 1 sec is used. (S)
1: A life count period of 8 msec is used. (M)
Range of count is as follows.


key: chroma:document
string_value:
Range of count is as follows.
1sec: 0 to 3,599,999 seconds (999 hours 59 minutes 59 seconds)
8msec: 0 to 3,599,992 ms (59 minutes 59 seconds 992 milliseconds)
NOTE
This function is valid when the tool information TIM (#1) is set to 1.
10.3.6 Each tool Data Screen
All data for a specified tool can be extracted and displayed.
10.3.7 Total Life Time Display for Tools of The Same Type
The remaining lives of tools with the same type numbers are totaled, and totals are displayed in order by


key: chroma:document
string_value:
tool type number or by remaining life. Also, data of tools with the same tool type numbers are displayed 
in a list.


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 10. TOOL FUNCTION (T FUNCTION)
- 191 -
10.4 TOOL MANAGEMENT FUNCTION FOR OVERSIZE TOOLS
Overview
Tool management function for oversize tools is added to the tool management function.
The figure of an oversize tool can be defined freely, and the figure of each oversize tool is registered. 
When an oversize tool is stored in a cartridge, interference with tools stored in other pots is considered. 
This function is usable with cartridges of chain type and matrix type.
Format


key: chroma:document
string_value:
Format
By G10 data input, an oversize tool number can be set in the tool management data. Moreover, tool figure
data can be set.
<Registration of new tool management data>
G10 L75 P1 ; 
N_;
A_;
G11 ;
N_: Tool management data number
A_: Specify tool figure number (0 to 20).
<Modification of tool management data>
G10 L75 P2; 
N_;
A_;
G11 ;
N_: Tool management data number
A_: Specify tool figure number (0 to 20).
<Registration of tool figure data>
G10 L77 P6 ; 
N_P_Q_R_S_T_;
G11 ;


key: chroma:document
string_value:
N_P_Q_R_S_T_;
G11 ;
N_: Tool figure number
P_: Number of pots to be occupied in left direction (in steps of 0.5 pot)
Q_: Number of pots to be occupied in right direction (in steps of 0.5 pot)
R_: Number of pots to be occupied in upper direction (in steps of 0.5 pot)
S_: Number of pots to be occupied in lower direction (in steps of 0.5 pot)
T_: 0 for figure A, or 1 for figure B
NOTE
1 If a target tool is registered in a cartridge and interferes with other tools in


key: chroma:document
string_value:
registration or modification of tool figure data of the tool management data, 
alarm PS5360, “TOOL INTERFERENCE CHECK ERROR” is issued. (The data
is not input.)
2 If a tool interferes with other tools in registration or modification to the cartridge
management table, alarm PS5360 is issued. (The data is not input.)
3 If an attempt is made to modify tool figure data, and the tool for which the tool
figure data number subject to modification is set is registered in the cartridge,


key: chroma:document
string_value:
10. TOOL FUNCTION (T FUNCTION) PROGRAMMING B-64694EN/01
- 192 -
10.5 TOOL LIFE MANAGEMENT
Tools are classified into several groups, and a tool life (use count or use duration) is specified for each 
group in advance. Each time a tool is used, its life is counted, and when the tool life expires, a new tool 
that is sequenced next within the same group is selected automatically. With this function, the tool life


key: chroma:document
string_value:
can be managed while machining is being performed continuously. Data for tool life management 
consists of tool group numbers, tool life values, tool numbers, and codes for specifying a tool offset value. 
These data items are registered in the CNC.
Tool group number m
Tool life value l
1 Tool number (T) Code for specifying tool offset 
value (H/D)
1st-tool management data
2 : : 2nd-tool management data
:
:
:
:
:
:
:
:
n : : nth-tool management data
Machine and CNC operations


key: chroma:document
string_value:
Machine and CNC operations
Machine CNC
Places a 
selected tool 
in the wait 
state.
Automatically 
selects, from tool 
group m, a tool 
whose life has not 
expired.
Attaches the 
tool in the 
wait state to 
the spindle 
(tool 
change).
Starts counting the 
life of the tool 
attached to the 
spindle.
Tool life 
management data
Tool group number 1
 :
 :
Tool group number m
 :
 :
Tool group number p
Machining program
 :
 :
Command for selecting 
tool group m
 :
 :


key: chroma:document
string_value:
tool group m
 :
 :
Tool change command 
(M06)
 :
 :
Select 
tool.
Fig. 10.5 (a) Tool selection from machining program
M
A group is selected by a T code, and tool life counting is started by the M06 command.
T
The T series has two tool change types (the turret type and the ATC type). The turret type uses only a T 
code to select a group, specify a tool offset value, and start tool life counting, whereas the ATC type, like


key: chroma:document
string_value:
the M series, uses a T code to select a group and the M06 command to start tool life counting. With the 
ATC type, only a D code is used for specifying a tool offset value. The tool change type is selected by bit 
3 (TCT) of parameter No. 5040.
CAUTION
This function cannot be used if bit 1 (LGN) of parameter No. 5002 is set to 1 to 
use the same number as the tool selection number to specify a geometric offset 
number.
- Life management B function


key: chroma:document
string_value:
- Life management B function
If the tool life management B function is enabled, the maximum tool life value can be extended, and the 
tool life expiration prior notice signal can be output to post tool life expiration in advance when the 
remaining life (the life value minus the life counter value) has reached the remaining life setting. The 
remaining life setting is registered as tool life management data in the CNC in advance.


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 10. TOOL FUNCTION (T FUNCTION)
- 193 -
M
If the tool life management B function is enabled, the function for selecting a tool group by an arbitrary 
group number can be used.
T
The tool life management B function can be used. However, the function for selecting a tool group by an 
arbitrary group number can be used only if the tool change type is the ATC type (bit 3 (TCT) of 
parameter No. 5040 = 1).
- Maximum number of tool life management groups and multipath system


key: chroma:document
string_value:
Up to 256 tool life management groups can be used in the entire CNC system.
For each path, set a maximum number of groups to be used in parameter No. 6813.
The maximum number of groups must be a multiple of the minimum number of groups (eight groups). If 
the maximum number of groups is 0, the tool life management function is disabled.
The total number of groups in the entire CNC system can be expanded to 1024 groups by using the 
additional tool life management groups.


key: chroma:document
string_value:
Multipath system (when tool life management is performed for three paths)
Suppose that, of the total groups in the system (256 groups), 128 groups are 
allocated to path 1, 64 groups to path 2, and 64 groups to path 3. Then, set 
parameter No. 6813 as follows:
Tool life management data file
(256 groups in total in system)
Path 1
Up to 128 groups
Path 2
Up to 64 groups
Path 3
Up to 64 groups
 Parameter No. 6813
Path 1
Set 128 in parameter
Path 2
Set 64 in parameter
Path 3


key: chroma:document
string_value:
Set 64 in parameter
Path 3
Set 64 in parameter
Fig. 10.5 (b) Group allocation in entire system
CAUTION
Re-setting this parameter results in the tool life management data file being 
cleared at power-on. Once the parameter is re-set, register tool life management 
data for each path again.
- System variables
The following system variables for life data can be used in tool life management.
System variable 
number
System variable 
name
Attrib
ute
Description


key: chroma:document
string_value:
name
Attrib
ute
Description
#181000 [#_TLMGN_C] R Tool life management data (Tool group numbers)
#181001 [#_TLMML_C] R Tool life management data (Tool life values)
#181002 [#_TLMLC_C] R Tool life management data (Life counter values)
Tool life values and life counter values are read by the following unit according to the life count type.
Life count type Unit
Count 1-time
Duration 1-minute


key: chroma:document
string_value:
10. TOOL FUNCTION (T FUNCTION) PROGRAMMING B-64694EN/01
- 194 -
NOTE
1. Zero is read from the system variables #181000 to #181002 when a group being 
used not exists.
2. Bit 0 (FCO) of parameter No.6805 not affect to the unit of tool life values and life 
counter values.
3. The information before change might be read from the system variables when 
the following states. The system variables should be used after passing 100ms 
from changing.


key: chroma:document
string_value:
from changing.
- Immediate aftermath of changing a group being used by M06 (When T 
system with setting bit 3 (TCT) of parameter No.5040 to 1 or M system.)/T 
codes (When T system with setting bit 3 (TCT) of parameter No.5040 to 0).
- Immediate aftermath of changing tool life management data by G10L3 
command.
4. When the system variables #181000 to #181002 is specified, alarm PS0115 
“VARIABLE NO. OUT OF RANGE” occurs if tool life management is invalid.


key: chroma:document
string_value:
5. Real-time custom macro does not support the system variables #181000 to 
#181002. When the system variables #181000 to #181002 is specified in 
real-time custom macro, alarm PS0390 “ILLEGAL MACRO VAR” occurs.
10.5.1 Tool Life Management Data
Tool life management data consists of tool group numbers, tool numbers, codes for specifying a tool 
offset value, tool life values, arbitrary group numbers, and remaining life settings.


key: chroma:document
string_value:
Whether to use arbitrary group numbers and remaining life settings can be specified by setting bit 5 
(TGN) and bit 3 (GRP) of parameter No. 6802.
Explanation
- Tool group number
Up to 256 tool life management groups can be used in the entire CNC system.
In parameter No. 6813, set a maximum number of groups to be used. With the set maximum number of 
groups, up to four tools can be registered per group. The combination of the maximum number of


key: chroma:document
string_value:
registrable groups and the maximum number of tools can be changed by setting bits 0 (GS1) and bit 1 
(GS2) of parameter No. 6800 as follows.
Table 10.5.1 Maximum numbers of registrable groups and tools
Bit 1 (GS2) of 
parameter No. 6800
Bit 0 (GS1) of 
parameter No. 6800 Number of groups Number of 
tools
0 0 1/8 of maximum number of groups (parameter No. 6813) 32
0 1 1/4 of maximum number of groups (parameter No. 6813) 16
1 0 1/2 of maximum number of groups (parameter No. 6813) 8


key: chroma:document
string_value:
1 1 Maximum number of groups (parameter No. 6813) 4
CAUTION
After changing the setting of bits 0 (GS1) and 1 (GS2) of parameter No. 6800, 
re-register tool life management data by issuing the G10L3 (registration after 
deletion of data for all groups).
Otherwise, the newly set combination does not become valid.


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 10. TOOL FUNCTION (T FUNCTION)
- 195 -
NOTE
The total number of groups in the entire CNC system can be expanded to up to 
1024 groups, using the additional tool life management groups.
- Tool number
A tool number is specified with a T code. A number consisting of up to eight digits (99999999) can be 
specified.
NOTE
The maximum number of digits usable in the T code is specified in parameter
No. 3032.
- Codes for specifying a tool offset value
M


key: chroma:document
string_value:
M
Codes for specifying a tool offset value include an H code (for tool length offset) and a D code (for cutter 
compensation). Numbers up to 999 (up to three digits long) can be registered as codes for specifying tool 
offset values. However, the number of registered codes must not exceed the number of tool offsets the 
CNC can use.
NOTE
If codes for specifying tool offset values are not used, the registration of these 
codes can be omitted.
T


key: chroma:document
string_value:
codes can be omitted.
T
If the tool change type is the turret type (bit 3 (TCT) of parameter No. 5040 = 0), neither the H code nor 
D code is used to specify a tool offset value. The T code includes a compensation code. If the tool change 
type is the ATC type (bit 3 (TCT) of parameter No. 5040 = 1), only the D code is used.
- Tool life value
A tool life value can be registered in terms of use duration or use count. The maximum value is as 
follows:


key: chroma:document
string_value:
follows:
Up to 4300 minutes can be registered if duration specification is selected, or up to 65535 times can be 
registered if use count specification is selected.
When the tool life management B function is enabled, up to 100000 minutes (or 60000 minutes if the life 
is counted every 0.1 second) can be registered if duration specification is selected, or up to 99999999 
times can be registered if use count specification is selected.
- Arbitrary group number
M


key: chroma:document
string_value:
- Arbitrary group number
M
If a function for allowing specification of arbitrary group numbers is used (bit 5 (TGN) of parameter No. 
6802 = 1), an arbitrary group number can be specified with a T code to select a tool life management 
group.
An arbitrary group number ranging from 1 to 99999999 can be specified.
T
Arbitrary group numbers can be used only if the tool change type is the ATC type (bit 3 (TCT) of 
parameter No. 5040 = 1).


key: chroma:document
string_value:
10. TOOL FUNCTION (T FUNCTION) PROGRAMMING B-64694EN/01
- 196 -
- Remaining life setting
Bit 3 (GRP) of parameter No. 6802 is used to specify which value, a value set for each group or a 
parameter-set value (parameters Nos. 6844 and 6845), is to be used as the remaining life setting until a 
new tool is selected.
If a value set for each group is used (bit 3 (GRP) of parameter No. 6802 = 1), the value is registered as 
tool life management data.


key: chroma:document
string_value:
tool life management data.
A value ranging from 1 to 100000 minutes (or 60000 minutes if the life is counted every 0.1 second) can 
be specified if duration specification is selected, or a value up to 99999999 times can be specified if use 
count specification is selected.
10.5.2 Registering, Changing, and Deleting Tool Life Management 
Data
By programming, tool life management data can be registered in the CNC, and registered tool life 
management data can be changed or deleted.
Explanation


key: chroma:document
string_value:
Explanation
The program format varies depending on the following four types of operation:
- Registration after deletion of all groups
After all registered tool life management data is deleted, programmed tool life management data is 
registered.
- Change of tool life management data
Tool life management data can be set for a group for which no tool life management data is registered, 
and already registered tool life management data can be changed.
- Deletion of tool life management data


key: chroma:document
string_value:
Tool life management data can be deleted.
- Setting of tool life count type
A count type (use duration or use count) can be set for each group separately.
Format
- Registration after deletion of all groups
M
Format Meaning
G10L3;
P-L-;
T-H-D-;
T-H-D-;
:
P-L-;
T-H-D-;
T-H-D-;
:
G11;
M02(M30);
G10L3: Register data after deleting data of all groups.
P-: Group number
L-: Tool life value
T-: Tool number
H-: Code for specifying tool offset value (H code)


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 10. TOOL FUNCTION (T FUNCTION)
- 197 -
T
Format Meaning
G10L3;
P-L-;
T-(D-);
T-(D-);
:
P-L-;
T-(D-);
T-(D-);
:
G11;
M02(M30);
G10L3:Register data after deleting data of all groups.
P-: Group number
L-: Tool life value
T-: For turret type (bit 3 (TCT) of parameter No. 5040 = 0), tool number and tool 
offset number
For ATC type (bit 3 (TCT) of parameter No. 5040 = 1), tool number
G11: End of registration


key: chroma:document
string_value:
G11: End of registration
(D-): For ATC type (bit 3 (TCT) of parameter No. 5040 = 1), code for specifying tool 
offset value
NOTE
No H code is used even if the tool change type is the ATC type (bit 3 (TCT) of 
parameter No. 5040 = 1).
If more than one offset value is to be used for the same tool within one process, specify the command as 
shown below (on the assumption that tool offset numbers are two digits long).
Format Meaning
G10L3;
P-L-;
T0101;
T0102;
T0103;
:
G11;
M02(M30);


key: chroma:document
string_value:
T0103;
:
G11;
M02(M30);
Tool number 01, tool offset number 01
Tool number 01, tool offset number 02
Tool number 01, tool offset number 03
- Change of tool life management data
M
Format Meaning
G10L3P1;
P-L-;
T-H-D-;
T-H-D-;
:
P-L-;
T-H-D-;
T-H-D-;
:
G11;
M02(M30);
G10L3P1: Start changing group data.
P-: Group number
L-: Tool life value
T-: Tool number
H-: Code for specifying tool offset value (H code)
D-: Code for specifying tool offset value (D code)
G11: End of change of group


key: chroma:document
string_value:
10. TOOL FUNCTION (T FUNCTION) PROGRAMMING B-64694EN/01
- 198 -
T
Format Meaning
G10L3P1;
P-L-;
T-(D-);
T-(D-);
:
P-L-;
T-(D-);
T-(D-);
:
G11;
M02(M30);
G10L3P1: Start changing group data.
P-: Group number
L-: Tool life value
T-: For turret type (bit 3 (TCT) of parameter No. 5040 = 0), tool number and tool 
offset number
For ATC type (bit 3 (TCT) of parameter No. 5040 = 1), tool number
G11: End of registration


key: chroma:document
string_value:
G11: End of registration
(D-): For ATC type (bit 3 (TCT) of parameter No. 5040 = 1), code for specifying tool 
offset value
NOTE
No H code is used even if the tool change type is the ATC type (bit 3 (TCT) of 
parameter No. 5040 = 1).
- Deletion of tool life management data
Format Meaning
G10L3P2;
P-;
P-;
P-;
P-;
:
G11;
M02(M30);
G10L3P2: Start deleting group data.
P-: Group number
G11: End of deletion
- Setting of tool life count type
Format Meaning
G10L3
(or G10L3P1);
P-L-Q-;


key: chroma:document
string_value:
G10L3
(or G10L3P1);
P-L-Q-;
T-H-D-;
T-H-D-;
:
G11;
M02(M30);
Q: Life count type
(1: Use count. 2: Duration.)
CAUTION
If the Q command is omitted, the life count type is set according to the setting of 
bit 2 (LTM) of parameter No. 6800.
- Arbitrary group number
M
If the tool life management B function is enabled (bit 4 (LFB) of parameter No. 6805 = 1), and use of the 
function for specifying an arbitrary group number is set (bit 5 (TGN) of parameter No. 6802 = 1), an


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 10. TOOL FUNCTION (T FUNCTION)
- 199 -
Format Meaning
G10L3;
(or G10L3P1);
P-L-T-;
T-H-D-;
T-H-D-;
:
G11;
M02(M30);
T-: Arbitrary group number (1 to 99999999)
NOTE
1 A group number that is the same as the group number of another group cannot 
be registered.
An attempt to register such a group number results in alarm PS0431, “ILLEGAL 
T/R DATA OF TOOL LIFE”.
2 If an arbitrary group number (T) is 0, alarm PS0431 is issued.


key: chroma:document
string_value:
3 If ever an arbitrary group number is specified, the T command must be specified. 
If the T command is omitted, alarm PS0149, “FORMAT ERROR IN G10L3” is 
issued.
T
The function for specifying an arbitrary group number is available only if the tool change type is the ATC 
type (bit 3 (TCT) of parameter No. 5040 = 1).
If the tool change type is the ATC type, the format used for setting an arbitrary group number is the same 
as for the M series.
Remaining life setting


key: chroma:document
string_value:
Remaining life setting
If the tool life management B function is enabled (bit 4 (LFB) of parameter No. 6805 = 1), and a 
remaining life value is to be set for each group separately (bit 3 (GRP) of parameter No. 6802 = 1), a 
remaining life value can be set as tool life management data by programming a command.
Format Meaning
G10L3;
(or G10L3P1);
P-L-R-;
T-H-D-;
T-H-D-;
:
G11;
M02(M30);
R-: Remaining life setting (remaining life until a new tool is selected)
NOTE


key: chroma:document
string_value:
NOTE
1 If the remaining life setting (R) is 0 or omitted, the remaining life is assumed to 
be 0. In this case, the tool life expiration prior notice function is disabled.
2 The remaining life setting (R) cannot exceed the life value (L). If an attempt is 
made to specify a value greater than the life value, alarm PS0431 is issued.
3 The remaining life setting (R) must be an unsigned value having no decimal 
point.


key: chroma:document
string_value:
point.
4 The unit of the remaining life setting (R) depends on the setting of bit 1 (FGL) of 
parameter No. 6805, which selects the unit of the tool life value.


key: chroma:document
string_value:
10. TOOL FUNCTION (T FUNCTION) PROGRAMMING B-64694EN/01
- 200 -
Tool life value
- If the life management B function is disabled
If the tool life management B function is disabled (bit 4 (LFB) of parameter No. 6805 = 0), a tool life 
value is registered as a duration or a use count according to the setting of bit 2 (LTM) of parameter No.
6800 or the setting of a count type (Q command). The maximum values are listed below.
Table 10.5.2 (a) Life count types and maximum life values
Bit 4 (LFB) of


key: chroma:document
string_value:
Bit 4 (LFB) of 
parameter No. 6805
Bit 2 (LTM) of 
parameter No. 6800 Life count type Maximum life value
0 0 Use count specification 65535 times
1 Duration specification 4300 min
If the count type is duration specification, the unit of a life value specified with address L in a program 
may be one minute or 0.1 second, which is determined by the setting of bit 1 (FGL) of parameter No.
6805.
Table 10.5.2 (b) Life value unit and maximum value in L command
Bit 4 (LFB) of 
parameter No. 6805


key: chroma:document
string_value:
parameter No. 6805
Bit 1 (FGL) of 
parameter No. 6805
Life value 
unit
Maximum value in 
L command Example
0
0 1 min 4300 L100: 
Life value is 100 min.
1 0.1 sec 2580000 L1000: 
Life value is 100 sec.
- If the life management B function is enabled
If the tool life management B function is enabled (bit 4 (LFB) of parameter No. 6805 = 1)
Table 10.5.2 (c) Life count types and maximum life values
Bit 4 (LFB) of 
parameter No. 6805
Bit 2 (LTM) of


key: chroma:document
string_value:
Bit 2 (LTM) of 
parameter No. 6800 Life count type Maximum life value
1
0 Use count specification 99999999 times
1 Duration specification
100000 min
60000 min(Note)
Table 10.5.2 (d) Life value unit and maximum value in L command
Bit 4 (LFB) of 
parameter No. 6805
Bit 1 (FGL) of 
parameter No. 6805
Life value 
unit
Maximum value in 
L command Example
1
0 1 min
100000 L100:
60000(Note) Life value is 100 min.
1 0.1 sec
60000000 L1000:
36000000(Note) Life value is 100 sec.
NOTE


key: chroma:document
string_value:
NOTE
If the life is counted every 0.1 second (bit 0 (FCO) of parameter No. 6805 = 1), 
the maximum value specified by duration is 60000 minutes.


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 10. TOOL FUNCTION (T FUNCTION)
- 201 -
10.5.3 Tool Life Management Commands in Machining Program
Explanation
M
- Commands
The following commands are used for tool life management:
T○○○○○○○○;
Specifies a tool group number.
The tool life management function selects, from a specified group, a tool whose life has not expired, and 
outputs its T code signal.
In , specify the sum of the tool life management ignore number specified in parameter


key: chroma:document
string_value:
No. 6810 and a desired group number.
Example:
To specify tool group number 1 when the tool life management ignore number is 100, specify 
“T101;”.
NOTE
If  is not greater than a tool life management ignore number, the 
T code is treated as an ordinary T code.
If an arbitrary group number is used (bit 4 (LFB) of parameter No. 6805 = 1, and bit 5 (TGN) of 
parameter No. 6802 = 1), it must be a preset arbitrary group number rather than a tool group number 
specified in .
Example:


key: chroma:document
string_value:
Example:
To specify tool group number 1 when arbitrary group number 1234 is set for tool group number 1, 
specify T1234.
NOTE
1 If an arbitrary group number is used, the tool life management ignore number 
specified in parameter No. 6810 is not used.
2 If the group specified by  is not present, the CNC assumes that a 
tool not controlled under the tool life management function is selected.
M06;


key: chroma:document
string_value:
M06;
Terminates life management for the previously used tools, and begins counting the life of a new tool 
selected with the T code.
NOTE
1 M06 is treated as an M code not involving buffering.
2 If multiple M codes are to be specified in the same block, M06 can be specified 
anywhere in the M codes.
H99;
Selects the H code registered in tool life management data for the currently used tool to enable tool length


key: chroma:document
string_value:
offset. Parameter No. 13265 can be used to enable compensation according to an H code other than H99.
H00;
Cancels tool length offset.


key: chroma:document
string_value:
10. TOOL FUNCTION (T FUNCTION) PROGRAMMING B-64694EN/01
- 202 -
D99;
Selects the D code registered in tool life management data for the currently used tool to perform cutter 
compensation.
Parameter No. 13266 can be used to enable compensation according to a D code other than D99.
D00;
Cancels cutter compensation.
NOTE
H99 and D99 must be specified after the M06 command. If a code other than 
H99 or D99 or a code other than the H or D code set, respectively, in parameter


key: chroma:document
string_value:
No. 13265 or 13266 is specified following M06, no H code or D code is selected 
for tool life management data.
- Types
For tool life management, the four tool change types (types A to D) listed below are used. Which type to 
use varies from one machine to another. For details, refer to the relevant manual of each machine tool 
builder.
Table 10.5.3 Differences among tool change types
Tool change type A B C D
Parameters M6T and 
M6E
M6T (No.6800#7)
M6E (No.6801#7)


key: chroma:document
string_value:
M6E (No.6801#7)
M6T M6E M6T M6E M6T M6E M6T M6E
0 0 1 0 1 0 1
Tool group number 
specified in the same 
block as the tool 
change command 
(M06)
Tool group already
used Tool group to be used next
Time when tool life is 
counted
Life counting is performed for a tool in the specified tool group if M06
is specified next.
Life counting is 
performed if a tool 
in the tool group 
specified in the 
same block as 
M06 is specified.
Remarks
If the T command (retract


key: chroma:document
string_value:
If the T command (retract 
tool group) following the 
M06 command is not the 
currently used tool group, 
alarm PS0155, “ILLEGAL 
T-CODE COMMAND” is 
issued (if bit 6 (IGI) of 
parameter No. 6800 = 0).
Normally, if a tool group number 
command is specified alone, type B is 
used. However, even if a tool group 
number command is specified alone 
with type C, no alarm is issued. (This 
means that there is no difference in 
operation between types B and C.)
If M06 is specified 
alone, alarm


key: chroma:document
string_value:
alone, alarm 
PS0153, 
“T-CODE NOT 
FOUND” is raised.
NOTE
If a tool group number is specified and a new tool is selected, the new tool 
selection signal is output.


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 10. TOOL FUNCTION (T FUNCTION)
- 203 -
T
If the tool change type is the ATC type (bit 3 (TCT) of parameter No. 5040 = 1), commands are specified 
in the same manner as for the M series except that neither H99 nor H00 is used for the T series. See the 
description for the M series. For details on the tool compensation types applied when the tool change type 
is the ATC type, refer to Section, “EXTENDED TOOL SELECTION” of the OPERATOR’S MANUAL 
(Lathe System) (B-64694EN-1).


key: chroma:document
string_value:
(Lathe System) (B-64694EN-1).
The command specification method for the turret type (bit 3 (TCT) of parameter No. 5040 = 0) is 
explained below.
CAUTION
This function cannot be used if the same number as the tool selection number is 
to be used to specify geometry offset number (bit 1 (LGN) of parameter No. 
5002 = 1).
- Commands
T99;
The tool life management function ends counting the life of the tool used so far, selects, from the group


key: chroma:document
string_value:
specified by , a tool whose life has not expired, outputs the T code signal for the tool, and 
starts counting the life of the tool.
Example:
Suppose that a T199 command (with a tool offset specified with the lower two digits) is issued to 
cause the life management function to select T10001 of tool group 1. Then, T code 100 is output, 
and the tool offset number 1 is selected.
If the condition that a new tool be selected is not met, and the second or subsequent selection of the same


key: chroma:document
string_value:
group is made since the entry of the control unit into the automatic operation start state from the reset 
state, the next to the currently selected T code is selected if more than one offset is registered.
If the third selection is made, for example, the third offset is selected from among multiple offsets 
registered for the same tool.
Example:
Suppose that the tool offset is specified with the lower two digits, and that two offset numbers are set


key: chroma:document
string_value:
for the same tool number in group 1 with the following two T codes:
T10001 T10002
The first T199 command issued since the entry of the control unit into the automatic operation start 
state from the reset state selects the first T code, T10001. Then, if T199 is issued again before the 
control unit is reset, the second T code, T10002, is selected. Furthermore, if T199 is issued again 
before the control unit is reset, the second T code, T10002, is selected because no third offset is 
present.


key: chroma:document
string_value:
present.
Setting bit 1 (TSM) of parameter No. 6801 set to 1 enables life counting to be performed for each T 
code separately even if T codes specifying multiple offsets for the same number are registered.
T88;
The offset of the tool whose life is currently counted by tool life management is canceled. The tool offset 
code is set to 00, and the tool number is output as a T code signal.
Example:
Suppose that the tool number of the tool currently used by the life management function is 100.


key: chroma:document
string_value:
Then, issuing a T188 command (with a tool offset specified with the lower two digits) outputs T 
code 100 and selects offset number 0, canceling the offset.


key: chroma:document
string_value:
10. TOOL FUNCTION (T FUNCTION) PROGRAMMING B-64694EN/01
- 204 -
NOTE
If life counting is not performed, or if the specified tool does not belong to the 
group for which life counting is being performed, alarm PS0155 is issued.
The numbers of digits in  and 99/88 vary as follows:
No.5028 99 88
1 T 9
 ↑ ↑
Select group Start life counting
T 8
 ↑ ↑
Select group Cancel tool offset
2 T 99
 ↑ ↑
Select group Start life counting
T 88
 ↑ ↑


key: chroma:document
string_value:
T 88
 ↑ ↑
Select group Cancel tool offset
3 T 999
 ↑ ↑
Select group Start life counting
T 888
 ↑ ↑
Select group Cancel tool offset
The maximum number of digits in T codes is set in parameter No. 3032.
The number of digits used for specifying an offset number is selected by parameter No. 5028. If 0 is 
selected, the number of digits depends on the number of tool offsets.
Example:
If there are one to nine tool offsets: Lowest digit


key: chroma:document
string_value:
If there are 10 to 99 tool offsets: Lower two digits
If there are 100 to 999 tool offsets: Lower three digits
NOTE
Offset start and cancel operations involve compensation by moving a tool or by 
shifting the coordinate system. Using bit 6 (LWM) of parameter No. 5002 can 
select whether to perform a compensation operation if a T code is specified or if 
an axis move command is specified.
For details, refer to refer to Subsection, “Offset” of the OPERATOR’S MANUAL 
(Lathe System) (B-64694EN-1).


key: chroma:document
string_value:
(Lathe System) (B-64694EN-1).
T∆∆;
If the tool offset number in ∆∆ is neither 99 nor 88, the T code is treated as an ordinary T code. If life 
counting is being currently performed, it is ended.
Examples
M
- Tool change type A
If a block specifying a tool change command (M06) also contains a tool group command (T code), the T 
code is used as a command for returning the tool to its cartridge. By specifying a tool group number with


key: chroma:document
string_value:
a T code, the number of the tool used so far is output as a T code signal. If the specified tool number is 
not a tool number of the tool group of the tool being used, alarm PS0155 is issued. The alarm, however, 
can be suppressed by setting bit 6 (IGI) of parameter No. 6800 to 1.


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 10. TOOL FUNCTION (T FUNCTION)
- 205 -
Example: Suppose that the tool life management ignore number is 100.
T101 ;
:
M06 ;
:
T102 ;
:
M06 T101 ;
:
:
:
T103 ;
:
M06 T102 ;
:
G43 H99 ;
:
G41 D99 ;
:
D00 ;
:
H00 ;
A tool whose life has not expired is selected from group 1.
(Suppose that tool number 010 is selected.)
Tool life counting is performed for the tool in group 1.
(The life of tool number 010 is counted.)


key: chroma:document
string_value:
A tool whose life has not expired is selected from group 2.
(Suppose that tool number 100 is selected.)
Tool life counting is performed for the tool in group 2.
(The life of tool number 100 is counted.)
The number of the tool currently used (in group 1) is output with a T code signal. (Tool 
number 010 is output.)
A tool whose life has not expired is selected from group 3.
(Suppose that tool number 200 is selected.)
Tool life counting is performed for the tool in group 3.


key: chroma:document
string_value:
(The life of tool number 200 is counted.)
Tool length offset for the tool selected from group 3 is used.
Cutter compensation for the tool selected from group 3 is used.
Cutter compensation is canceled.
Tool length offset is canceled.
- Tool change types B and C
If a block specifying a tool change command (M06) also contains a tool group command (T code), the T 
code is used to specify a tool group number for which life counting is to be performed by the next tool 
change command.


key: chroma:document
string_value:
change command.
Example: Suppose that the tool life management ignore number is 100.
T101 ;
:
M06 T102 ;
:
:
:
M06 T103 ;
:
:
:
G43 H99 ;
:
G41 D99 ;
:
D00 ;
:
H00 ;
:
M06 T104 ;
:
A tool whose life has not expired is selected from group 1.
(Suppose that tool number 010 is selected.)
Tool life counting is performed for the tool in group 1.
(The life of tool number 010 is counted.)
A tool whose life has not expired is selected from group 2.


key: chroma:document
string_value:
(Suppose that tool number 100 is selected.)
Tool life counting is performed for the tool in group 2.
(The life of tool number 100 is counted.)
A tool whose life has not expired is selected from group 3.
(Suppose that tool number 200 is selected.)
Tool length offset for the tool selected from group 2 is used.
Cutter compensation for the tool selected from group 2 is used.
Cutter compensation is canceled.
Tool length offset is canceled.
Tool life counting is performed for the tool in group 3.


key: chroma:document
string_value:
(The life of tool number 200 is counted.)
A tool whose life has not expired is selected from group 4.


key: chroma:document
string_value:
10. TOOL FUNCTION (T FUNCTION) PROGRAMMING B-64694EN/01
- 206 -
- Tool change type D
For a tool selected by a tool group command (T code), life counting is performed by a tool change 
command (M06) specified in the same block as the tool group command. Specifying a T code alone does 
not results in an alarm; however, specifying an M06 command alone results in alarm PS0153. However, 
the alarm can be suppressed by setting bit 7 (TAD) of parameter No. 6805 to 1.


key: chroma:document
string_value:
Example: Suppose that the tool life management ignore number is 100.
T101 M06 ;
:
:
:
T102 M06 ;
:
:
:
G43 H99 ;
:
G41 D99 ;
:
D00 ;
:
H00 ;
:
T103 M06 ;
:
A tool whose life has not expired is selected from group 1.
(Suppose that tool number 010 is selected.)
Tool life counting is performed for the tool in group 1.
(The life of tool number 010 is counted.)
A tool whose life has not expired is selected from group 2.
(Suppose that tool number 100 is selected.)


key: chroma:document
string_value:
Tool life counting is performed for the tool in group 2.
(The life of tool number 100 is counted.)
Tool length offset for the tool selected from group 2 is used.
Cutter compensation for the tool selected from group 2 is used.
Cutter compensation is canceled.
Tool length offset is canceled.
A tool whose life has not expired is selected from group 3.
Tool life counting is performed for the tool in group 3.
T


key: chroma:document
string_value:
T
For the ATC type (bit 3 (TCT) of parameter No. 5040 = 1), commands are specified in the same manner 
as for the M series except that D99 rather than H99 is used. For the ATC type, see the description for the 
M series.
The following shows how commands are specified if the turret type is used (bit 3 (TCT) of parameter No. 
5040 = 0):
Example: Suppose that offset numbers are two digits long.
T0199 ;
:
:
:
:
:
T0188 ;
:
:
T0299 ;
:
:
:
:
T0299 ;
:
:
:
:
T0301 ;
:
:


key: chroma:document
string_value:
:
:
:
:
T0301 ;
:
:
A tool whose life has not expired is selected from group 1.
(Suppose that T1001 is selected. The tool number is 10, and the offset number is 01.)
Tool life counting is performed for the tool in group 1.
(The life of tool number 10 is counted.)
The offset of the tool being used in group 1 is canceled.
(Since the tool being used is T1001, the tool number is 10, and the offset number is 00.)
A tool whose life has not expired is selected from group 2.


key: chroma:document
string_value:
(Suppose that T2002 is selected. The tool number is 20, and the offset number is 02.)
Tool life counting is performed for the tool in group 2.
(The life of tool number 20 is counted.)
If more than one offset number is specified for the currently used tool in group 2, the next 
offset number is selected.
(Suppose that T2002 and T2003 are registered with tool number 20. In this case, T2003 is 
selected. The tool number is 20, and the offset number is 03.)


key: chroma:document
string_value:
Life counting for the tool in group 2 ends, and this command is treated as an ordinary T 
code.
(The tool number is 03, and the offset number is 01.)


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 10. TOOL FUNCTION (T FUNCTION)
- 207 -
10.5.4 Tool Life Counting and Tool Selection
Either use count specification or duration specification is selected as the tool life count type according to 
the state of bit 2 (LTM) of parameter No. 6800. Life counting is performed for each group separately, and 
the life counter contents are preserved even after the power is turned off.
Table 10.5.4 (a) Tool life management count types and intervals


key: chroma:document
string_value:
Tool life count type Use count specification Time specification
Bit 2 (LTM) of parameter No. 6800 0 1
Life count interval
Incremented by one for tools used in 
one program
Counting can be resumed by using tool 
life count restart M code (parameter No. 
6811).
Bit 0 (FCO) of parameter No. 6805
0: Every second
1: Every 0.1 second
Can be changed by override.
Explanation
M
- Use count specification (LTM=0)


key: chroma:document
string_value:
If a tool group (T code) is specified, a tool whose life has not expired is selected from the specified tool 
group. The life counter for the selected tool is then incremented by one by a tool change command (M06). 
Unless a tool life count restart M code is specified, selection of a new tool and the increment operation 
can be performed only if a tool group number command and a tool change command are issued for the


key: chroma:document
string_value:
first time since the entry of the control unit into the automatic operation start state from the reset state.
CAUTION
No matter how many times the same tool group number is specified in a 
program, the use count is not incremented, and no new tool is selected.
- Duration specification (LTM=1)
After all registered tool life management data is deleted, programmed tool life management data is 
registered.


key: chroma:document
string_value:
registered.
If a tool group command (T code) is specified, a tool whose life has not expired is selected from the 
specified tool group. Then, life management for the selected tool is started by a tool change command 
(M06). Life management (counting) is performed by measuring the time during which the tool is actually 
used in the cutting mode at regular intervals (every second or 0.1 second). The life count interval is


key: chroma:document
string_value:
specified by bit 0 (FCO) of parameter No. 6805. The time required for single block stop, feed hold, rapid 
traverse, dwell, machine lock, and interlock operations is not counted.
Setting bit 2 (LFV) of parameter No. 6801 enables the life count to be overridden as directed by tool life 
count override signals. An override from 0 times to 99.9 times can be applied. If 0 times is specified, 
counting is not performed.
T


key: chroma:document
string_value:
counting is not performed.
T
If the tool change type is the ATC type (bit 3 (TCT) of parameter No. 5040 = 1), the same specification 
method as for the M series applies. See the description for the M series.
The following explains the specification method for the turret type (bit 3 (TCT) of parameter No. 5040 = 
0):


key: chroma:document
string_value:
10. TOOL FUNCTION (T FUNCTION) PROGRAMMING B-64694EN/01
- 208 -
- Use count specification (LTM=0)
If a tool group command (T○○99 code) is issued, a tool whose life has not expired is selected from the 
specified tool group, and the life counter for the selected tool is incremented by one. Unless a tool life 
count restart M code is specified, selection of a new tool and the increment operation can be performed


key: chroma:document
string_value:
only if a tool group number command and a tool change command are issued for the first time since the 
entry of the control unit into the automatic operation start state from the reset state.
CAUTION
No matter how many times the same tool group number is specified in a 
program, the use count is not incremented, and no new tool is selected.
- Duration specification (LTM=1)
If a tool group command (T○○99 code) is specified, a tool whose life has not expired is selected from


key: chroma:document
string_value:
the specified tool group, and tool management for the selected tool starts.
Life management (counting) is performed by measuring the time during which the tool is actually used in 
the cutting mode at regular intervals (every second or 0.1 second). The life count interval is specified by 
bit 0 (FCO) of parameter No. 6805. The time required for single block stop, feed hold, rapid traverse, 
dwell, machine lock, and interlock operations is not counted.


key: chroma:document
string_value:
Setting bit 2 (LFV) of parameter No. 6801 enables the life count to be overridden according tool life 
count override signals. An override from 0 times to 99.9 times can be applied. If 0 times is specified, 
counting is not performed.
M
T
NOTE
1 When a tool is selected, tools are searched starting from the current tool toward 
the last tool to find a tool whose life has not expired. When the last tool is 
reached during this search, the search restarts from the first tool. If the search


key: chroma:document
string_value:
does find any tool whose life has not expired, the last tool is selected.
When the tool currently used is changed by the tool skip signal, the next new tool 
is selected using the method described here.
2 If tool life counting indicates that the life of the last tool in a group has expired, 
the tool change signal is output. If the life count type is duration specification, the 
signal is output as soon as the life of the last tool in the group has expired. If the


key: chroma:document
string_value:
life count type is use count specification, the signal is output when the CNC is 
reset by a command such as M02 or M30 or when the tool life count restart M 
code is specified after the life of the last tool in the group has expired.
3 If a T command is specified, a group and a tool in the group are selected while 
the T command is buffered. This means that if a block to be buffered contains a 
T command specifying a group while machining is being performed with that


key: chroma:document
string_value:
group selected, the next T command is already buffered even if the tool life 
expires during machining, so the next tool is not selected. To prevent this, if the 
life count type is duration specification and a T command is to be specified to 
select the same group successively, insert an M code for suppressing buffering 
into a place immediately before the T command.
4 When the tool life is counted, the remaining life of a group (the life value minus


key: chroma:document
string_value:
the life counter value) is compared with the remaining life setting, and the status 
of the tool life expiration prior notice signal is changed according to the result of
the comparison.


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 10. TOOL FUNCTION (T FUNCTION)
- 209 -
- M99
If the life count is specified by use count and bit 0 (T99) of parameter No. 6802 is 1, the tool change 
signal TLCH is output and the automatic operation is stopped if the life of at least one tool group has 
expired when the M99 command is executed. If the life count type is duration specification, the tool 
change signal is output immediately when the life of at least one tool group has expired; when the M99


key: chroma:document
string_value:
command is specified, the automatic operation is stopped, but no more tool change signal is output.
M
If the life count is specified by use count, a tool group command (T code) issued after the M99 
command selects, from a specified group, a tool whose life has not expired, and the next tool change 
command (M06) increments the tool life counter by one.
T
If the life count is specified by use count, when a tool group command (T code) is specified after the M99


key: chroma:document
string_value:
command is specified, a tool whose life has not expired is selected from a specified group, and the tool 
life counter is incremented by one. 
If the tool change type is the ATC type (bit 3 (TCT) of parameter No. 5040 = 1), the same specifications 
as for the M series apply.
10.5.5 Tool Life Count Restart M Code
Explanation
M
If the life count is specified by use count, the tool change signal is output if the life of at least one tool


key: chroma:document
string_value:
group has expired when a tool life count restart M code is issued. A tool group command (T code) issued 
after the tool life count restart M code selects, from a specified group, a tool whose life has not expired, 
and the next tool change command (M06) increments the tool life counter by one. This enables the tool 
life to be counted by a tool change command (M06) even if the command is not the first tool change


key: chroma:document
string_value:
command (M06) issued since the entry of the CNC into the automatic operation start state from the reset 
state. The tool life count restart M code is specified in parameter No. 6811.


key: chroma:document
string_value:
10. TOOL FUNCTION (T FUNCTION) PROGRAMMING B-64694EN/01
- 210 -
Example:
Suppose that M16 is a tool life count restart M code and that the tool life 
management ignore number is 100.
Also suppose that the life count is specified by use count.
T101 ; A tool whose life has not expired is selected from group 1.
 :
 :
M06 ; Tool life management is performed for group 1.
 : (The tool life counter is incremented by one.)
 :
T102 ; A tool whose life has not expired is selected from group 2.
 :
 :


key: chroma:document
string_value:
:
 :
M06 ; Tool life management is performed for group 2.
 : (The tool life counter is incremented by one.)
 :
M16 ; Tool life counting is restarted.
T101 ; A tool whose life has not expired is selected from group 1.
 :
 :
M06 ; Tool life management is performed for group 1.
 : (The tool life counter is incremented by one.)
T
If the tool change type is the ATC type (bit 3 (TCT) of parameter No. 5040 = 1), the same specifications


key: chroma:document
string_value:
as for the M series apply. See the description for the M series.
The following explanation assumes that the tool change type is the turret type (bit 3 (TCT) of parameter
No. 5040 = 0).
If the life count is specified by use count, the tool change signal is output if the life of at least one tool 
group has expired when a tool life count restart M code is specified. A tool group command (T code) 
issued after the tool life count restart M code selects a tool whose life has not expired from a specified


key: chroma:document
string_value:
group, and the tool life counter is incremented by one. This enables the tool life to be counted by a tool 
group command (T code) even if the command is not the first tool group command issued since the entry 
of the CNC into the automatic operation start state from the reset state. The tool life count restart M code 
is specified in parameter No. 6811.
Example:
Suppose that M16 is a tool life count restart M code.
Also suppose that the life count is specified by use count.


key: chroma:document
string_value:
T199 ; A tool whose life has not expired is selected from group 1.
 : Tool life management is performed for group 1.
 : (The tool life counter is incremented by one.)
 :
T299 ; A tool whose life has not expired is selected from group 2.
 : Tool life management is performed for group 2.
 : (The tool life counter is incremented by one.)
 :
M16 ; Tool life counting is restarted.
T199 ; A tool whose life has not expired is selected from group 1.
 : Tool life management is performed for group 1.


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 10. TOOL FUNCTION (T FUNCTION)
- 211 -
M
T
NOTE
1 The tool life count restart M code is treated as an M code not involved in 
buffering.
2 If the life count type is use count specification, the tool change signal is output if 
the life of at least one tool group has expired when the tool life count restart M 
code is specified. If the life count type is duration specification, specifying the 
tool life count restart M code causes nothing.


key: chroma:document
string_value:
3 If multiple M codes are to be specified in the same block, the tool life count 
restart M code can be specified anywhere in the M codes.
10.5.6 Disabling Life Count
Explanation
M
T
If bit 6 (LFI) of parameter No. 6804 is 1, the tool life count disable signal LFCIV can be used to select 
whether to cancel the tool life count.
If the tool life count disable signal LFCIV is “1”, the tool life count disabled signal LFCIF becomes “1”, 
and the tool life count is disabled.


key: chroma:document
string_value:
If the tool life count disable signal LFCIV is “0”, the tool life count disabled signal LFCIF becomes “0”, 
and the tool life count is enabled.
NOTE
No buffering should occur when the state of the tool life count disable signal 
LFCIV is changed. So, use, for example, M codes not involved in buffering to 
change the signal state. If M06 (for the M series) or a tool change T code (for the 
T series) is issued in a block that follows directly a block in which an auxiliary


key: chroma:document
string_value:
function code with buffering enabled is used to turn on or off the tool life count 
disable signal LFCIV, it is likely that a command for specifying whether to count 
may become incorrect.
10.5.7 Remaining Tool Number Check Function
Overview
M
In tool life management, this function outputs the remaining tool number notice signal if the number of 
remaining tools in the group selected with a T code command is equal to or less than the value set in 
parameter No. 6846.


key: chroma:document
string_value:
10. TOOL FUNCTION (T FUNCTION) PROGRAMMING B-64694EN/01
- 212 -
Explanation
M
If, in tool life management, the remaining tool number in the group selected with a T code command is 
equal to or less than the value set in parameter No. 6846, the remaining tool number notice signal TLAL 
becomes "1".
If the setting of parameter No. 6846 is 0, the remaining tool number notice signal TLAL is not output.
The remaining tool number notice signal TLAL becomes "0" when:


key: chroma:document
string_value:
- A value is input to parameter No. 6846.
- Using a G10 command, registration is performed that involves the erasure of all life management 
data groups.
- Using a T code command, a group is selected in which the remaining tool number is greater than the 
setting of parameter No. 6846.
The remaining tool number notice signal TLAL becomes "0" when any of the following is executed in the 
group that has caused the remaining tool number notice signal TLAL to be generated.


key: chroma:document
string_value:
- Clearing of execution data, using the tool change reset signal.
- Change and deletion of tool life management data, using a G10 command.
- Batch deletion of tool groups from the group edit screen of tool life management, addition of tool 
data to the screen, and deletion from the screen.
- Clearing of tool execution data from the group edit screen of tool life management.
- Clearing of execution data from the list screen of tool life management.


key: chroma:document
string_value:
- Execution of any of the FOCAS2 functions given in Table 10.5.7(a).
Table 10.5.7(a) FOCAS2 functions that cause TLAL to become "0"
Function name Description
cnc_clrcntinfo Clearing of tool life management data (life counter and tool information) (range specification)
cnc_deltlifegrp Deletion of tool life management data (tool group)
cnc_deltlifedt Deletion of tool life management data (tool data)
(Effective if the group contains only one tool.)


key: chroma:document
string_value:
cnc_instlifedt Addition of tool life management data (tool data)
cnc_wr1tlifedata Writing of tool life management data (tool data)
(Effective if tool information is changed to "expired" or if tool information is changed to 
"registered" for a tool that is "skipped".)
cnc_wr1tlifedat2
cnc_wr2tlifedata


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 11. AUXILIARY FUNCTION
- 213 - 
11 AUXILIARY FUNCTION 
Overview 
There are two types of auxiliary functions; auxiliary function (M code) for specifying spindle start, 
spindle stop, program end, and so on, and secondary auxiliary function (B code) for specifying index 
table positioning. 
When a move command and auxiliary function are specified in the same block, the commands are 
executed in one of the following two ways:


key: chroma:document
string_value:
(1) Simultaneous execution of the move command and auxiliary function commands. 
(2) Executing auxiliary function commands upon completion of move command execution. 
The selection of either sequence depends on the machine tool builder's specification. Refer to the manual 
issued by the machine tool builder for details. 
11.1 AUXILIARY FUNCTION (M FUNCTION) 
When a numeral is specified following address M, code signal and a strobe signal are sent to the machine.


key: chroma:document
string_value:
The machine uses these signals to turn on or off its functions. 
Usually, only one M code can be specified in one block. Depending on the setting of bit 7 (M3B) of 
parameter No. 3404, up to three M codes can be specified. And, depending on the setting of bit 5 (M5B) 
of parameter No. 11630, up to five M codes can be specified. 
Which M code corresponds to which machine function is determined by the machine tool builder. The


key: chroma:document
string_value:
machine processes all operations specified by M codes except those specified by M98, M99, M198 or 
called subprogram (parameters Nos.6071 to 6079), or called custom macro (parameters Nos.6080 to 
6089). Refer to the machine tool builder's instruction manual for details. 
Explanation 
The following M codes have special meanings. 
 - M02, M30 (End of program) 
This indicates the end of the main program.


key: chroma:document
string_value:
Automatic operation is stopped and the CNC unit is reset. (This differs with the machine tool builder.) 
After a block specifying the end of the program is executed, control returns to the start of the program. 
Bits 5 (M02) and 4 (M30) of parameter No. 3404 can be used to disable M02, M30 from returning control 
to the start of the program. 
 - M00 (Program stop) 
Automatic operation is stopped after a block containing M00 is executed. When the program is stopped,


key: chroma:document
string_value:
all existing modal information remains unchanged. The automatic operation can be restarted by actuating 
the cycle operation. (This differs with the machine tool builder.) 
 - M01 (Optional stop) 
Similarly to M00, automatic operation is stopped after a block containing M01 is executed. This code is 
only effective when the Optional Stop switch on the machine operator's panel has been pressed. 
 - M98 (Calling of subprogram)


key: chroma:document
string_value:
This code is used to call a subprogram. The code and strobe signals are not sent. Refer to the Section, 
“SUBPROGRAM (M98, M99)” for details. 
 - M99 (End of subprogram) 
This code indicates the end of a subprogram. 
M99 execution returns control to the main program. The code and strobe signals are not sent. Refer to the 
Section, “SUBPROGRAM (M98, M99)” for details.


key: chroma:document
string_value:
11. AUXILIARY FUNCTION PROGRAMMING B-64694EN/01
- 214 - 
11.2 MULTIPLE M COMMANDS IN A SINGLE BLOCK 
Usually, only one M code can be specified in one block. By setting bit 7 (M3B) of parameter No. 3404 to 
1, however, up to three M codes can be specified simultaneously in one block. And, by setting bit 5 
(M5B) of parameter No. 11630, to 1, however, up to five M codes can be specified simultaneously in one 
block.


key: chroma:document
string_value:
block. 
Up to five M codes specified in one block are output to the machine at the same time. So, when compared 
with a case where a single M code is specified in one block, a reduced machining cycle time can be 
achieved. 
Explanation 
CNC allows up to five M codes to be specified in one block. However, some M codes cannot be specified 
at the same time due to mechanical operation restrictions. For detailed information about the mechanical


key: chroma:document
string_value:
operation restrictions on simultaneous specification of multiple M codes in one block, refer to the manual 
of each machine tool builder. 
M00, M01, M02, M30, M98, M99, or M198 must not be specified together with another M code. 
Some M codes other than M00, M01, M02, M30, M98, M99, and M198 cannot be specified together with 
other M codes; each of those M codes must be specified in a single block. 
Such M codes include these which direct the CNC to perform internal operations in addition to sending


key: chroma:document
string_value:
the M codes themselves to the machine. To be specified, such M codes are M codes for calling program 
numbers 9001 to 9009 and M codes for disabling advance reading (buffering) of subsequent blocks. 
Meanwhile, multiple of M codes that direct the CNC only to send the M codes themselves (without 
performing internal operations) can be specified in a single block. 
However, it is possible to specify multiple M codes that are sent to the machine in the same block unless


key: chroma:document
string_value:
they direct the CNC to perform internal operations. (Since the processing method depends on the machine, 
refer to the manual of the machine tool builder.) 
If bit 0 (MMB) of parameter No. 11658 is set to 1, M code preventing buffering specified by any of 
parameters Nos. 3411 to 3420, parameters Nos. 3421 to 3432 or parameters Nos. 11290 to 11299 can be 
specified together with another M code. 
Example 
One M command in a single block Multiple M commands in a single block 
M40; 
M50; 
M60;


key: chroma:document
string_value:
M40; 
M50; 
M60; 
M70; 
M80; 
G28G91X0Y0Z0; 
: 
: 
: 
M40M50M60M70M80; 
G28G91X0Y0Z0; 
: 
: 
: 
: 
:


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 11. AUXILIARY FUNCTION
- 215 - 
11.3 M CODE GROUPING FUNCTION 
Overview 
Classifying a maximum of 500 M codes into a maximum of 127 groups allows the user: 
- To receive an alarm if an M code that must be specified alone is included when multiple M codes are 
specified in a block. 
- To receive an alarm if M codes belonging to the same group are specified in the same block when 
multiple M codes are specified in a block.


key: chroma:document
string_value:
11.3.1 Setting an M Code Group Number Using the Setting Screen 
 - Procedure for displaying the M code group setting screen 
Fig. 11.3.1 M code group setting screen 
You can use the “M code group setting screen (Fig. 11.3.1)” to set a group number for each M code. 
Display the “M code group setting screen” using the following procedure: 
(1) Press function key and the continuous menu key several times. Soft key [M CODE GROUP] 
appears. 
(2) Press soft key [M CODE GROUP].


key: chroma:document
string_value:
In the “NO.” field, M codes for which an M code group can be set are displayed. 
An M code group can be set for the following M codes: M00 to M99, and any 400 M codes selected from 
M100 and subsequent M codes. For details of how to add the 100th and subsequent M codes, see the 
explanation of parameters Nos. 3441 to 3444. 
In the “DATA” field, the M code group number corresponding to each M code is displayed.


key: chroma:document
string_value:
11. AUXILIARY FUNCTION PROGRAMMING B-64694EN/01
- 216 - 
 - Setting a group number 
To set an M code group number on the “M code group setting screen (Fig. 11.3.1),” use he following 
procedure: 
1 Select the MDI mode. 
2 Set “PARAMETER WRITE” on the setting screen to 1. 
3 Display the “M code group setting screen”. 
4 Move the cursor to the M code to be set using page keys and cursor keys. You can also enter the


key: chroma:document
string_value:
number of the M code to be set and press soft key [NO.SRH] to move the cursor to the M code. 
5 Enter a group number and press soft key [INPUT] or the key. 
The valid range of M code group numbers is from 1 to 127 (127 groups). If a value of 0 is input, it is not 
registered as an M code group. 
 - Examples of setting parameters Nos. 3441 to 3444 
In the following examples, the number of digits of an M code is 4. 
<1> to <4> indicate parameters Nos. 3441 to 3444.


key: chroma:document
string_value:
(1) When <1> = 300, <2> = 400, <3> = 500, and <4> = 900 are set 
Number
0000 
 : 100 codes 
0099 
0300 
 : 100 codes 
0399 
0400 
 : 100 codes 
0499 
0500 
 : 100 codes 
0599 
0900 
 : 100 codes 
0999 
M code groups can be set for M0000 to M0099, M0300 to 
M0599, and M0900 to M999. 
M codes M0300 to M0599 and M0900 to M999 are added to the 
M code group setting screen. 
(2) When <1> = 200, <2> = 0, <3> = 550, and <4> = 800 are set 
Number
0000 
 : 
0099 
0200 
 : 
0299 
0550


key: chroma:document
string_value:
0200 
 : 
0299 
0550 
 : 
0649 
0800 
 : 
0899 
M code groups can be set for M0000 to M0099, M0200 to M0299, M0550
to M0649, and M0800 to M0899. 
(The setting of parameter <2> is invalid because it is 0.) 
In this case, M codes M0200 to M0299, M0550 to M0649, and M0800 to 
M0899 are added to the M code group setting screen.


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 11. AUXILIARY FUNCTION
- 217 - 
11.3.2 Setting an M Code Group Number Using a Program 
You can execute a program to set an M code group number and M code name. The command format is 
shown below. 
Format 
G10 L40 Pn Rg ; 
Pn: “n” specifies an M code. 
Rg: “g” specifies an M code group number. 
NOTE 
1 If the format is invalid, an alarm PS1144, “G10 FORMAT ERROR” is issued. 
2 If an M code group cannot be set for the M code specified for the P command or


key: chroma:document
string_value:
if the group number specified for the R command is not within the range between 
0 and 127, an alarm PS1305, “DATA OUT OF RANGE” is issued. 
(Example) 
 Executing the following program sets M code group “1” to M03: 
 G10 L40 P03 R1 ; 
11.3.3 M Code Group Check Function 
When multiple M commands in a single block (enabled when bit 7 (M3B) of parameter No. 3404 is set to 
1) are used, you can check the following items. You can also select whether to check the items using bit 1


key: chroma:document
string_value:
(MGC) of parameter No. 3400. 
(1) M code to be specified in a single block containing no other M codes 
 If an M code which must be specified in a single block containing no other M codes is specified 
together with another M code, an alarm PS5016, “ILLEGAL COMBINATION OF M CODES” is 
issued. 
(2) M codes in the same group 
 If multiple M codes in the same group are specified together, an alarm PS5016 is issued. 
The valid range of group numbers is from 0 to 127 (128 groups).


key: chroma:document
string_value:
Group numbers 0 and 1 have special meaning. Note the following points: 
- Each M code with group number 1 is assumed to be an M code to be specified in a single block 
containing no other M codes. 
- For each M code with group number 0, the “same group M code check” is ignored. That is, when 
multiple M codes with group number 0 are specified in a single block, the alarm is not issued. 
- For each M code with group number 0, the “check for an M code to be specified in a single block


key: chroma:document
string_value:
containing no other M codes” is not ignored. That is, if an M code with group number 1 and an M 
code with group number 0 are specified in a single block, the alarm is issued. 
- For M codes that are not to be output to the machine such as M98, M99, M198, and M codes for 
subprogram and macro calls (set in parameters Nos. 6071 to 6079 and Nos. 6080 to 6089 and with 
the macro executor), be sure to set 0 as the group number.


key: chroma:document
string_value:
- For M00, M01, M02, M30, and M codes for which buffering is suppressed (set in parameters Nos. 
3411 to 3432 and No.11290 to 11299), be sure to set 1 as the group number.


key: chroma:document
string_value:
11. AUXILIARY FUNCTION PROGRAMMING B-64694EN/01
- 218 - 
11.4 SECOND AUXILIARY FUNCTIONS (B CODES) 
Overview 
If a value with a maximum of eight digits is specified after address B, the code signal and strobe signal 
are transferred for calculation of the rotation axis. The code signal is retained until the next B code is 
specified. 
Only one B code can be specified for each block. When the maximum number of digits are specified by


key: chroma:document
string_value:
parameter No.3033, an alarm is issued if the number of digits of a command exceeds the specified 
number. 
In addition, the address used for specifying the second auxiliary function can be changed to an address 
other than address B (address A, C, U, V, or W) by setting parameter No.3460. 
However, the address used for the second auxiliary function cannot also be used as the address of the 
controlled axis. For details, refer to the manual available from the machine tool builder. 
Explanation


key: chroma:document
string_value:
Explanation 
 - Range of specification 
-99999999 to 99999999 
 - Output value 
The value specified after the address of the second auxiliary function is output on the code signals B00 to 
B31. Note the following about a output value. 
1. When a command with a decimal point or a negative command is disabled 
 (When bit 0 (AUP) of parameter No.3450 is set to 0) 
 When the second auxiliary function with no decimal point is specified, the specified value is output


key: chroma:document
string_value:
on the code signals as is, regardless of the desktop calculator decimal point setting (bit 0 (DPI) of 
parameter No.3401). 
 Example: 
 Specified value Output value 
 B10 10 
 When the second auxiliary function with a decimal point is specified, alarm PS0007, “ILLEGAL 
USE OF DECIMAL POINT” is issued. 
 When the second auxiliary function is specified with a negative value, alarm PS0006, “ILLEGAL 
USE OF MINUS SIGN” is issued.


key: chroma:document
string_value:
USE OF MINUS SIGN” is issued. 
2. When a command with a decimal point or a negative command is enabled 
 (When bit 0 (AUP) of parameter No.3450 is set to 1) 
 When the desktop calculator decimal point setting is not specified (when bit 0 (DPI) of parameter 
No.3401 is set to 0), if the second auxiliary function with no decimal point is specified, the specified 
value is output on the code signals as is. 
 Example: 
 Specified value Output value 
 B10 10


key: chroma:document
string_value:
B10 10 
 When desktop calculator decimal point input is specified (when bit 0 (DPI) of parameter No.3401 is 
set to 1), if the second auxiliary function with no decimal point is specified, the specified value 
multiplied by a magnification is output on the code signals. (Magnifications are shown in Table 11.4 
(a).)


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 11. AUXILIARY FUNCTION
- 219 - 
 Example: 
 Specified value Output value 
 B10 10000 (When metric input is used and the reference axis is IS-B. The 
magnification is 1000.) 
 When the second auxiliary function with a decimal point is specified, the specified value multiplied 
by a magnification is output to the code signals. (Magnifications are shown in Table 11.4 (a).) 
 Example: 
 Specified value Output value


key: chroma:document
string_value:
Specified value Output value 
 B10. 10000 (When metric input is used and the reference axis is IS-B. The 
magnification is 1000.) 
 B0.123 1230 (When inch input is used, the reference axis is IS-B, and parameter AUX 
is set to 1. The magnification is 10000.) 
 The magnification is determined as shown below according to the setting unit of the reference axis 
(specified by parameter No.1031) and bit 0 (AUX) of parameter No.3405.


key: chroma:document
string_value:
Table 11.4 (a) Magnifications for an output value when the second auxiliary function with a decimal point is 
specified for desktop calculator decimal point input 
Setting unit Bit 0 (AUX) of parameter 
No.3405 = 0 
Bit 0 (AUX) of parameter 
No.3405 = 1 
Metric input system 
Reference axis: IS-A 100× 100×
Reference axis: IS-B 1000× 1000×
Reference axis: IS-C 10000× 10000×
Inch input system 
Reference axis: IS-A 100× 1000×
Reference axis: IS-B 1000× 10000×
Reference axis: IS-C 10000× 100000×


key: chroma:document
string_value:
CAUTION 
 If a decimal fraction remains after multiplying the specified value with a decimal 
point by a magnitude in Table 11.4 (a), the fraction is truncated. 
 Example: 
Specified value Output value 
B0.12345 1234 (When inch input is used, the reference axis is IS-B, and 
parameter AUX is set to 1. The magnification is 10000.) 
NOTE 
 If the number of digits of the specified value exceeds the allowable number of 
digits (set by parameter No. 3033), alarm PS0003, “TOO MANY DIGIT” is 
issued.


key: chroma:document
string_value:
issued. 
 When the specified value is multiplied by a magnitude in Table 11.4 (a), the 
allowable number of digits must be set for the resultant value. 
Limitation 
Addresses used for the second auxiliary functions (addresses specified with B or parameter No. 3460) 
cannot be used as the addresses used for controlled axis names.


key: chroma:document
string_value:
11. AUXILIARY FUNCTION PROGRAMMING B-64694EN/01
- 220 - 
11.5 AUXILIARY FUNCTION OUTPUT IN MOVING AXIS 
Overview 
By specifying absolute coordinate values and auxiliary functions (M, B) at G50.9 block, the auxiliary 
functions are output to PMC when absolute coordinate enters the specified area in the next movement 
block. 
G50.9 can be specified up to 2 blocks consecutively. In other words, auxiliary function output points in 
a movement block can be specified up to two.


key: chroma:document
string_value:
Code signals and strobe signals are output to the same signal address as a usual auxiliary function. 
Format 
G50.9 IP_ Mm11 Mm12 Mm13 Bb11 ; 
G50.9 IP_ Mm21 Mm22 Mm23 Bb21 ; 
(Movement command block) Mm01 Mm02 Mm03 Bb01 Ss01 Tt01 ; 
IP_ : Auxiliary function output start point. (Absolute coordinate value) 
M m11 : 1st M auxiliary function (1st block) 
M m12 : 2nd M auxiliary function (1st block) 
M m13 : 3rd M auxiliary function (1st block) 
B b11 : 2nd auxiliary function (1st block)


key: chroma:document
string_value:
M m21 : 1st M auxiliary function (2nd block) 
M m22 : 2nd M auxiliary function (2nd block) 
M m23 : 3rd M auxiliary function (2nd block) 
B b21 : 2nd auxiliary function (2nd block) 
M m01 : 1st M auxiliary function (movement block) 
M m02 : 2nd M auxiliary function (movement block) 
M m03 : 3rd M auxiliary function (movement block) 
B b01 : 2nd auxiliary function (movement block) 
 S s01 : Spindle speed command 
 T t01 : T command (Tool compensation)


key: chroma:document
string_value:
- At least one axis of auxiliary function output start point must be commanded at G50.9 block. The 
alarm (PS5330),” G50.9 FORMAT ERROR” occurs if there is not an axis address at G50.9 
block. 
- At least one auxiliary function must be commanded at G50.9 block. The alarm (PS5330),” G50.9 
FORMAT ERROR” occurs if an auxiliary function isn't commanded. 
- It is possible to command G50.9 block up to 2 blocks consecutively. The alarm (PS5330),”


key: chroma:document
string_value:
G50.9 FORMAT ERROR” occurs if more than 3 blocks are commanded. 
- Incremental programming cannot be specified in G50.9 block. The alarm (PS0009),”IMPROPER 
NC ADDRESS” occurs. Also, in case of incremental mode (G91) in G code system B/C, 
incremental programming in G50.9 block is regarded as absolute programming.


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 11. AUXILIARY FUNCTION
- 221 - 
Operation
(1) At the start point of movement block, M/S/T/B codes (m01,m02,m03,b01,s01,t01) of movement 
block are output to PMC, and moving is started. 
Mm01,Mm02,Mm03,Bb01,Ss01,Tt01 of 
movement block are output to PMC at the 
start point. 
The 1st output start point The 2nd output start point 
Fig.11.5 (a) 
(2) When moving to the 1st output start point that is specified at the 1st G50.9 block, if FIN processing


key: chroma:document
string_value:
of M/S/T/B code which was output to PMC in (1) has completed, M code (m11,m12,m13) and B 
code (b11) of the 1st G50.9 block are output to PMC. 
If FIN processing has not completed, M code (m11,m12,m13) and B code (b11) are not output to 
PMC at the 1st output start point. They are output immediately after FIN processing completes. 
Code signals and strobe signals are output to the same signal address as usual auxiliary function. 
Mm11,Mm12,Mm13,Bb11 specified at the


key: chroma:document
string_value:
1st G50.9 block are output to PMC 
The 1st output start point The 2nd output start point 
Fig.11.5 (b) 
(3) When moving to the 2nd output start point that is specified at the 2nd G50.9 block, if FIN 
processing of M/S/T/B code which was output to PMC in (2) has completed, M code 
(m21,m22,m23) and B code (b21) of the 2nd G50.9 block are output to PMC. 
If FIN processing has not completed, M code (m21,m22,m23) and B code (b21) are not output to


key: chroma:document
string_value:
PMC at the 2nd output start point. They are output immediately after FIN processing completes. 
The 1st output start point The 2nd output start point 
Mm21,Mm22,Mm23,Bb21 specified at the 
2nd G50.9 block are output to PMC. 
Fig.11.5 (c) 
(4) When movement completes, if absolute coordinate has not reached the value that was specified at 
G50.9 blocks, the alarm (PS5331), “ILLEGAL COMMANDED POSITION“ occurs.


key: chroma:document
string_value:
11. AUXILIARY FUNCTION PROGRAMMING B-64694EN/01
- 222 - 
Specification of output start point 
When coordinates for 2 axes are specified 
Specified coordinate 
at G50.9 block.
Absolute coordinate when
G50.9 executes.
Auxiliary functions are output when absolute
coordinate enters this area.
Fig.11.5 (d) 
When coordinate for 1 axis is specified 
Specified coordinate 
at G50.9 block. 
Absolute coordinate when
G50.9 executes.
Auxiliary functions are output when absolute


key: chroma:document
string_value:
coordinate enters this area.
Fig.11.5 (e) 
Priority of auxiliary function output 
If absolute coordinate have entered the area that was specified at the 2nd G50.9 block while they have not 
entered the area that was specified at the 1st G50.9 block, auxiliary function of the 2nd G50.9 block are 
not output at that time. After absolute coordinate entered the area that was specified at the 1st G50.9 
block and FIN processing completed, auxiliary function of the 2nd G50.9 block are output finally.


key: chroma:document
string_value:
Alarm at movement completion 
When movement completes, if absolute coordinate has not reached the value that was specified at G50.9 
blocks, the alarm (PS5331), ”ILLEGAL COMMANDED POSITION” occurs. 
The alarm (PS5331), ”ILLEGAL COMMANDED POSITION” occurs if next block after G50.9 block is 
no movement command because absolute coordinate does not reach to the value that was specified at 
G50.9 block. 
Example 1) M code 
G00 X100.0 ; 
G50.9 X200.0 M128 ; 
M01; ← The alarm (PS5331) occurs.


key: chroma:document
string_value:
G00 X3000. ; 
Example 2) Empty block 
G00 X100.0 ; 
G50.9 X200.0 M128 ; 
; (Empty block) ← The alarm (PS5331) occurs. 
G00 X300.0 ;


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 11. AUXILIARY FUNCTION
- 223 - 
Note 
Tool nose radius compensation/Cutter compensation C 
Because G50.9 block is treated as a block without movement, “Tool nose radius compensation” and 
“Cutter compensation C” are temporarily canceled when two G50.9 blocks are commanded 
consecutively. 
Tool compensation 
When tool compensation amount is changed by T code at the movement block, absolute coordinate value


key: chroma:document
string_value:
changes according to tool compensation amount. Therefore, absolute coordinate value sometimes enters 
the area specified by G50.9 block, at the head of the movement block. 
Program restart 
The histories of M code displayed in the screen of program restart are not in actual output order but in 
commanded block order. 
Multiple M commands in a single block 
The bit 7(M3B) of parameter 3404 must be set to 1 in order to command multiple M codes in one block. 
M30, M02, M00, M01


key: chroma:document
string_value:
M30, M02, M00, M01 
Decode signals DM30, DM02, DM01, DM00 are not output while axes are moving if M30, M02, M01, 
M00 are specified at G50.9 block. These decode signals are output at movement completion, but not 
output if FIN processing for M30, M02, M01, M00 have already completed. 
M98, M198 
Subprogram call M code (M98, M198) cannot be commanded at G50.9 block. 
The alarm (PS0076), ”PROGRAM NOT FOUND” occurs. 
Macro call M code 
Custom macro call M code cannot be commanded at G50.9 block.


key: chroma:document
string_value:
Tool life management, Tool management 
Even if the M code (M06, etc.) which counts tool life is commanded at G50.9 block, tool life count isn't 
done. 
Waiting M code 
Even if a waiting M code is commanded at the G50.9 block, waiting function isn't executed. It is 
recognized as a usual auxiliary function. 
Rigid tapping beginning M code 
Even if M code (M29) for beginning rigid tap is commanded at G50.9 block, a mode doesn't switch over 
to rigid tapping. 
M code group check


key: chroma:document
string_value:
M code group check 
If plural M codes of one group are commanded at G50.9 block, the alarm (PS5016), ”ILLEGAL 
COMBINATION OF MCODES” occurs. 
Manual handle retrace 
G50.9 block and movement block cannot move backward in manual handle retrace mode. 
Only forward movement is possible. 
Canned cycle 
Canned cycle cannot be specified as movement command block.


key: chroma:document
string_value:
11. AUXILIARY FUNCTION PROGRAMMING B-64694EN/01
- 224 - 
Auxiliary function lock 
According to the condition of Auxiliary function lock signal AFL at beginning of movement block, 
auxiliary functions are output to PMC. 
Auxiliary function lock
signal AFL 
Movement Axes movement 
M code signals 
The 1st output start point 
MF
FIN
No output No output 
Fig.11.5 (f) 
Auxiliary function lock signal AFL
Movement Axes movement 
M code signals 
The 1st output start point 
MF
FIN
Mm01 Mm11


key: chroma:document
string_value:
MF
FIN
Mm01 Mm11 
Fig.11.5 (g) 
M code for spindle command (M03/M04/M05) 
M code for spindle command (M03/M04/M05) is cannot be specified in G50.9 block. 
These M codes are recognized as usual auxiliary functions. 
M code that is set by parameter 
M code in which specific operation is enabled by parameter setting is cannot be specified in G50.9 block. 
This M code is recognized as a usual auxiliary function. 
Retrace (M system)


key: chroma:document
string_value:
Retrace (M system) 
G50.9 block and movement block cannot move backward. Only forward movement is possible.
Dynamic graphic display 
Instruction information of M code that is specified in G50.9 block is not displayed in Path Drawing 
screen/Animation screen


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 11. AUXILIARY FUNCTION
- 225 - 
Manual intervention 
Do not operate manual intervention in G50.9 block. 
Single block 
During single block operation, G50.9 block stops. 
Incremental programming 
Incremental programming cannot be specified in G50.9 block. The alarm (PS0009), ”IMPROPER 
NC ADDRESS” occurs. 
Also, in case of incremental mode (G91) in G code system B/C, incremental programming in G50.9 block 
is treated as absolute programming.


key: chroma:document
string_value:
12. PROGRAM MANAGEMENT PROGRAMMING B-64694EN/01
- 226 -
12 PROGRAM MANAGEMENT
Operation around program management is described in "PROGRAM MANAGEMENT" in 
OPERATION.
12.1 FOLDERS
Overview
Folders can be created in program memory.
12.1.1 Folder Configuration
The following folders can be created:
- Folder names are up to 32 characters long.
- The following characters can be used in folder names:
Alphabetical characters (uppercase and lowercase letters), numeric characters, and the symbols


key: chroma:document
string_value:
below:
− + _ .
Because "." and ".." are reserved folder names, they cannot be used.
- Initial folders
When program memory is initialized, folders having predefined structures and names are created. These 
folders are called initial folders.
(1) Root folder
The parent folder of all folders
(2) System folder (SYSTEM)
Contains subprograms and macro programs of the system.
(3) MTB dedicated folder 1 (MTB1)
Contains subprograms and macro programs created by the machine tool builder.


key: chroma:document
string_value:
(4) MTB dedicated folder 2 (MTB2)
Contains subprograms and macro programs created by the machine tool builder.
(5) User folder
Contains programs created by the user.
The following folders are further created in this folder:
(a) Path folders (PATHn: As many folders as the number of paths are created.)
Each contains main programs, subprograms, and macro programs used for the corresponding 
path.
(b) Common program folder (LIBRARY)
Contains subprograms and macro programs used commonly.
NOTE


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 12. PROGRAM MANAGEMENT
- 227 -
[Initial folder configuration]
/
SYSTEM/
//CNC_MEM
MTB1/
USER/
PATH1/
PATH2/
LIBRARY/
(1) Root folder
(2) System folder (SYSTEM)
(3) MTB dedicated folder 1 (MTB1)
(5) User folder
(b) Common program folder (LIBRARY)
(a) Path folders (PATHn)
The device that used to contain 
programs is called CNC_MEM.
PATHn/
MTB2/
(4) MTB dedicated folder 2 (MTB2)
Fig.12.1.1 (a)
- User created folders


key: chroma:document
string_value:
- User created folders
Folders other than the initial folders are called user created folders.
User created folders can be created in the following initial folders:
- User folder
- Path folders
User created folders can contain user created main programs, subprograms, and macro programs.
NOTE
1 Folder names must each be unique in the same folder.
2 Each time a user created folder is created, the number of programs that can be 
registered decreases by one.


key: chroma:document
string_value:
registered decreases by one.
3 Folder hierarchical levels of user created folders are limited.
Up to three hierarchical levels starting from the user folder (USER/) are 
permitted.


key: chroma:document
string_value:
12. PROGRAM MANAGEMENT PROGRAMMING B-64694EN/01
- 228 -
/
SYSTEM/
[Sample folder configuration]
//CNC_MEM
MTB1/
USER/
PATH1/
PATH2/
LIBRARY/
User created folders
Programs are grouped by
part to be machined, and the
program groups are stored in
individual folders.
CYLINDER/
PISTON/
GEAR1/
GEAR2/
MTB2/
Fig.12.1.1 (b)
12.1.2 Folder Attributes
The following attributes can be set for folders except the root folder:
- Edit disable
- Edit/display disable
- Edit disable


key: chroma:document
string_value:
- Edit disable
Editing of the programs and folders in a folder can be disabled.
A program in the folder can be output to an external device.
A program cannot be input (registered) from an external device to the folder.
- Edit/display disable
Editing and display of the programs and folders in a folder can be disabled.
When this attribute is set for a folder, the programs and folders in the folder become invisible. (The folder 
appears to contain nothing.)


key: chroma:document
string_value:
appears to contain nothing.)
A program in the folder cannot be output to an external device and a program cannot be input (registered) 
from an external device to a folder.


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 12. PROGRAM MANAGEMENT
- 229 -
12.1.3 Default Folders 
Default folders are folders on which operations are performed when no folder is specified. There are two 
types of default folders as follows:
- Foreground default folder
- Background default folder
How to select a default folder is described in "PROGRAM MANAGEMENT" in OPERATION.
- Foreground default folder
A folder used for foreground operations except automatic operations and program editing is set.


key: chroma:document
string_value:
The target operations include:
- Program input/output
- External data input
- External workpiece number search
- Background default folder
A folder used for background operations is set.
The target operations include:
- Program input/output
NOTE
1 When the foreground or background default folder is not set, a path folder, which 
is an initial folder, is assumed.
2 Foreground and background default folder settings are stored in default folder 
setting files.


key: chroma:document
string_value:
setting files.
3 When a program file, program folder, or program folder management file is 
cleared, the default folder setting file is cleared at the same time.
12.2 PROGRAMS
Overview
Desired program names can be given to part programs in program memory.
12.2.1 Program Name
Program names can be set as follows:
- Program names are up to 32 characters long.
- The following characters can be used in program names:


key: chroma:document
string_value:
Alphabetical characters (uppercase and lowercase letters), numeric characters, and the symbols 
below:
− + _ .
Because "." and ".." are reserved program names, they cannot be used.
- Program names and program numbers 
Program names are associated with program numbers as explained below.
When the program name of a program consists of "O" plus a numeric with the following limitation, the 
program can be handled also by program number.


key: chroma:document
string_value:
- The numeric must be a leading zero suppressed value from 1 to 9999. (Bit 3 (ON8) of parameter 
No.11304 = 0)
- The numeric must be a leading zero suppressed value from 1 to 99999999. (Bit 3 (ON8) of 
parameter No.11304 = 0)


key: chroma:document
string_value:
12. PROGRAM MANAGEMENT PROGRAMMING B-64694EN/01
- 230 -
When the program name of a program does not have the above format, the program cannot be handled by 
program number.
When a program name consisting of "O" plus a numeric does not satisfy the above limitation, the program
cannot be created.
Example)
Program names that can be treated as program numbers
O123 Program number 123
O1 Program number 1
O3000 Program number 3000
O9999 Program number 9999
O12345678 Program number 12345678


key: chroma:document
string_value:
Program names that cannot be treated as program numbers
ABC
o123
O123.4
NOTE
1 Program names must each be unique in the same folder.
2 When the program name of a program is not treated as a program number, the 
program is restricted as follows:
- The program cannot be specified by program number.
- Information output by program number is impossible..
- Displaying Program Names and Program Numbers


key: chroma:document
string_value:
The program name of the program selected or being executed as the main program is displayed as shown 
in Fig. 12.2.1 (a) to Fig. 12.2.1 (c).
- For program names that can be handled as program numbers, the program number is displayed.
Fig. 12.2.1 (a) Program name display 1


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 12. PROGRAM MANAGEMENT
- 231 -
- For program names that cannot be handled as program numbers, the program name is displayed.
The display layout varies as shown below, depending on the length of a program name.
Fig. 12.2.1 (b) Program name display 2
Fig. 12.2.1 (c) Program name display 3
12.2.2 Program Attributes
The following attributes can be set for programs:
- Edit disable
- Edit/display disable
- Encoding
- Change protection level/output protection level


key: chroma:document
string_value:
- Edit disable
Editing of a specified program can be disabled.
A program can be output to an external device.
A program cannot be input (registered) from an external device to the folder.
- Edit/display disable
Editing and display of a specified program can be disabled.
When this attribute is set, the program becomes invisible.
(The folder appears not to contain this program.)
An output to an external device and an input from an external device (program registration) cannot be 
made.
- Encoding


key: chroma:document
string_value:
made.
- Encoding
A specified program can be encoded.
For details of encoding, see the description of the “Program encryption” function.
An output to an external device and an input from an external device (program registration) cannot be 
made.
- Change protection level/output protection level
With the 8-level data protection function, change and output protection can be provided for a specified 
program.


key: chroma:document
string_value:
program.
For details of the 8-level data protection function, see the description of the “Protection of data at eight 
levels” function.


key: chroma:document
string_value:
12. PROGRAM MANAGEMENT PROGRAMMING B-64694EN/01
- 232 -
12.3 RELATION WITH CONVENTIONAL FUNCTIONS
This section explains relation with conventional functions when folder names and program names are 
used.
12.3.1 Relation with Folders
This subsection explains how folders are used for operations and editing.
- Automatic operation
Main program
As the main program running for an automatic operation, a program in a desired folder can be selected.
Subprogram (called by M98/G72.1/G72.2)


key: chroma:document
string_value:
Macro program (called by G65/G66/G66.1/M96)
- Subprogram call (M98)
- Macro call (simple call G65/modal call G66, G66.1)
- Macro interrupt (M96)
- Figure copying (G72.1, G72.2)
When a call listed above is made, folders are searched in the following order, and the program found first 
is called:
<1> Folders containing the main program
<2> Common program folder, which is an initial folder (LIBRARY)
Bit 7 (SCF) of parameter No. 3457 can be used to add the following search folders. (The folders are


key: chroma:document
string_value:
searched in the order listed below.) The folder to be actually enabled is separately set by bits 1 to 3 of 
parameters No. 3457.
<3> MTB dedicated folder 2, which is an initial folder (MTB2)
<4> MTB dedicated folder 1, which is an initial folder (MTB1)
<5> System folder, which is an initial folder (SYSTEM)
Subprogram (called by M code/specific address/2nd auxiliary function)
Macro program (called by G code/M code/T code/one touch macro)


key: chroma:document
string_value:
- Subprogram call by M code/specific address/2nd auxiliary function code
- Macro call by G code/M code/T code
- One touch macro call
For programs called as listed above, the folders to be searched are set in bits 0 to 3 of parameter No.3457
in advance. (The search order is described below.)
The folders set as the search targets are searched, and the program found first is called.
<1> Common program folder, which is an initial folder (LIBRARY)


key: chroma:document
string_value:
<2> MTB dedicated folder 2, which is an initial folder (MTB2)
<3> MTB dedicated folder 1, which is an initial folder (MTB1)
<4> System folder, which is an initial folder (SYSTEM)
- Program editing
A program in any folder can be edited.
- Program I/O
The following functions are performed for default folders:
- Program input from external devices
- Program output to external devices


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 12. PROGRAM MANAGEMENT
- 233 -
- External data input
A set foreground default folder is searched for an external program.
- External workpiece number search
A set foreground default folder is searched for an external workpiece number.
- Macro executor
Programs called by execution macros, conversational macros, and auxiliary macros are programs in 
P-Code files regardless of the default folder.


key: chroma:document
string_value:
For programs on the macro executor, the folder function and program name function are unavailable.
12.3.2 Relation with Program Names
Program names can be used with the following functions:
- Subprogram call (M98)
- Macro call (simple call G65/modal call G66, G66.1)
- Interruption type macro call (M96)
- Subprogram call in figure copying (G72.1, G72.2)
- Program I/O with external devices
- Subprogram call by program name
- Macro call by program name
- Subprogram call (M98)


key: chroma:document
string_value:
- Subprogram call (M98)
- Macro call (G65/G66/G66.1)
- Interruption type macro call (M96)
- Figure copying (G72.1, G72.2)
When a program is called in the above functions, a subprogram call by program name and a macro call by 
program name can be used.
- Subprogram call by program name
 M98 <program-name> Lxx ;
- Macro call by program name
 G65 <program-name> Lxx argument-specification ;
 G66 <program-name> Lxx argument-specification ;
 G66.1 <program-name> Lxx argument-specification ;


key: chroma:document
string_value:
- Interruption type macro call
 M96 <program-name> ;
- Subprogram call by program name in figure copying (G72.1, G72.2)
 G72.1 <program-name> Lxx Xxx Yxx Rxx ;
 G72.2 <program-name> Lxx Ixx Jxx ;
In the above subprogram and macro calls, the program having the program name indicated by 
<program-name> is called.
Format examples:
- Subprogram call
 M98 <R50> L1 ;
- Macro call
 G65 <R50> L1 A0 ;
 G66 <R50> L1 A1 ;
 G66.1 <R50> L1 A2 ;
- Interruption type macro call
 M96 <R50> ;


key: chroma:document
string_value:
12. PROGRAM MANAGEMENT PROGRAMMING B-64694EN/01
- 234 -
- Subprogram call in figure copy
 G72.1 <R50> L1 X0 Y0 R0 ;
 G72.2 <R50> L1 I0 J0 ;
NOTE
1 When characters in <> are read, they are treated in the same way as for 
characters in comments. So, note that these characters are treated differently 
from other significant information portions.
Refer to Appendix B “PROGRAM CODE LIST” for details.
2 The <program-name> word must be placed immediately after each word for


key: chroma:document
string_value:
calling (M98, G65, and so forth).
12.3.3 Related Parameters
This subsection lists the meanings of parameters related to program numbers and the folders and 
programs to be manipulated or executed.
Table 12.3.3
Parameter No. Bit No. Description Manipulation/execution target
3202
0 (NE8) Disables or enables editing of programs O8000 
to O8999.
Corresponding programs in all 
folders
4 (NE9) Disables or enables editing of programs O9000 
to O9999. Same as above
3204


key: chroma:document
string_value:
to O9999. Same as above
3204
3 (P8E) Disables or enables editing of programs 
O80000000 to O8999999. Same as above
4 (P9E) Disables or enables editing of programs 
O90000000 to O99999999. Same as above
5 (SPR)
Assumes or does not assume a particular 
program number in the nine thousands to be a 
number obtained by adding 90000000.
Same as above
3210/3211 - Password/keyword for protecting programs in 
the nine thousands Same as above
3222/3223 - Program protection range (minimum


key: chroma:document
string_value:
value)/(maximum value) Same as above
3404 2 (SBP)
In the subprogram call function, address P in 
the M198 block specifies a file/program 
number.
(Not dependent on the folder 
function and file name function)
6001 5 (TCS) Calls or does not call a custom macro by T 
code.
The following initial folders can be 
selected by parameter setting:
- Common program folder
(LIBRARY)
- MTB dedicated folder 2 (MTB2)
- MTB dedicated folder 1 (MTB1)
- System folder (SYSTEM)


key: chroma:document
string_value:
- System folder (SYSTEM)
6050 to 6059 - G code for calling a custom macro with 
program No. 9010 to 9019 Same as above
6071 to 6079 - M code for calling a subprogram with program 
No. 9001 to 9009 Same as above
6080 to 6089 - M code for calling a custom macro with 
program No. 9020 to 9029 Same as above
6090/6091 - ASCII code for calling a subprogram with 
program No. 9004/9005 Same as above
8341 -
Target program number (for 4- and 8-digit O 
number) for sequence number comparison and 
stop


key: chroma:document
string_value:
stop
Foreground or background default 
folder depending on the mode
11304 3 (ON8) Program number is 4-digit / 8-digit Corresponding programs in all 
folders


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 12. PROGRAM MANAGEMENT
- 235 -
12.3.4 Part Program Storage Size / Number of Registerable 
Programs 
The following table lists the combinations of program storage sizes and the total number of registrable 
programs.
Table 12.3.4
Part program
storage size
Number of registerable
programs
Number of registerable
programs expansion 1
Number of registerable
programs expansion 2
32Kbyte 63 - -
64Kbyte 63 125 -
128Kbyte 63 250 -
256Kbyte 63 500 -
512Kbyte 63 1000 -


key: chroma:document
string_value:
512Kbyte 63 1000 -
1Mbyte 63 1000 2000
2Mbyte 63 1000 4000
4Mbyte 63 1000 4000
8Mbyte 63 1000 4000
NOTE
1 Creating one folder results in the number of 
programs yet to be registerable decreasing 
one.
2 The program storage size means the 
maximum size of a program if the program is 
the one and only program registered.
3 If more than one program is registered, the 
total size of registerable programs reduces for 
the following reason.
The unit of program storage is managed also


key: chroma:document
string_value:
in page units. When a program is created, as 
many pages as necessary to store the 
program are secured, and the program is 
stored on these pages. Generally, the last 
program storage page has an unused area 
(Fig. 12.3.4(a)). This unused area cannot be 
used to store any other program. For the sake 
of program management, it is regarded as an 
area in use.
Example of creating program O0001
O0001 ;
N1 G01 ;
M30 ;
First page
Second page
Last page
Program O0001
Unusable for any other


key: chroma:document
string_value:
Unusable for any other 
program
(Area in use)
N100 … ;
(Area in use)
(Area in use)
(Unused area)
Fig. 12.3.4 (a)Unit of program storage


key: chroma:document
string_value:
13. PROGRAM CONFIGURATION PROGRAMMING B-64694EN/01
- 236 -
13 PROGRAM CONFIGURATION
Overview
- Main program and subprogram
There are two program types, main program and subprogram. Normally, the CNC operates according to 
the main program. However, when a command calling a subprogram is encountered in the main program, 
control is passed to the subprogram. When a command specifying a return to the main program is 
encountered in a subprogram, control is returned to the main program.


key: chroma:document
string_value:
Follow the direction of the 
subprogram
Main program Subprogram
Instruction 1
Instruction 2
Instruction n
Instruction 1’
Instruction 2’
Instruction n+1
Return to the main program
Fig. 13 (a) Main program and Subprogram
The CNC memory can hold up to 4000 main programs and subprograms (63 as standard). A main 
program can be selected from the stored main programs to operate the machine. Refer to the Chapter, 
“CREATING PROGRAMS” and Section, “PROGRAM SEARCH” for the methods of registering and


key: chroma:document
string_value:
selecting programs.
- Program components
A program consists of the following components:
Table 13 (a) Program components
Components Descriptions
Program code start Symbol indicating the start of a program file
Leader section Used for the title of a program file, etc.
Program start Symbol indicating the start of a program
Program section Commands for machining
Comment section Comments or directions for the operator
Program code end Symbol indicating the end of a program file


key: chroma:document
string_value:
Program code start % TITLE ;
O0001 ;
M30 ;
% 
(COMMENT) Program section
Leader section
Program start
Comment section
Program code end
Fig. 13 (b) Program configuration


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 13. PROGRAM CONFIGURATION
- 237 -
- Program section configuration
A program section consists of several blocks. A program section starts with a program number or 
program name and ends with a program end code.
Program section configuration Program section 
Program number O0001 ;
Block 1 N1 G91 G00 X120.0 Y80.0 ;
Block 2 N2 G43 Z-32.0 H01 ;
 : :
Block n Nn Z0 ;
Program end M30 ;


key: chroma:document
string_value:
Program end M30 ;
A block contains information necessary for machining, such as a move command or coolant on/off 
command. Specifying a slash (/) at the start of a block disables the execution of some blocks (Refer to 
"optional block skip").
13.1 PROGRAM COMPONENTS OTHER THAN PROGRAM 
SECTIONS
This section describes program components other than program sections. Refer to the Section, 
“PROGRAM SECTION CONFIGURATION” for a program section.
% TITLE ;
O0001 ;
M30 ;
% 
(COMMENT)


key: chroma:document
string_value:
O0001 ;
M30 ;
% 
(COMMENT)
Program code start
Program section
Leader section
Program start
Comment section
Program code end
Fig. 13.1 (a) Program configuration
Explanation
- Program code start
The program code start indicates the start of a file that contains CNC programs.
The mark is not required when programs are entered using SYSTEM P or ordinary personal computers. 
The mark is not displayed on the screen. However, if the file is output, the mark is automatically output at


key: chroma:document
string_value:
the start of the file.
Table 13.1 (a) Code of a program code start
Name ISO code EIA code Notation in this manual
Program code start % ER %
- Leader section
Data entered before the programs in a file constitutes a leader section. 
When machining is started, the label skip state is usually set by turning on the power or resetting the 
system. In the label skip state, all information is ignored until the first end-of-block code is read. When a


key: chroma:document
string_value:
file is read into the CNC unit from an I/O device, leader sections are skipped by the label skip function.
A leader section generally contains information such as a file header. When a leader section is skipped, 
even a TV parity check is not made. So a leader section can contain any codes except the EOB code.


key: chroma:document
string_value:
13. PROGRAM CONFIGURATION PROGRAMMING B-64694EN/01
- 238 -
- Program start
The program start code is to be entered immediately after a leader section, that is, immediately before a 
program section. 
This code indicates the start of a program, and is always required to disable the label skip function.
With SYSTEM P or ordinary personal computers, this code can be entered by pressing the return key.
Table 13.1 (b) Code of a program start
Name ISO code EIA code Notation in this manual


key: chroma:document
string_value:
Program start LF CR ;
NOTE
If one file contains multiple programs, the EOB code for label skip operation 
must not appear before a second or subsequent program number. 
- Comment section
Any information enclosed by the control-out and control-in codes is regarded as a comment.
The user can enter a header, comments, directions to the operator, etc. in a comment section.
Table 13.1 (c) Codes of a control-in and a control-out
Name ISO code EIA code Notation in this manual Meaning


key: chroma:document
string_value:
Control-out ( 2-4-5 ( Start of comment section
Control-in ) 2-4-7 ) End of comment section
When a program is read into memory for memory operation, comment sections, if any, are not ignored 
but are also read into memory. Note, however, that codes other than those listed in the code table in 
Appendix A are ignored, and thus are not read into memory.
When data in memory is output on external I/O device (Refer to the Chapter, “DATA INPUT/OUTPUT”), 
the comment sections are also output.


key: chroma:document
string_value:
When a program is displayed on the screen, its comment sections are also displayed. However, those 
codes that were ignored when read into memory are not output or displayed.
During memory operation or DNC operation, all comment sections are ignored.
The TV check function can be used for a comment section by setting bit 1 (CTV) of parameter No. 0100.
CAUTION
If a long comment section appears in the middle of a program section, a move


key: chroma:document
string_value:
along an axis may be suspended for a long time because of such a comment 
section. So a comment section should be placed where movement suspension 
may occur or no movement is involved.
NOTE
1 If only a control-in code is read with no matching control-out code, the read 
control-in code is ignored.
2 The following codes cannot be used in the comment section:
- EOB
- % (ER for EIA)
- Program code end
A program code end is to be placed at the end of a file containing NC programs.


key: chroma:document
string_value:
If programs are entered using the automatic programming system, the mark need not be entered. 
The mark is not displayed on the screen. However, when a file is output, the mark is automatically output 
at the end of the file.
If an attempt is made to execute % when M02 or M30 is not placed at the end of the program, the alarm 
PS5010, “END OF RECORD” is occurred.


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 13. PROGRAM CONFIGURATION
- 239 -
Table 13.1 (d) Code of a program code end
Name ISO code EIA code Notation in this manual
Program code end % ER %
13.2 PROGRAM SECTION CONFIGURATION
This section describes elements of a program section. Refer to the Section, “PROGRAM COMPONENTS 
OTHER THAN PROGRAM SECTIONS” for program components other than program sections.
% 
(COMMENT)
% TITLE ;
O0001 ;
N1 ... ;
M30 ;
Program section
Program number
Sequence number
Program end


key: chroma:document
string_value:
Sequence number
Program end
Fig. 13.2 (a) Program configuration
- Program number
A program number consisting of address O followed by a four-digit number is assigned to each program 
at the beginning registered in memory to identify the program. When the 8-digit number function is 
selected, the program number consists of eight digits.
In ISO code, the colon ( : ) can be used instead of O.
When no program number is specified at the start of a program, the sequence number (N....) at the start of


key: chroma:document
string_value:
the program is regarded as its program number. If a five-digit sequence number is used, the lower four 
digits are registered as a program number. If the lower four digits are all 0, the program number registered 
immediately before added to 1 is registered as a program number. Note, however, that N0 cannot be used 
for a program number.
If there is no program number or sequence number at the start of a program, a program number must be


key: chroma:document
string_value:
specified using the MDI unit when the program is stored in memory (Refer to the Section, 
“INPUT/OUTPUT ON EACH SCREEN” or “CREATING PROGRAMS USING THE MDI UNIT”)
NOTE
Program numbers 8000 to 9999 may be used by machine tool builders, and the 
user may not be able to use these numbers.
- Program name
A program name can be assigned instead of a program number.
When coding a program name, be sure to place the program name enclosed in "<" and ">" at the 
beginning of a program.
Example) % ;


key: chroma:document
string_value:
13. PROGRAM CONFIGURATION PROGRAMMING B-64694EN/01
- 240 -
NOTE
A program name can be coded:
- At the beginning of a program
- Immediately after M98, G65, G66, G66.1, M96, G72.1, or G72.2
Do not code a file name in other than the above.
- Sequence number and block
A program consists of several commands. One command unit is called a block. One block is separated 
from another with an EOB of end of block code.
Table 13.2 (a) EOB code
Name ISO code EIA code Notation in this manual


key: chroma:document
string_value:
End of block (EOB) LF CR ;
At the head of a block, a sequence number consisting of address N followed by a number not longer than 
eight digits (1 to 99999999) can be placed. Sequence numbers can be specified in a random order, and 
any numbers can be skipped. Sequence numbers may be specified for all blocks or only for desired blocks 
of the program. In general, however, it is convenient to assign sequence numbers in ascending order in


key: chroma:document
string_value:
phase with the machining steps (for example, when a new tool is used by tool replacement, and 
machining proceeds to a new surface with table indexing.)
N300X200.0Z300.0 ; A sequence number is underlined.
Fig. 13.2 (b) Sequence number and block (example)
NOTE
N0 must not be used for the reason of file compatibility with other CNC systems.
Program number 0 cannot be used. So 0 must not be used for a sequence 
number regarded as a program number.
- TV check (Vertical parity check)


key: chroma:document
string_value:
A parity check is made for each block of input data. If the number of characters in one block (starting 
with the code immediately after an EOB and ending with the next EOB) is odd, an alarm PS0002, “TV 
ERROR” is output.
No TV check is made only for those parts that are skipped by the label skip function. Bit 1 (CTV) of 
parameter No. 0100 is used to specify whether comments enclosed in parentheses are counted as


key: chroma:document
string_value:
characters during TV check. The TV check function can be enabled or disabled by setting on the MDI 
unit (Refer to the Subsection, “Displaying and Entering Setting Data”).
- Block configuration (word and address)
A block consists of one or more words. A word consists of an address followed by a number some digits 
long. (The plus sign (+) or minus sign (-) may be prefixed to a number.)
For an address, one of the letters (A to Z) is used ; an address defines the meaning of a number that


key: chroma:document
string_value:
follows the address.
Word = Address + number (Example : X-1000)
Table 13.2 (b) indicates the usable addresses and their meanings.
The same address may have different meanings, depending on the preparatory function specification.
Table 13.2 (b) Major functions and addresses
Function Address Meaning
Program number O(*) Program number
Sequence number N Sequence number
Preparatory function G Specifies a motion mode (linear, arc, etc.)


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 13. PROGRAM CONFIGURATION
- 241 -
Function Address Meaning
Dimension word
X, Y, Z, U, V, W, A, B, C Coordinate axis move command
I, J, K Coordinate of the arc center
R Arc radius
Feed function F Rate of feed per minute, 
Rate of feed per revolution
Spindle speed function S Spindle speed
Tool function T Tool number
Auxiliary function M On/off control on the machine tool
B Table indexing, etc.
Program number designation P Subprogram number


key: chroma:document
string_value:
Number of repetitions P, L Number of subprogram repetitions
Parameter P, Q Canned cycle parameter
M
Offset number D, H Offset number
Dwell P, X Dwell time
T
Dwell P, X, U Dwell time
NOTE
(*) In ISO code, the colon ( : ) can also be used as the address of a program 
number.
N_ G_ X_ Y_ F_ S_ T_ M_ ;
Sequence number Preparatory 
function
Dimension word Feed-function Spindle speed 
function
Tool function Auxiliary function
Fig. 13.2 (c) 1 block (example)


key: chroma:document
string_value:
- Major addresses and ranges of command values
Major addresses and the ranges of values specified for the addresses are shown below. Note that these 
figures represent limits on the CNC side, which are totally different from limits on the machine tool side. 
For example, the CNC allows a tool to traverse up to about 100 m (in millimeter input) along the X axis.
However, an actual stroke along the X axis may be limited to 2 m for a specific machine tool.


key: chroma:document
string_value:
Similarly, the CNC may be able to control a cutting feedrate of up to 240 m/min, but the machine tool 
may not allow more than 3 m/min. When developing a program, the user should carefully read the 
manuals of the machine tool as well as this manual to be familiar with the restrictions on programming.


key: chroma:document
string_value:
13. PROGRAM CONFIGURATION PROGRAMMING B-64694EN/01
- 242 -
Table 13.2 (c) Major addresses and ranges of command values
Function Address Input in mm Input in inch
Program number O (*1) 1 to 99999999 1 to 99999999
Sequence number N 1 to 99999999 1 to 99999999
Preparatory function G 0 to 99.9 0 to 99.9
Dimension 
word
Increment system IS-A
X,Y,Z,U,V,
W,A,B,C,I,
J,K,R (*2)
±999999.99 mm
±999999.99 deg.
±99999.999 inch *3
±999999.99 deg.
Increment system IS-B ±999999.999 mm
±999999.999 deg.


key: chroma:document
string_value:
±999999.999 deg.
±99999.9999 inch *3
±999999.999 deg.
Increment system IS-C ±99999.9999 mm
±99999.9999 deg.
±9999.99999 inch *3
±99999.9999 deg.
Feed per 
minute
Increment system IS-A
F
0.01 to 999000.00mm/min 0.001 to 96000.000inch/min
Increment system IS-B 0.001 to 999000.000mm/min 0.0001 to 9600.0000inch/min
Increment system IS-C 0.0001 to 99999.9999mm/min 0.00001 to 4000.00000inch/min
Feed per revolution F 0.001 to 50000mm/rev 0.0001 to 50.0000inch/rev


key: chroma:document
string_value:
Spindle speed function S (*4) 0 to 99999999 0 to 99999999
Tool function T (*4) 0 to 99999999 0 to 99999999
Auxiliary function M (*4) 0 to 99999999 0 to 99999999
B (*4) 0 to 99999999 0 to 99999999
Offset number (M series only) H, D 0 to 999 0 to 999
Dwell
Increment system IS-A X, 
U (T series 
only)
0 to 999999.99 sec 0 to 999999.99 sec
Increment system IS-B 0 to 99999.999 sec 0 to 99999.999 sec
Increment system IS-C 0 to 9999.9999 sec 0 to 9999.9999 sec
Dwell P 1 to 99999999 1 to 99999999


key: chroma:document
string_value:
Designation of a program number P 1 to 99999999 1 to 99999999
Number of subprogram repetitions L 1 to 99999999 1 to 99999999
P 0 to 9999 0 to 9999
*1 In ISO code, the colon ( : ) can also be used as the address of a program number.
*2 When address I, J, K, or R is used to specify the radius for circular interpolation, the specifiable 
range is as follows:
Increment system Input in mm Input in inch
IS-A ±999999999.99 mm ±99999999.999 inch
IS-B ±999999999.999 mm ±99999999.9999 inch


key: chroma:document
string_value:
IS-C ±99999999.9999 mm ±9999999.99999 inch
*3 For inch input/millimeter machines, the maximum specifiable range of dimension words is as 
follows:
Increment system Maximum specifiable range
IS-A ±39370.078 inch
IS-B ±39370.0787 inch
IS-C ±3937.00787 inch
*4 The maximum value of addresses M, S, T, and B is 99999999. Note that, however, values longer 
than the permissible number of digits set in parameters Nos. 3030 to 3033 cannot be specified.


key: chroma:document
string_value:
The values and uses for some codes are limited by parameter setting. (For example, some M codes 
are not buffered.) For details, refer to the parameter manual.
- Optional block skip
When a slash followed by a number (/n (n=1 to 9)) is specified at the head of a block, and optional block 
skip signals BDT1 to BDT9 are set to “1” during automatic operation, the information (/n to the end of 
the block (EOB)) contained in the block for which /n corresponding to signal BDTn is specified is 
ignored.


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 13. PROGRAM CONFIGURATION
- 243 -
Example 2)
//3 N123 X100.0 Y200.0 ; → Incorrect
/1 /3 N123 X100.0 Y200.0 ; → Correct
Input signal and program code
Input signal Start code to be ignored
BDT1 / or /1(NOTE)
BDT2 /2
BDT3 /3
BDT4 /4
BDT5 /5
BDT6 /6
BDT7 /7
BDT8 /8
BDT9 /9
NOTE
1 Number 1 for /1 can be omitted. However, when two or more optional block skips 
are specified for one block, number 1 for /1 cannot be omitted.


key: chroma:document
string_value:
2 Depending on the machine tool, all optional block skip signals (1 to 9) may not 
be usable. Refer to manuals of the machine tool builder to find which switches 
are usable.
The following shows the relationship between the timing at which optional block skip signals BDT1 to 
BDT9 are set to “1” and the range of information to be ignored.
1. When the signal BDTn is set to “1” before the CNC starts reading a block that contains /n, the block 
is ignored.
BDTn "1"
"0"


key: chroma:document
string_value:
is ignored.
BDTn "1"
"0"
Read by CNC → . . . ; /n N123 X100. Y200. ;N234 . . . .
This range of information is ignored.
2. When the signal BDTn is set to “1” while the CNC is reading a block that contains /n, the block is 
not ignored.
BDTn "1"
"0"
Read by CNC → . . . ; /n N123 X100. Y200. ; N234 . . . .
This range of information is not ignored.
3. When the signal BDTn is set to “0” while the CNC is reading a block that contains /n, the block is 
ignored.
BDTn "1"
"0"


key: chroma:document
string_value:
ignored.
BDTn "1"
"0"
Read by CNC → . . . ; /n N123 X100. Y200.; N234 . . . .
This range of information is ignored.


key: chroma:document
string_value:
13. PROGRAM CONFIGURATION PROGRAMMING B-64694EN/01
- 244 -
4. Two or more optional block skips can be specified in one block. When the signal corresponding to 
any of the specified skips is set to “1”, the block is ignored.
BDT3 "1"
"0"
Read by CNC → . . . ; /1 /3 /5 N123 X100. Y200. ; N234 . . . .
This range of information is ignored.
NOTE
1 This function is not used when a program is registered in memory. A block


key: chroma:document
string_value:
containing / is registered in memory regardless of the statuses of optional block 
skip signals. When a program in memory is also output regardless of the 
statuses of optional block skip signals.
In addition, the optional block skip function is enabled during a search for a 
sequence number.
2 Position of a slash
A block skip slash (/) must be specified at the beginning of a block. Note that if a 
slash is placed elsewhere, the information from the slash to immediately before


key: chroma:document
string_value:
the EOB code is ignored.
3 TV and TH check
When the optional block skip signal is set to “1”, TH and TV checks are made for 
the skipped portions in the same way as when the optional block skip signal is 
set to “0”.
- Program end
The end of a program is indicated by programming one of the following codes at the end of the program:
Table 13.2 (d) Code of a program end
Code Meaning usage
M02 For main program M30
M99 For subprogram


key: chroma:document
string_value:
M99 For subprogram
If one of the program end codes is executed in program execution, the CNC terminates the execution of 
the program, and the reset state is set. When the subprogram end code is executed, control returns to the 
program that called the subprogram.
CAUTION
A block containing an optional block skip code such as /M02 ; , /M30 ; , or /M99 ; 
is not regarded as the end of a program. (Refer to "Optional block skip".)


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 13. PROGRAM CONFIGURATION
- 245 -
13.3 SUBPROGRAM (M98, M99)
If a program contains a fixed sequence or frequently repeated pattern, such a sequence or pattern can be 
stored as a subprogram in memory to simplify the program.
A subprogram can be called from the main program. 
A called subprogram can also call another subprogram.
Format
- Subprogram configuration
One subprogram
Subprogram number or subprogram name (or the colon (:) optionally in 
the case of ISO)


key: chroma:document
string_value:
the case of ISO)
Program end
M99 need not constitute a separate block as indicated below.
Example) X100.0Y100.0M99;
- Subprogram call
- When a subprogram with a 4-digit or shorter program number is called
M98 Pxxxx xxxx ;
 Subprogram number
Number of times the subprogram is called repeatedly
or
M98 Pxxxx Lxxxxxxxx ;
Number of times the subprogram is called repeatedly
Subprogram number
- When a subprogram with a 5-digit or longer program number is called
M98 Pxxxxxxxx Lxxxxxxxx ;


key: chroma:document
string_value:
M98 Pxxxxxxxx Lxxxxxxxx ;
Subprogram number
Number of times the subprogram is called repeatedly
- When a subprogram is called by program name
M98 <xxxx> Lxxxxxxxx ;
Subprogram name
Number of times the subprogram is called repeatedly
Oxxxx ;
 :
M99;


key: chroma:document
string_value:
13. PROGRAM CONFIGURATION PROGRAMMING B-64694EN/01
- 246 -
- Called program and folders to be searched
The order in which folders are searched depends on the method of calling a subprogram. Folders are 
searched in sequence and the program found first is called. For details, refer to the Chapter "Managing 
Programs".
NOTE
1 When calling a subprogram of a 4-digit or shorter subprogram number 
repeatedly (P8 digit), make the subprogram number 4 digits by prefixing it with 0


key: chroma:document
string_value:
if the subprogram number is shorter than 4 digits.
Example)
P100100: Call subprogram No. 100 ten times.
P50001: Call subprogram No. 1 five times.
2 If the number of times the subprogram is called repeatedly is omitted when a 
subprogram with a 4-digit or shorter program number is called, the subprogram 
is called just once.
In this case, it is not necessary to adjust the subprogram number length to 4 
digits as described in Item 1 above.


key: chroma:document
string_value:
3 When calling a subprogram of a 4-digit or shorter program number repeatedly 
(P8 digit), do not specify address L in the same block.
4 When calling a subprogram with a 5-digit or longer program number, do not omit 
the specification of the number of repeats.
5 When calling a subprogram by program name, be sure to specify the program 
name immediately after M98.
Explanation
When the main program calls a subprogram, it is regarded as a one-level subprogram call. Thus,


key: chroma:document
string_value:
subprogram calls can be nested up to ten levels as shown below. In addition, when custom macro is used, 
subprogram and macro calls can be nested up to a total of 15 levels.
O0001 ;
M98P0010 ;
M30 ;
Main program
O0090 ;
M99 ;
O0010 ;
M98P0020 ;
M99 ;
O0020 ;
M98P0030 ;
M99 ;
Subprogram
(One-level nesting) (Two-level nesting) (Nine-level nesting)
Subprogram Subprogram
O0100 ;
M99 ;
(Ten-level nesting)
Subprogram
M98P0100 ;


key: chroma:document
string_value:
Subprogram
M98P0100 ;
A single call command can repeatedly call a subprogram up to 99999999 times. For compatibility with 
automatic programming systems, in the first block, Nxxxxxxxx can be used instead of a subprogram 
number that follows O (or :). A sequence number after N is registered as a subprogram number. 
NOTE
1 The M98 and M99 code signal and strobe signal are not output to the machine 
tool.
2 If the subprogram number specified by address P cannot be found, an alarm


key: chroma:document
string_value:
PS0078, “SEQUENCE NUMBER NOT FOUND” is output.
3 When an attempt is made to call a subprogram by program name, but the 
specified program cannot be found, alarm PS0310, “FILE NOT FOUND” is 
issued.


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 13. PROGRAM CONFIGURATION
- 247 -
Example
M98 P51002 ; 
This command specifies "Call the subprogram (number 1002) five times in 
succession." A subprogram call command (M98P_) can be specified in the same 
block as a move command.
X1000.0 M98 P1200 ; 
This example calls the subprogram (number 1200) after an X movement.
Execution sequence of subprograms called from a main program
1 2 3 Main program
N0010 . . . ;
N0020 . . . ;
N0030 M98 P21010 ;
N0040 . . . ;


key: chroma:document
string_value:
N0040 . . . ;
N0050 M98 P1010 ;
N0060 . . . ;
Subprogram
O1010 . . . ;
N1020 . . . ;
N1030 . . . ;
N1040 . . . ;
N1050 . . . ;
N1060 . . . M99 ;
A subprogram can call another subprogram in the same way as a main program 
calls a subprogram.
Special usage
- Specifying the sequence number for the return destination in the main 
program
If P is used to specify a sequence number when a subprogram is terminated, control does not return to the


key: chroma:document
string_value:
block after the calling block, but returns to the block with the sequence number specified by P. Note, 
however, that P is ignored if the main program is operating in a mode other than memory operation mode.
This method consumes a much longer time than the normal return method to return to the main program.
Subprogram
O0010 . . . ;
N1020 . . . ;
N1030 . . . ;
N1040 . . . ;
N1050 . . . ;
N1060 . . . M99 P0060 ;
Main program
N0010 . . . ;
N0020 . . . ;
N0030 M98 P1010 ;
N0040 . . . ;


key: chroma:document
string_value:
N0040 . . . ;
N0050 . . . ;
N0060 . . . ;
- Using M99 in the main program
If M99 is executed in a main program, control returns to the start of the main program. For example, M99 
can be executed by placing /M99 ; at an appropriate location of the main program and setting the optional 
block skip function to off when executing the main program. When M99 is executed, control returns to 
the start of the main program, then execution is repeated starting at the head of the main program.


key: chroma:document
string_value:
Execution is repeated while the optional block skip function is set to off. 
If the optional block skip function is set to on, the /M99 ; block is skipped ; control is passed to the next 
block for continued execution.
If/M99Pn ; is specified, control returns not to the start of the main program, but to sequence number n. In 
this case, a longer time is required to return to sequence number n.
N0010 . . . ;
N0020 . . . ;
N0030 . . . ;
N0040 . . . ;
N0050 . . . ;
N0060 . . . M99 P0030 ;


key: chroma:document
string_value:
N0060 . . . M99 P0030 ;
N0070 . . . ;
N0080 M02 ;
/ Optional block skip
ON
Optional block skip
OFF


key: chroma:document
string_value:
13. PROGRAM CONFIGURATION PROGRAMMING B-64694EN/01
- 248 -
- Using a subprogram only
A subprogram can be executed just like a main program by searching for the start of the subprogram with 
the MDI.
(Refer to the Section, “PROGRAM SEARCH” for information about search operation.)
In this case, if a block containing M99 is executed, control returns to the start of the subprogram for 
repeated execution. If a block containing M99Pn is executed, control returns to the block with sequence


key: chroma:document
string_value:
number n in the subprogram for repeated execution. To terminate this program, a block containing /M02 ; 
or /M30 ; must be placed at an appropriate location, and the optional block switch must be set to off ; this 
switch is to be set to on first.
N1010 . . . ;
N1020 . . . ;
N1030 . . . ;
N1040 . . . M02 ;
N1050 M99 P1020 ;
/
Optional block skip ON
- Subprogram call with sequence number
Setting bit 0 (SQC) of parameter No. 6005 to 1 can call a specified sequence number in the subprogram


key: chroma:document
string_value:
for execution.
In a subprogram call command, specify the letter Q followed by a sequence number to be called after the
letter P for specifying a program number.
M98 Pxxxx Qxxxxx ;
 Sequence number
 Program number
This command causes program execution to start at the called sequence number in the subprogram. If a 
repetition count is specified, program execution is repeated from the specified sequence number.
Main program
N0010…; 
N0020…;
N0030 M98 P1010 Q1030 ; 
N0040…;
N0050…;
N0060…;


key: chroma:document
string_value:
N0040…;
N0050…;
N0060…;
Sub program
O1010…;
N1020…;
N1030…;
N1040…;
N1050…;
N1060…M99 ;
This function enables a sequence number in the same program to be called for execution as shown below.
This method, however, requests the programmer to be aware of an allowable call nesting level. If an 
attempt is made to exceed the allowable nesting level, alarm PS0077, “TOO MANY SUB,MACRO 
NESTING” is issued.
O0001 ;
N0010…;
N0020 M98 (P0001) Q0050 ;
N0030…;
N0040…;
N0050…; 
N0060…;
N0070…M99;


key: chroma:document
string_value:
N0050…; 
N0060…;
N0070…M99;
For a call within the same program, specification of Pxxxx in a block can be omitted when the block 
includes M98.
This function is usable only for subprogram calls by M98; it is unusable for non-M98 calls, such as macro 
calls or external subprogram calls based on M198.


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 13. PROGRAM CONFIGURATION
- 249 -
NOTE
If bit 0 (SQC) of parameter No. 6005 is 0, and an M98 Pxxxx Qxxxxx command 
is specified, alarm PS0009, "IMPROPER NC-ADDRESS", is issued.
13.4 COMMAND PATH OF MACRO CALL OR SUBPROGRAM 
CALL
The call of program by the command of path can be executed at Subprogram call and Macro call.
This function can be used by setting the parameter CPD (No.3233#4) =1.
Format
Case of subprogram call (M98)
1. Command absolute path


key: chroma:document
string_value:
1. Command absolute path
M98 <//device name(*1)/folder name/file name> L_；
L: Number of times the subprogram is called repeatedly
（*1）The device name can be omitted. If the device name is omitted, the same device as 
folder of main program is selected.
2. Command relative path
M98 <./../folder name/file name> L_；
. : It means the folder of main program. 
..: It means the folder of one high hierarchy.
L: Number of times the subprogram is called repeatedly
NOTE


key: chroma:document
string_value:
NOTE
1 If the path for file name is omitted, the program is searched in the regulations of 
order as usual, and called. 
2 If parameter CPD is set to 1 and the path for file name is commanded, the 
program is not searched in the regulations of order as usual.
3 The following command can be use.
 - Subprogram call (M98)
 - Macro call (G65,G66,G66.1)
 - Subprogram call in figure copying (G72.1,G72.2)
4 “.” can be specified once at the head of the path name.


key: chroma:document
string_value:
“..” can be specified only for continuing after“.”.
5 “..” is not possible to go up to the hierarchy of the device name.
If the command of relative path is executed, It is not possible to call the program 
of the different device.
6 When the path command called by DNC operation with the program is not 
selected in MEM mode, only the absolute path command include device name 
can be executed. If another path command is specified, the alarm occurs. 
7 In Word editing mode,


key: chroma:document
string_value:
7 In Word editing mode,
 - when CPD is set to 0, ' /' cannot be used between ' <' and ' >'.
 - when CPD is set ti 1, ' /' can be used between ' <' and ' >'.
8. When the specified program cannot be found, alarm PS0310, “FILE NOT 
FOUND” is issued.


key: chroma:document
string_value:
13. PROGRAM CONFIGURATION PROGRAMMING B-64694EN/01
- 250 -
Explanation
In case of the following folder components, program O1 is called by absolute path of subprogram call.
［Folder components］
/
SYSTEM/
//CNC_MEM
MTB1/
USER/
PATH1/
PATH2/
LIBRARY/
１）Root folder
２）System folder（SYSTEM）
３）MTB dedicated folder 1（MTB1）
５）User folder
5.2）Common program folder
 （LIBRARY）
5.1）Path folder（PATHn）
MTB2/
４）MTB dedicated folder 2（MTB2）
O0001
M98<//CNC_MEM/USER/PATH1/O1> is coded.
Limitation


key: chroma:document
string_value:
Limitation
The following functions are not supported.
 - Macro interrupt (M96)
 - Macro executor
Other limitations are the same as those for subprogram call or macro call.


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 
- 251 - 
14. FUNCTIONS TO SIMPLIFY 
PROGRAMMING 
14 FUNCTIONS TO SIMPLIFY PROGRAMMING 
14.1 FIGURE COPYING (G72.1, G72.2) 
Machining can be repeated after moving or rotating the figure using a subprogram. 
Format 
 - Rotational copying 
Xp-Yp plane (specified by G17) : G72.1 P_ L_ Xp_Yp_R_ ; 
Zp-Xp plane (specified by G18) : G72.1 P_ L_ Zp_Xp_R_ ; 
Yp-Zp plane (specified by G19) : G72.1 P_ L_ Yp_Zp_R _; 
P :Subprogram number


key: chroma:document
string_value:
P :Subprogram number 
L :Number of times the operation is repeated 
Xp :Center of rotation on the Xp axis (Xp: X-axis or an axis parallel to the X-axis) 
Yp :Center of rotation on the Yp axis (Yp: Y-axis or an axis parallel to the Y-axis) 
Zp :Center of rotation on the Zp axis (Zp: Z-axis or an axis parallel to the Z-axis) 
R :Angular displacement (A positive value indicates a counterclockwise angular 
displacement. Specify an incremental value.)


key: chroma:document
string_value:
Specify a plane selection command (G17, G18, or G19) to select the plane on which the 
rotational copying is made. 
 - Linear copying 
Xp-Yp plane (specified by G17) : G72.2 P_ L_ I_ J_ ; 
Zp-Xp plane (specified by G18) : G72.2 P_ L_ K_ I_ ; 
Yp-Zp plane (specified by G19) : G72.2 P_ L_ J_ K_; 
P :Subprogram number 
L :Number of times the operation is repeated 
I :Shift along the Xp axis 
J :Shift along the Yp axis 
K :Shift along the Zp axis


key: chroma:document
string_value:
K :Shift along the Zp axis 
Specify a plane selection command (G17, G18, or G19) to select the plane on which the 
linear copying is made.


key: chroma:document
string_value:
PROGRAMMING B-64694EN/01
- 252 - 
14. FUNCTIONS TO SIMPLIFY 
PROGRAMMING 
Explanation 
 - First block of the subprogram 
The first block of a subprogram that performs a rotational or linear copying must be the block including 
absolute move command. If the first block does not have a move command, movement may stop at the 
start point of the figure made by the n-th (n = 1, 2, 3, ...) copying. 
(Example of an incorrect program) 
O1234 ; 
G00 G90 X100.0 Y200.0 ; 
. . . . . ; 
. . . . . ;


key: chroma:document
string_value:
. . . . . ; 
. . . . . ; 
M99 ; 
(Example of a correct program) 
O1000 G00 G90 X100.0 Y200.0 ; 
. . . . . ; 
. . . . . ; 
M99 ; 
 - Combination of rotational and linear copying 
The linear copying command can be specified in a subprogram for a rotational copying. Also, the 
rotational copying command can be specified in a subprogram for a linear copying. 
 - Subprogram call 
In a subprogram for rotational or linear copying, M98 for calling another subprogram or G65 for calling a


key: chroma:document
string_value:
macro can be specified. 
 - Specifying the center of rotation 
The center of rotation specified with G72.1 is processed as an absolute position even in the incremental 
mode. 
 - Specifying address 
In a block with G72.1, addresses other than P, L, Xp, Yp, Zp, or R are ignored. The subprogram number 
(P), coordinates of the center of rotation (Xp, Yp, Zp), and angular displacement (R) must be specified. 
In a block with G72.2, addresses other than P, L, I, J, or K are ignored.


key: chroma:document
string_value:
The subprogram number (P) and shift (I, J, K) must be specified. 
 - Address P 
If the subprogram number specified with P is not found, alarm PS0310, “FILE NOT FOUND” occurs. If 
P is not specified, alarm PS0076, “PROGRAM NOT FOUND” occurs. 
 - Address L 
If L is omitted, the repetition count is assumed to be 1 and the subprogram is called only once. 
 - Increment in angular displacement or shift 
In a block with G72.1, an increment in angular displacement is specified with address R. The angular


key: chroma:document
string_value:
displacement of the figure made by the n-th rotation is calculated as follows : R × (n - 1). 
In a block with G72.2, an increment in shift is specified with addresses I, J, and K. The shift of the figure 
made by the n-th movement is calculated as follows : (Programmed shift) × (n - 1). 
 - Nesting level of a subprogram 
If a subprogram is called by G72.1 or G72.2, the nesting level is increased by one in the same manner as 
when M98 is specified.


key: chroma:document
string_value:
B-64694EN/01 PROGRAMMING 
- 253 - 
14. FUNCTIONS TO SIMPLIFY 
PROGRAMMING 
 - Block end position 
The coordinates of a figure moved rotationally or linearly (block end position) can be read from #5001 
and subsequent system variables of the custom macro of rotational or linear copying. 
 - Disagreement between end point and start point 
If the end point of the figure made by the n-th copy does not agree with the start point of the figure to be


key: chroma:document
string_value:
made by the next (n + 1) copy, the figure is moved from the end point to the start point, then copying is 
started. (Generally, this disagreement occurs if an incorrect angular displacement or shift is specified.) 
Start point 
End point of the first copy 
Start point of the second copy 
Y 
70 
P0 
P1 
P2 
P3 
P4 P5 
P6 P7 
X 
30 20 
Fig. 14.1 (a) 
Main program 
O1000 ; 
N10 G92 X-20.0 Y0.0 ; 
N20 G00 G90 X0.0 Y0.0 ; 
N30 G01 X20.0 Y0.0 F10 ; (P0) 
N40 Y20.0 ; (P1) 
N50 X30.0 ; (P2)


key: chroma:document
string_value:
N50 X30.0 ; (P2) 
N60 G72.2 P2000 L3 I90.0 J0.0 ; 
 Although a shift of 70 mm was required, I90.0 was 
specified instead of I70.0. Since an incorrect shift was 
specified, the end point of the figure made by the n-th 
copy disagrees with the start point of the figure to be 
made by the next (n + 1) copy. 
Subprogram 
O2000 G90 G01 X40.0 ; (P3) 
N100 Y40.0 ; (P4) 
N200 X80.0 ; (P5) 
N300Y20.0 ; (P6) 
N400 X100.0 ; (P7) 
N500 M99; 
 - Incremental command after figure copying


key: chroma:document
string_value:
If the move command specified after figure copying is not absolute but incremental one, the incremental 
command operation depends on the setting of bit 2 (FCI) of parameter No. 11279. 
(1) If bit 2 (FCI) of parameter No. 11279 is set to 0 
 The starting point for the incremental command is the end point of the figure made by the first copy. 
(2) If bit 2 (FCI) of parameter No. 11279 is set to 1 (FS16i compatible)


key: chroma:document
string_value:
The starting point for the incremental command is the end point of the figure made by the last copy.


key: chroma:document
string_value:
PROGRAMMING B-64694EN/01
- 254 - 
14. FUNCTIONS TO SIMPLIFY 
PROGRAMMING 
Though the incremental command is specified after the following figure copying, the starting point for the 
incremental command is the end point of the figure made by the first copy regardless of the setting of bit 
2 (FCI) of parameter No. 11279. 
• Rotational copying specified in a subprogram for a linear copying 
• Linear copying specified in a subprogram for a rotational copying 
Limitation


key: chroma:document
string_value:
Limitation 
 - Specifying two or more commands to copy a figure 
G72.1 cannot be specified more than once in a subprogram for making a rotational copying (If this is 
attempted, alarm PS0308, “G72.1 NESTING ERROR” will occur). G72.2 cannot be specified more than 
once in a subprogram for making a linear copying (If this is attempted, alarm PS0309, “G72.2 NESTING 
ERROR” will occur). 
 - Commands that must not be specified


