0% found this document useful (0 votes)
10 views

NC300 GCode Programming Manual

The document provides a comprehensive guide on G and M commands for the NC300 milling machine, detailing command syntax, function descriptions, and usage examples. It includes a table of commands, explanations for various G codes such as fast positioning, linear cutting, and arc cutting, as well as M commands for program control. The document serves as a reference for operators to effectively utilize the machine's programming capabilities.

Uploaded by

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

NC300 GCode Programming Manual

The document provides a comprehensive guide on G and M commands for the NC300 milling machine, detailing command syntax, function descriptions, and usage examples. It includes a table of commands, explanations for various G codes such as fast positioning, linear cutting, and arc cutting, as well as M commands for program control. The document serves as a reference for operators to effectively utilize the machine's programming capabilities.

Uploaded by

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

DELTA_NC300_CM_EN_20140425

G Command Guidelines NC300

Table of contents
Chapter 1 Chapter 1 Table of commands
Milling machine G code supporting table .......................................................... 1-1

Chapter 2 Command syntax


G00 Fast positioning command......................................................................... 2-1
G01 Linear cutting command ............................................................................ 2-2
G02/G03 Arc cutting command ......................................................................... 2-3
G04 Pause command ....................................................................................... 2-7
G09 Exact stop command ................................................................................. 2-8
G10/G11 Data entry setup and cancel .............................................................. 2-9
G15 Polar coordinates command cancelling ..................................................... 2-11
G16 Polar coordinates command ...................................................................... 2-11
G17/G18/G19 Plane designation command ...................................................... 2-12
G21/G20 Metric / Inch input command.............................................................. 2-12
G28 Homing to the first reference point ............................................................ 2-13
G29 Homing to the starting point....................................................................... 2-15
G30 Auto homing to the second, third and fourth reference point ..................... 2-16
G31 Skip function command ............................................................................. 2-19
G40 Tool radius compensation cancelling command ........................................ 2-21
G41/G42 Tool radius left and right compensation command ............................. 2-21
G43/G44 Tool length compensation command ................................................. 2-27
G49 Tool length compensation cancelling command ........................................ 2-29
G50/G51 Scaling up/down command /cancelling command ............................. 2-30
G52 Local coordinate systems setup command ............................................... 2-31
G53 Mechanical coordinate systems setup command ...................................... 2-33
G54~G59 Workpiece coordinate systems selection command ......................... 2-34
G61 Exact stop mode........................................................................................ 2-35
G64 Cutting mode command ............................................................................ 2-36
G65 Non-continuous effect macro calling command ......................................... 2-37
G66/G67 Continuous effect macro calling command /cancelling command ..... 2-39
G68/G69 Coordinate system rotation/cancelling command .............................. 2-40
G73 Peck drilling cycle command ..................................................................... 2-41
G74 Left spiral tapping cycle command ............................................................ 2-45
G76 Fine boring cycle command....................................................................... 2-48
Revision April, 2014 1
NC300 G Command Guidelines
G80 Cycle cancelling command ........................................................................ 2-52
G81 Drilling cycle command ............................................................................. 2-53
G82 Countersunk drilling cycle command ......................................................... 2-56
G83 Deep hole peck drilling cycle command .................................................... 2-59
G84 Right spiral tapping cycle command .......................................................... 2-62
G85 Broaching cycle command ........................................................................ 2-65
G86 Rough boring cycle command ................................................................... 2-68
G87 Rear boring cycle command ...................................................................... 2-71
G88 Boring cycle command .............................................................................. 2-73
G89 Boring cycle command .............................................................................. 2-76
G90 Absolute coordinate system command ...................................................... 2-79
G91 Incremental coordinate system command ................................................. 2-80
G92 Coordinate system setup command .......................................................... 2-82
G94 Feed rate (mm/min) setup command ........................................................ 2-83
G98 Return to the initial point of the fixed cycle ................................................ 2-84
G99 Return to the R point of the fixed cycle…………………………………......…2-85

Chapter 3 M commands
3.1 M00 to stop a program from running ........................................................ 3-1
3.2 M01 to stop program selection ................................................................. 3-1
3.3 M02 to end a program .............................................................................. 3-1
3.4 M30 to end a program and return to its source command ........................ 3-2
3.5 M98 to call a sub-routine .......................................................................... 3-2
3.6 M99 to return from a sub-routine .............................................................. 3-3
3.7 Table of commonly used M codes ............................................................ 3-4

Chapter 4 Marco and Variables


4.1 Variables ................................................................................................... 4-1
4.1.1 Arguments and local variables ......................................................... 4-1
4.1.2 Systems variables ............................................................................ 4-2
4.1.3 Macro interface input and output ...................................................... 4-4
4.2 Variable syntax ......................................................................................... 4-7
4.3 Calculation commands ............................................................................. 4-8
4.4 Flow commands ....................................................................................... 4-10
4.4.1 Repetitive execution ......................................................................... 4-10
4.5 MACRO calling ......................................................................................... 4-12

2 Revision April, 2014


Chapter 1 Table of Commands NC300

Chapter 1 Table of Commands


Milling machine G code supporting table
G code Group Function description
G00 01 Fast positioning command
G01 01 Linear cutting command
G02 01 Clockwise arc cutting (CW)
G03 01 Counterclockwise arc cutting (CCW)
G04 00 Pause command
G09 00 Exact stop
G10 00 Data entry setup
G11 00 Data entry setup cancelling
G15 16 Polar coordinates cancelling
G16 16 Polar coordinates
G17 02 X-Y plane selection
G18 02 Z-X plane selection
G19 02 Y-Z plane selection
G20 06 Inch input
G21 06 Metric input
G28 00 Homing through the reference origin point
G29 00 Homing to the starting point
G30 00 Auto homing of the second, third, and fourth reference point
G31 00 Skip function
G40 07 Tool radius compensation cancelling
G41 07 Tool radius left compensation
G42 07 Tool radius right compensation
G43 08 Tool length positive direction compensation
G44 08 Tool length negative direction compensation
G49 08 Tool length compensation cancelling
G50 11 Scale cutting cancelling
G51 11 Scale cutting
G52 00 Local coordinate system setup
G53 00 Mechanical coordinate system setup
G54 12 The first machining coordinate system selection
G55 12 The second machining coordinate system selection

Revision April, 2014 1-1


NC300 Chapter 1 Table of Commands

G code Group Function description


G56 12 The third machining coordinate system selection
G57 12 The fourth machining coordinate system selection
G58 12 The fifth machining coordinate system selection
G59 12 The sixth machining coordinate system selection
G61 13 Exact stop mode
G64 13 Cutting mode
G65 00 Non-continuous effect macro command calling
G66 14 Continuous effect macro command calling
G67 14 Continuous effect macro command calling cancelling
G68 15 Coordinate system rotation command
G69 15 Coordinate system rotation command cancelling
G73 09 Peck drilling cycle
G74 09 Left spiral tapping cycle
G76 09 Fine boring cycle
G80 09 Constant loop cancelling
G81 09 Drilling cycle
G82 09 Countersunk drilling cycle
G83 09 Deep hole peck drilling cycle
G84 09 Right spiral tapping cycle
G85 09 Broaching cycle
G86 09 Rough boring cycle
G87 09 Rear boring cycle
G88 09 Boring cycle
G89 09 Boring cycle
G90 03 Absolute coordinate value system
G91 03 Incremental coordinate value system
G92 00 Coordinate system setup
G94 05 Feed rate setup (mm/min)
G98 10 Return to the initial point of the fixed cycle
G99 10 Return to the R point of the fixed cycle

1-2 Revision April, 2014


Chapter 2 Command Format NC300

Chapter 2 Command Format


G00: Fast positioning command
Command format: G00 XˍYˍZˍ (This command moves all three spindles, any two or one of
them as desired.)
XˍYˍZˍ: End point coordinates.

Command description: A G00 command moves the cutter center to position given by
coordinates X, Y, and Z at fast speed. Movement speed is set by the Rapid Feed Rate key
of the secondary control panel but not the F_commands. If the X, Y, and Z spindles'
maximum movement speed is set at 15m/min as specified in the maximum movement
speed parameter, then the actual movement speed under different Rapid Feed Rate key
settings should be:
(1). 15 m/min, the maximum speed when the setup value is 100%;
(2). 7.5 m/min when the setup value is 50%;
(3). 3.75 m/min when the setup value is 25%;
(4). Spindles move at speed set by parameter values when the setup value is 0%.

The G00 command positions the spindle rather than feeds the cutting. For example, it
quickly moves the spindle from mechanical origin to cutting origin and positions the X and Y
axis after cutting.

[Illustrations]

See figure below for moving cutters from point A to point B at fast speed.

Expressed in absolute values: G90 G00 X92. Y35.


Expressed in incremental values: G91 G00 X62. Y-25.

Origin of
workpiece

Revision April, 2014 2-1


NC300 Chapter 2 Command Format

G01: Linear Cutting Command


Command format: G01 XˍYˍZˍFˍ
XˍYˍZˍ: End point coordinates.
Fˍ: Feed rate in unit of mm/min

Command description: This command enables a cutter to linear cut from the current
position to a given position at F feed rate. The ending position of the cutting is given by the
X, Y, and Z coordinates. You can have all three spindles, any two or one of them as desired.
The feed rate is set by the F parameter along with the optional Feed Rate of the secondary
control panel in unit of mm/ min.

[Illustrations]

Regarding the method of G01, see figure below for milling in direction of +Y from program
origin.

G00 G90 G54 X0 Y0


G90 G01 Y40.0 F80
X-60.0
G91 Y-20.0
X35.0 Y-20.0
G90 X0 Y0

The F parameter remains active unless being changed as shown in program codes listed
above where the F parameters are omitted in subsequent statements.

2-2 Revision April, 2014


Chapter 2 Command Format NC300

G02/G03: Arc Cutting Command


Command format:
Arcs in the X – Y plane
G17 G02 (or G03) Xˍ Yˍ Rˍ Fˍ or
G17 G02 (or G03) Xˍ Yˍ Iˍ Jˍ Fˍ
You may add parameter Zˍ in the command to spiral move in the X – Y plane.

Arcs in the Z – X plane


G18 G02 (or G03) Zˍ Xˍ Rˍ Fˍ or
G18 G02 (or G03) Zˍ Xˍ Kˍ Iˍ Fˍ
You may add parameter Yˍ in the command to spiral move in the Z – X plane.

Arcs in the Y – Z plane


G19 G02 (or G03) Yˍ Zˍ Rˍ Fˍ or
G19 G02 (or G03) Yˍ Zˍ Jˍ Kˍ Fˍ
You may add parameter Xˍ in the command to spiral move in the Y – Z plane.

G02: Clockwise (CW) arc cutting.


G03: Counterclockwise (CCW) arc cutting.
X, Y, and Z: Coordinates of the end point in absolute or incremental values
determined by command G90 and G91.
R: Arc radius (expressed in the so-called Radius format).
I: The X-axis distance between arc center and starting point. The increment amount
from the starting point to arc center.
J: The Y-axis distance between arc center and starting point. The increment
amount from the starting point to arc center.
K: The Z-axis distance between arc center and starting point. The increment
amount from the starting point to arc center.
(The I, J, and K expression is also known as the center method.)
F: The cut feeding speed in unit of mm/min.

Command description: G02 or G03 is the arc cutting command. The arc cutting direction
(G02 or G03) for a three-dimensional workpiece in individual planes is shown in Figure 1.
The cutting direction is defined by the right hand coordinate system. Look against the
positive direction of the plane's vertical axis; G02 is for clockwise direction while G03 is for
counterclockwise.

X-Y plane Z-X plane Y-Z plane

Revision April, 2014 2-3


NC300 Chapter 2 Command Format

The center and radius methods are described below:


1. Radius method: R is the radius of the arc and shows in radius value. This method
represents an arc by its starting point, ending point, and arc radius. There are two
equivalent arcs in a circle as shown in the figure below. For the positive R value, it is
an arc of central angle ≤ 180° and an arc of central angle > 180° for the negative R
value.

β > 180° -> the B arc with


negative R
α ≤ 180° -> the A arc with
End point positive R
Start point

Center

The Radius method

In the figure above if R = 50mm and the absolute coordinates of the end point are (100.0,
80.0), then
(1) the arc of central angle > 180° (path B) can be expressed as "G90 G03 X100.0 Y80.0
R-50.0 F80" and;
(2) The arc of central angle ≤180° (path A) can be expressed as "G90 G03 X100.0 Y80.0
R50.0 F80".

2-4 Revision April, 2014


Chapter 2 Command Format NC300

2. The Center method: Here parameters I, J, and K define the relative distance from the
arc start point to the arc center (the end point). That is, the increments from the start
point to the center in X, Y, and Z directions respectively. See the figure below for
illustrations.

Start
Start point point
Start
Center
point Center
Center

Center

Start point Center Start


point Start
point

Values of parameter I and J on plane

The arc motion expressed in the radius or center method can be used in program coding for
selecting conditions.
To cut milling a sphere you can use the center but not the radius method. Generating a
sphere by connecting two semi-spheres bears too large a roundness deviation to be
acceptable.

[Illustrations]

The command syntax for cut milling a sphere as shown in the figure below may look like
"G02 I-50.0".

Cut milling a sphere

Revision April, 2014 2-5


NC300 Chapter 2 Command Format

Use of commands G01, G02, and G03 is illustrated in the figure below. Here is the tool cut
milling from program origin upward along the shape.

O0100
G90 G54 X0 Y0 S500 M3
G90 G01 Y15.0 F80 =>program origin → A
G02 X41.0 Y40.0 R41.0 => A → B
G91 G01 X40.0 => B → C
G02 X10.0 Y-10.0 R10.0 => C → D
G01 Y-20.0 => D → E
X-15.0 Y-10.0 => E → F
X-20. => F → G
G90 G03 X20.0 R18.0 => G → H
G01 X0.0 => H → program origin

◆ Notes on G02 and G03 arc cutting:

(1) Most systems default to G17 (X – Y plane) after power on. The G17 command can
be omitted when cut milling arc in X – Y plane.
(2) When I, J, and R parameters show in one statement only the R parameter remains
active while I and J are ignored.
(3) Parameter I0, J0, and K0 can be omitted.
(4) When end point X, Y, and Z coordinates are omitted, it means the start and end
points are the same and a sphere is to be cut and milled. The tool remains
motionless for command in the radius method.
(5) The system prompts an alarm message when the end point does not intersect with
the given radius value.
(6) For arc cutting following a linear cutting the G command must convert to command
G02 or G03 and G01 for straight line cutting.
(7) Please rotate the spindle before applying cutting command G01, G02 and G03 and
must designate the value of F feed rate.

2-6 Revision April, 2014


Chapter 2 Command Format NC300

G04: Pause Command


Command format: G04 Xˍ or
G04 Pˍ

Command description: This command sets up a pause of the current node. Both X and P
parameters define the time of pause while X accepts decimal values and P does not.

Command scope:
Range of pause time by X parameter
Valid values UOM
0.001~99999.999 Seconds
Range of pause time by P parameter
Range of valid values UOM
1~99999999 0.001 second

[Illustrations]

G04 X1.5 or
G04 P1500

Both commands cause a pause span during program execution for 1.5 seconds.

Revision April, 2014 2-7


NC300 Chapter 2 Command Format

G09: Exact Stop Command


Command format: G09 G01 Xˍ Yˍ

Command description: For tools operating in a constant feed rate, a minute round corner
angle may be generated by continuous motion as the operation of the next node starts
accelerating before the current one is completed. G09 command aims to eliminate the
round angle at corners. With G09 in effect, the system is positioned before doing any node
of motion. The next node is executed only after being positioned correctly. As a result,
minor discontinuity exists between nodes when G09 status is in effect. This improves
precision at the cost of speed. This command applies to cutting commands (G01~G03) of
the current node only.

Tool movement
direction

With G09 in
Workpiece use

Without G09
in use

[Illustrations]

G09 G01 X100.0 F150 → Start executing the next node only after the deceleration is
stopped and positioning is confirmed.
G01 Y-100.

2-8 Revision April, 2014


Chapter 2 Command Format NC300

G10/G11: Data Entry Setup and Cancel


Command format: G10 L2 Pˍ Xˍ Yˍ Zˍ
G10 L10 Pˍ Rˍ: Tool length compensation
G10 L11 Pˍ Rˍ: Tool length wear compensation
G10 L12 Pˍ Rˍ: Tool radius compensation
G10 L13 Pˍ Rˍ: Tool radius wear compensation
G10 L20 Pˍ Xˍ Yˍ Zˍ: Expansive workpiece coordinate system entry
G10 L21 P_X_Y_Z_: Coordinate setting of software limit

Command description: The G10 command in the syntax of G10 L2 Pˍ Xˍ Yˍ Zˍ is used for
workpiece coordinate system data entry. The system is set to the offset coordinate of the
workpiece coordinate system when the value of parameter P is set to 0. Parameters P1~P6
correspond to G54~G59 of the workpiece coordinate system while X, Y, and Z represent
the origin of the given coordinates system. The P parameter in L20 command syntax can
assign the values of P1~P64 for the corresponding expansion workpiece coordinates
system. The command format G10 L10 Pˍ Rˍ sets up the tool length compensation value
where parameter P is the compensation number and R is the actual compensation value for
tool radius and length. The setting of P1 from G10 L21 P is for the first forward software
limit, P2 is for the first backward software limit, P3 is for the second forward software limit
and P4 is for the second backward software limit.
In absolute status, the G10 command is the absolute input. It also can do data entry setup
in incremental status.
In incremental status, the G10 command can input the value in incremental way.

[Illustrations]

G10 L10 P1 R-300.0 or


G10 L10 P2 R-100.0

Set length compensation value of Tool 1 to H-300.0 and H-100.0 for Tool 2.
P: Compensation number or workpiece coordinate number
R: Tool compensation value

The examples of absolute and incremental status are as followings:

G90 G10 L10 P1 R-300.0


Input the data to H-300.0 of Tool 1 in absolute way.

G91 G10 L10 P1 R-100.0


Input the data to Tool 1 and add H-100.0 to it in incremental way.

Note:
(1) The G10 command is non-continuous and so is effective in statements
containing the command. The compensation values of the offset coordinates
and job coordinates system are given relative to the origin of the mechanical
coordinates system. You can execute command G11 to cancel data entry
settings.
(2) During program execution the command coordinates data changed by L2
command takes effects in next motion node. The tool compensation data

Revision April, 2014 2-9


NC300 Chapter 2 Command Format

changed by commands L10~L13 take effect only after running compensation


commands (G41/G42 or G43/G44) with compensation data number (D or H)
again.

2-10 Revision April, 2014


Chapter 2 Command Format NC300

G15: Polar Coordinates Command Cancelling


Command format: G15

Command description: Command G15 cancels polar coordinates mode and returns the
program to move in the path of the original coordinates system and values.

G16: Polar Coordinates Command


Command syntax: G17 G16 X___ Y___ or;
G18 G16 Z___ X___ or;
G19 G16 Y___ Z___

X__ Y__: In a G17 plane the X__ parameter specifies the radius and
Y__ the angle coordinates of the polar coordinates system.
Z__ X__: In a G18 plane the Z__ parameter specifies the radius and X__
the angle coordinates of the polar coordinates system.
Y__ Z__: In a G19 plane the Y__ parameter specifies the radius and Z__
the angle coordinates of the polar coordinates system.

Command description: The polar coordinates command employs radius and angle as its
setup format. If the first axis (X-axis) of the plane is selected for radius then the second one
(Y-axis) is set for angle value. The counterclockwise angle assumes a positive value while
the clockwise one assumes a negative value. When a radius specified by a negative value,
the radius command value is regarded as the absolute one and the angle command value
will add an additional 180 degrees. The angle values can be in absolute or incremental
format.

[Illustrations]

Angle (Y_)

Radius (X_)

N1 G90 G16 → set up polar coordinates


N2 G81 X100.0 Y30.0 Z-20.0 R-5.0 F200.0 → the command to loop drill at position of
radius 100 and angle 30
N3 X100.0 Y150.0 → machine the second hole
N4 X100.0 Y270.0 → machine the third hole
N5 G15 G80 → cancel the polar coordinates function

Revision April, 2014 2-11


NC300 Chapter 2 Command Format

G17/G18/G19: Plane Designation Command


Command format:
X - Y plane G17 {G01~G03} Xˍ Yˍ{Iˍ Jˍ or Rˍ}Fˍ
Z - X plane G18 {G01~G03} Zˍ Xˍ{Kˍ Iˍ or Rˍ}Fˍ
Y - Z plane G19 {G01~G03} Yˍ Zˍ{Jˍ Kˍ or Rˍ}Fˍ

Command description: The plane selection function selects different planes for cutting.
They are not needed when all three axes move at the same time. G17~G19 commands set
up the active plane for straight line and arc cutting or tool compensation. The system
defaults to the G17 plane after power on. If X-Y plane is desired, you do not need to set it
with the G17 command.

G21/G20: Metric / Inch Input Command


Command format: G21 or G20

G21: Set the metric system


G20: Set the inch system

Command description: This command sets the metric or inch unit of measure for the
system. Command G21/G20 applies to the linear axis but not the rotation axis. It must be
executed in a single standard prior to the coordinate system setup command in a program.
During the command execution, metric and inch input command cannot be switched. All
relevant values which influences the system includes F value of feed rate, coordinates
position value, workpiece coordinates offset amount, tool compensation amount and
movement distance. G21/G20 is continuous effective command. When the program
specifies a system unit, it means its unit is metric or inch unit. Moreover, G21 and G20
cannot be used in one program at the same time.

2-12 Revision April, 2014


Chapter 2 Command Format NC300

G28: Homing to the First Reference Point


Command format: G90 G28 Xˍ Yˍ Zˍ or;
G91 G28 Xˍ Yˍ Zˍ

Xˍ Yˍ Zˍ: Coordinates of reference point

Command description: This command instructs the tool to fast move (G00) from the
reference point given by the command to the mechanical origin. It is designed to return to
the mechanical origin by moving to the reference point given by the command to avoid any
intersection with the workpiece or the machine equipment.

Parameter Xˍ Yˍ Zˍ of the command is for coordinates of the reference point. The


undesignated axis does not set up reference point and return to the origin. When tool radius
compensation (G41 or G42) has been set, it must be cancelled in advance. After executing
G28 command, the system temporarily cancels the tool radius compensation function and
its compensation length before moving to the reference and the mechanical origin point in
sequence. It maintains the compensation-free status when returning to the mechanical zero
point and resumes the tool radius compensation function automatically in next node. After
executing G28 command, the tool length compensation function (G43 or G44) remains
active after reaching the reference point. When returned to the mechanical origin, the tool
length compensation function is cancelled and will not resume automatically in the
subsequent motion node. The tool length compensation function needs be set again in the
following execution nodes.

[Illustrations]

Mechanical origin

G90 G28 Z50 → Return to mechanical origin from point A through reference point B
(Z-axis).

M06 T02 → Switch to tool 2.

Revision April, 2014 2-13


NC300 Chapter 2 Command Format

[Illustrations]

Status of G90/G91 differs in the process of returning to the mechanical origin when
command G28 is executed. See figure below for details.

Mechanical origin Mechanical origin

Mechanical origin Mechanical origin

2-14 Revision April, 2014


Chapter 2 Command Format NC300

G29: Homing to the Starting Point


Command format: G90 G29 Xˍ Yˍ Zˍ or;

G91G29 Xˍ Yˍ Zˍ

Xˍ Yˍ Zˍ: The final motion position of current node

Command description: Command G29 moves a tool from the mechanical origin to a point
defined by the command through a reference point. Parameter XˍYˍ Zˍ assigns coordinates
of the final point reached by command G29. Command G29 and G28 must be used in pair
to move the tool to a reference point defined by G28 then to the final point given by G29.
The actual distance from reference point to mechanical origin need not be calculated.
When running command G29 without accompanying G28 (for reference point setup), the
system stops running and prompts an alarm message.

[Illustrations]

Tool replacement
point

Incremental value setup (tool path A→B→D→B→C)


G28 G91 X70.0 Y40.0
M06
G29 X20.0 Y-40.0

Absolute value setup (tool path A→B→D→B→C)


G28 G90 X100.0 Y80.0
M06
G29 X120.0 Y40.0

Revision April, 2014 2-15


NC300 Chapter 2 Command Format

G30: Auto Homing to the Second, Third, and Fourth Reference


Point
Command syntax: G30 P2 Xˍ Yˍ Zˍ or;
G30 P3 Xˍ Yˍ Zˍ or;
G30 P4 Xˍ Yˍ Zˍ

Pˍ: Select reference point type, the second, third or fourth


Xˍ Yˍ Zˍ: Coordinates of intermediate point

Command description: Parameters P2, P3, and P4 designate coordinates of reference


points 2, 3 and 4. You can omit the parameter P2 if the second reference point is required.

Arguments XˍYˍZˍ designate coordinates of the intermediate point. The tool moves back to
the second, third, or fourth reference point from the current location through the designated
intermediate point. The coordinates of the second, third, or fourth reference point are
defined by the system parameters. This command is most commonly used for tool
replacement. For command status in absolute value the G30 Z0.0 motion command
accomplishes the required motions by moving the Z axis to the intermediate point and the
second reference point in turn.

Please cancel the tool compensation (executing G40 and G49) before running commands
G28 and G30. The tool radius and length compensation are cancelled automatically when
executing command G28 and G30. The tool compensation function is resumed only after
executing command G43/G44 before the next node is executed. The tool radius
compensation function is resumed at the next node after G28 or G30.

Mechanical origin

Second origin

The example of command G30

As shown in the figure above, in the G90 mode the G30 Z0 command moves the Z axis to
the intermediate point (the mechanical origin in this example) before being returned to the
G30 (second origin) point to accomplish the second origin homing.

2-16 Revision April, 2014


Chapter 2 Command Format NC300

[Illustrations]

G90 G30 P2 X100. Y80. G91 G30 P2 X0. Y0. (without intermediate
point)
The second
The second reference point
reference point

The second The second


reference point reference point

Revision April, 2014 2-17


NC300 Chapter 2 Command Format

The second The second


reference point reference point

2-18 Revision April, 2014


Chapter 2 Command Format NC300

G31: Skip Function Command


Command format: G31 Xˍ Yˍ Zˍ Fˍ

Command description: This command aborts the running path and jumps to execute the
command in next node by accepting an external skip message when moving in a straight
line along a given axis direction. This is a valid G command in a single node. Thus, the
command is effective only in one node. G31 command cannot run in tool compensation
mode. Please cancel tool compensation before command execution.

[Illustration 1]

G31 skip path Program


path

Skip signal

G90 G00 X0 Y0
G01 G31 X80.0 F500.0
Y40.0

As shown in the figure above the motion path remains straight (solid line) if there is no skip
signal. When a skip signal is applied, the program aborts execution of the current statement
and starts executing the movements given in the next statement (dotted line).

Revision April, 2014 2-19


NC300 Chapter 2 Command Format

[Illustration 2]

Skip path

Program
path
Skip signal

G90 G00 X0 Y0
G01 G90 G31 X50.0 F150.0
X80.0 Y40.0

If no skip signal is applied, the actual path is shown as the solid line shown in the figure
above. If a skip signal is applied, the actual path is shown as the dotted line as the tool
starts executing motions of the next node from the signal input point.

2-20 Revision April, 2014


Chapter 2 Command Format NC300

G40: Tool Radius Compensation Cancelling Command


Command format: G40 or;
G40 Xˍ Yˍ

Command description: This command cancels the tool compensation function when it is not
needed in the tool path. As a status command the compensation command remains active
unless cancelled by another command. Command G40 resets the tool compensation status
to avoid path error caused by tool offset for compensation.
In addition, the tool compensation function pauses when returning to the reference point in
a reference point resetting command and resumes at the next motion node. In addition,
function of tool radius compensation cannot be cancelled during arc motion.

G41/G42: Tool Radius Left and Right Compensation Command


Command format: G00 G90 G41 Dˍ or;
G00 G90 G42 Dˍ

G41: Tool radius leftward compensation


G42: Tool radius rightward compensation
Dˍ: Tool radius compensation data code
Command description: For a program path without tool radius compensation, the tool cuts
by profiling the workpiece shape with the tool center. That is, the effects of tool radius are
not considered in the motion path. This leads to a machined workpiece with a size one tool
diameter smaller than required. When coding the program, transferring the tool path from
the self-calculated tool radius may easily lead to incorrect coordinate calculation and make
it difficult to control dimensions as shown in the figure below.

Tool radius: 10mm Tool radius: 10mm


contour cutting without compensation contour cutting without
compensation

As illustrated in the figure above, a workpiece after machining may have a dimension one
tool diameter greater or smaller caused by the tool diameter when cutting along the profile
of workpiece.

Revision April, 2014 2-21


NC300 Chapter 2 Command Format

The leftward or rightward compensation of a tool is defined as below: Along the cutting
direction, the tool radius shall be compensated rightward for tools moving to the right of the
workpiece and made by command G42. Otherwise, the tool radius shall be compensated
leftward for tools moving to the left of the workpiece and made by command G41.

The argument Dˍ is the tool radius code represented by binary digits. This is the tool
compensation data number contained in the controller's OFS group functions. For example:
argument D11 indicates that the tool radius compensation number is 11. If number 11
represents value 4.0 then the tool radius is 4.0mm. Executing command G41 or G42
means the controller will then read the tool radius data in its OFS group function as the
compensation length based on the tool radius compensation number given by the
argument D.

Note for tool radius compensation:

(1) This command may be assigned together with G00 or G01 in the same node.
The tool compensation is activated only after the tool moves (enable the tool
radius compensation command). It does not work together with commands G02
and G03. The compensating tool radius in the arc path must specify the
compensation in advance in the straight line motion path. While the tool radius
compensation is active, it cannot be cancelled in arc path. See below for
illustration.

Compensation value

Compensation Activate the tool


value center path of the
compensation
Program origin d

Program path

Tool radius rightward


compensation G42

See below for program codes for moving from point A to point C and activate the tool radius
rightward compensation command:

G90 G00 X120.0 Y-20.0 → fast positioning to point A


G01 G42 X100.0 Y0 D20 F80 →A→C
Y52.0 →C→D
G03 X92.0 Y60.0 R8.0 →D→E
G01 X0 →E→F
Y0 →F→G
X100.0 →G→C

(2) When designing the program, the tool compensation number, e.g. D11 and D12,
defined in a program must correspond to the one code contained in the
compensation table. These tool radius compensation values are numbers
entered by the operator in the tool entry function of the OFS group in advance.
(3) Change in compensation value, from positive to negative or vice versa, changes
the compensation direction of G41 and G42. For example, for positive

2-22 Revision April, 2014


Chapter 2 Command Format NC300

arguments in command G41, the system compensates leftward and rightward


when negative arguments are given. Similarly, for positive arguments in
command G42, the system compensates rightward and leftward when negative
arguments are given. That is, the function direction of the G41 and G42 toggle
switches along with the change of the positive-negative sign changes in
compensation value.
(4) The tool radius compensation function is deactivated temporarily when
command G28 or G29 is in active status. The compensation status resumes
when executing the next motion node as the compensation status is maintained
by the control system.
(5) After the program path is completed under the tool radius compensation mode,
the command G40 should be executed to cancel the compensation status and
return the tool radius center back to its actual coordinate points. That is, after a
G40 command is executed in a program, the motion path cancels the
compensation length by turning the leftward or rightward compensation value to
the opposite direction. The G40 command should be executed after the tool is
moved away from the workpiece as shown in the sample program described
below:

Ø10 milling cutter

Point B is the
program origin

"" means the compensation


vector

G90 G00 X-20.0 Y-20.0 → Fast positioning to point A


G01 G41 X0 Y0 D12 F80 → A → B: Start leftward compensation command G41
Y35. →B→C
X20. →C→D
G03 X25.0 Y60.0 R65.0 → D → E
G02 X60.0 Y100.0 R25. → E → F
G01 X90.0 Y35.0 →F→G
G01 Y0 →G→H
X45. Y10. →H→I
X0 Y0 →I→B
X -20. Y -20. →B→A

Revision April, 2014 2-23


NC300 Chapter 2 Command Format

G40 → Cancel compensation after the cutter is far away from the
workpiece.
(6) Under compensation status the straight line movement distance and inner arc
cutting radius must be greater than or equal to the tool radius or over cutting may
be caused by compensation vector interference. In a case like this, the controller
stops operation and prompts alarm messages as shown in the figure below.

Tool center path

Straight line
Program path movement amount

Over cutting

Straight line movement amount


is smaller than cutter radius

Tool radius compensation path type:


The G41/G42 tool radius compensation has two types. Type A does not compensate the
starting and ending points in a path while Type B compensates both points. The
compensation path must take angles (180° > θ> 90°, 0 < θ < 90°) formed by nodes into
consideration. When degrees of angle formed by nodes are in the range of 180° and 90°
the tool moves in an inward curved angle and in an outward curved angle when the angle is
in the range of 0° and 90°. See the illustration below for details.

Inward curved angle Outward curved angle


Tool path

Program path

Program path

Tool path Intersection point

2-24 Revision April, 2014


Chapter 2 Command Format NC300

There are two compensation types: Type A and B. Type A does not compensate the starting
and ending points in a path while Type B compensates both points. See the figure listed in
the left for the motion tracks generated by Type A.

Type A: Line to line Type B: Line to line


Intersection point
Tool path
Tool path

Program path
Program path

Starting point
Starting point

Tool path Tool path

Program path Program path

Starting point Starting point

Type A: Line to arc Type B: Line to arc


Intersection point

Program path Program path


Starting point Center Starting point Center
Tool path Tool path

Center Center

Tool path Program path Tool path

Program path

Starting point Starting point

Inward curved angle: Arc to line Outward curved angle: Arc to line
Program path
Center Program path

Tool path Center


Tool path

Intersection point

Inward curved angle: Arc to arc Outward curved angle: Arc to arc
Center
Program path Program
path

Tool path

Tool path
Intersection point Center
Center Arc center

Revision April, 2014 2-25


NC300 Chapter 2 Command Format

Compensation path toggle switch: When a motion path without compensation enters a path
with compensation the motion track of the tool center is as shown in the figure below.
During the compensation period the motion track remains active. When compensation path
execution is cancelled (G40) or switched to compensation in another direction directly, the
motion track looks like the figure below.

G40→G41 G40→G42
Starting point
Tool path

Program path
Program path

Starting point
Tool path

G41→G42 G42→G41

Workpiece Workpiece

Program path Program path

Workpiece
Tool path Tool path
Workpiece

Workpiece Workpiece
Workpiece Workpiece

Program path Program path

Tool path Tool path

Workpiece

Workpiece
Program path
Program path
Workpiece

Workpiece
Tool path
Tool path

G41→G40 G42→G40
Program path Tool path

Tool path Program path

Ending point Ending point

2-26 Revision April, 2014


Chapter 2 Command Format NC300

G43/G44: Tool Length Compensation Command


Command format: G43 Zˍ Hˍ
G44 Zˍ Hˍ

G43: Tool length positive compensation. For positive tool length the tool
axis moves in the positive direction.
G44: Tool length negative compensation. For negative tool length the
tool axis moves in the negative direction.

Command description: Most NC machine may use multiple tools with different lengths in
one machining program. This command enables operators to define individual tool length
ID for length compensation. It ensures machining depth complies with program
specifications and simplifies the program designation tasks.

Definitions of the command are described below:

Z: The coordinate position of tool movement from the zero-coordinates based on Z axis
plus the tool length compensation.
H: Tool length compensation data ID expressed in binary digits. The tool length
compensation represented by given data ID will be taken as the height compensation of
this program. Take H01 as an example, if the tool length compensation ID is 01 and the
value represented by ID 01 is -412.8, then the tool length compensation value of this tool is
-412.8mm. After the G43 or G44 command is executed, the controller takes the value
represented by the tool length compensation ID given by argument H as the tool length
compensation value.

G43 ZˍHˍ: If the value represented by the compensation ID is positive then tool
compensates upward, otherwise, it compensates downward. G44 ZˍHˍ: If the value
represented by the compensation ID is positive then tool compensates downward,
otherwise, it compensates upward.

Note for tool length compensation:


(1) Both commands G43 and G44 remain active until reset by command G49 or
H00. (G49: Cancel the tool length compensation. H00: Compensate with value
zero.)

Revision April, 2014 2-27


NC300 Chapter 2 Command Format

[Illustrations] Tool length compensation setup

Z axis mechanical
origin

Z axis program
Workpiece
origin

Work bench

Tool length compensation

(1) G43 Z5.0 H01 (2) G44 Z5.0 H01


ID Data ID Data
01 -400.000 01 400.000
02 0 02 0
03 0 03 0

Note:
(1) The system cancels the tool length compensation value automatically before
executing commands G53, G28, and G30 when tool length compensation is
active. Later the program runs without tool length compensation unless another
Hˍ argument is assigned by command G43/G44.
(2) Parameter 307 is for setting the moving mode of tool length compensation when
G43/G44 and G49 execute without Z command. When the setting value is 0, it
means G43/G44 and G49 move the tool length compensation without Z
command. If the setting value is 1, it means when G43/G44 and G49 has no Z
command, the compensation is completed by the internal system.
(3) The active tool length compensation (by G43 or G44) remains active when
G28/G30 reaches the reference point and then cancelled when returned to the
mechanical origin. The tool length compensation will not be resumed in later
motion nodes.
(4) The active tool length compensation will be cancelled by the system and
switched to G49 status when commands M30 and M02 are executed
successfully.
(5) The active tool length compensation will be cancelled by the system and
switched to G49 status when a RESET signal is received by the system.

2-28 Revision April, 2014


Chapter 2 Command Format NC300

G49: Tool Length Compensation Cancelling Command


Command format: G49

Command description: The tool length compensation function is a status assignment. It


remains active and tool length is memorized by the system after being executed. The
length memory is refreshed only by reading another compensation ID. Please reset the old
tool length compensation command after a new tool is selected or execute the new tool
length compensation command specific to the newly selected tool. The command G49
cancels the previous tool length compensation function.

Revision April, 2014 2-29


NC300 Chapter 2 Command Format

G50 /G51: Scaling Up/Down Command/Cancelling Command


Command format: G51 Xˍ Yˍ Zˍ Pˍ

Xˍ Yˍ Zˍ: Coordinates center for scaling


Pˍ0: Scaling ratio

Command description: Argument Xˍ Yˍ Zˍ sets the X, Y, and Z coordinates of the scaling


center and P sets up the scaling ratio. This command enables the machining workpiece to
cut final pieces with proportionally different dimensions. The machining path is enlarged or
contracted with the coordinate's center given by argument Xˍ Yˍ Zˍ and scaling ratio by P.
The minimum value of argument P is 1 with a ration range between 0.001 and 999.999. For
example, argument P100 represents to scale down to one-tenth.

Scaled up path

Original path

As shown in above figure the original tool path is converted into a new path by executing
command G51 with scaling ratio set by argument P. The scaling function does not change
tool radius compensation, tool length compensation, and tool position compensation as the
compensation action and value are made after scaling. When executing commands M02
and M30 or when the NC300 controller is reset, the scaling mode will be cancelled. The
reset key also can cancel scaling. Execute command G50 in program to reset the scaling
function as well as return to original scale status and cut in the normal path.

2-30 Revision April, 2014


Chapter 2 Command Format NC300

G52: Local Coordinate System Setup Command


Command format: G52 Xˍ Yˍ

Xˍ Yˍ: Origin of the local coordinates system

Command description: Users can set up a sub-coordinates system based on the workpiece
coordinates system for easy path coordinates designation when program coding. This
sub-coordinates system, also known as the local coordinates system, can be defined as a
one current workpiece coordinates system (G54~G59) by command G52 with arguments of
absolute coordinates data. It is valid for absolute supplier status but not the incremental
system (G91) status. Command G52 with argument zero cancels the local coordinates
system setup. The tool radius compensation command is suspended when command G52
is applied.

[Illustration 1]

Tool path

G90 G54 X0 Y0
G52 X40.0 Y40.0
G00 X20.0 Y20.0

Revision April, 2014 2-31


NC300 Chapter 2 Command Format

[Illustration 2]

G90 G54 G00 X10. Y10.


G52 X30. Y20.
G00 X20. Y20. ------------------------------------------------------------------------------------------ (A→B)
G56 G00 X50. Y10. ----------------------------------------------------------------------------------- (B→C)

The new G54 coordinates system

The new G56 coordinates system

G54 coordinates system

G56 coordinates system

00 coordinates system

Converting the current job coordinates system to another coordinates system with an active
G52 command gives the converted workpiece coordinates system the same offset effects
of G52.

Users can cancel a local coordinates system by executing command G52 with three
argument coordinates (X, Y, and Z) in value zero. That is, an assignment of "G52 X0 Y0 Z0"
command format.

2-32 Revision April, 2014


Chapter 2 Command Format NC300

G53: Mechanical Coordinate System Setup Command


Command format: G53 Xˍ Yˍ Zˍ

Xˍ Yˍ Zˍ: Position of actually arrived mechanical coordinates

Command description: Coordinates X, Y, and Z are the actual ending point in mechanical
coordinates system specified by the program coordinates. Machine suppliers use this
command to set up the tool replacement position with the reference point given in
mechanical coordinates. It cannot be changed once created. The command format must be
in absolute coordinates status. This command is ignored when in incremental status.
Command G53 is a non-continuous G command and is valid for the statement containing it.
Before using a G53 command to set up a coordinates system the origin must be reset
manually or automatically in advance. After the G53 command is executed, the system
moves in G00 mode, the tool radius compensation is paused and tool length compensation
cancelled automatically; the former resumes at the next motion node and the latter
becomes active only by re-assigning it again.

Note:
(1) Command G53 functions only at G90 status. It is ignored in G91 mode. However,
a status command contained in the same statement of G53, G00/G01 or
G90/G91, changes the status and affects the motion status of the next node.
(2) If the statement containing command G53 also contains a specific axial
command, then the axis moves to a specified point. Otherwise, there is no
position command.
(3) If both commands G53 and G28 are set in the same statement, the one read
later becomes active. When command G53 is active, the motion position refers
to the mechanical coordinates. If command G28 is active, then the absolute
coordinates are referred to.
(4) A correct specified coordinate is needed in G53 command format. G53 has to
connect to the specified coordinate. Any other G command is not allowed to
insert in the single node command so as to prevent the incorrectness of the
motion command.
For example,
G90 G00 G53 X10.0 Y10.0 Z-20.0------------------(Correct command combination)
G90 G53 G00 X10.0 Y10.0 Z-20.0----------------(Incorrect command combination)

[Illustrations]

Example 1.
G91G53X150.Y-150. This command is ignored.
X-30.Y-30. This command is changed to incremental motion mode.

Example 2.
G90G53X50.Y-50.Z0. Move to X50.Y-50.Z0. in actual mechanical coordinates.

Example 3.
G1G53X100.Y-100.F1000 This command executes in G00 status.
X50.Y50. The system moves in G01F1000 motion status.

Revision April, 2014 2-33


NC300 Chapter 2 Command Format

G54~G59: Workpiece Coordinate System Selection Command


Command format: G90 G54 Xˍ Yˍ Zˍ or;
G90 G55 Xˍ Yˍ Zˍ or;
G90 G56 Xˍ Yˍ Zˍ or;
G90 G57 Xˍ Yˍ Zˍ or;
G90 G58 Xˍ Yˍ Zˍ or;
G90 G59 Xˍ Yˍ Zˍ

Command description: Command G54~G59 assigns any one of the six fundamental
coordinates system as the workpiece coordinates system. A workpiece coordinates system
is created by moving the tool from the mechanical origin to the desired program origin (with
proper X and Y distance), registering this position data in the workpiece coordinates system
setup (G54~G59) in the controller OFS group function, and executing the workpiece
coordinates system code, then you can set up the workpiece coordinates origin. The
system also features a designation function out of 64 sets of expansive workpiece
coordinates system options. This is done by assigning values to argument P_ (with valid
value range of 1~64) in command G54. For example, G54 P10 X_ Y_ Z_. It means the
tenth coordinates system of expanded workpiece coordinates system is used.

[Illustrations]

Workpiece

The setting of workpiece coordinates command enables easier program path calculation
and design as well as creating multiple work bench coordinate systems to be used
alternatively by multiple programs. As shown in the figure above, you don't need to change
the program when coordinates of origin are modified. The machining process can be
started simply by changing the data value of workpiece coordinates.

2-34 Revision April, 2014


Chapter 2 Command Format NC300

G61: Exact Stop Mode


Command format: G61

Command description: Command G61 functions the same as command G09 does, except
that the later is a non-continuous (becomes active only when being assigned) status
command while the former is a continuous statement instead. After command G61 is
executed, each execution of commands G01, G02, and G03 mandates the system to
decelerate to fully stop for inspection. This mode remains active until an execution of
command G64 (cutting mode).

[Illustrations]

Tool path in G61 mode.

Tool path in G64 mode.

G61 G91 G01 Y100. F200. -------------------------------------------------------- (Correct positioning)


X100. ------------------------------------------------------------------------------------ (Correct positioning)
G64 -------------------------------------------------------------------------------(Stops correct positioning)

Revision April, 2014 2-35


NC300 Chapter 2 Command Format

G64: Cutting Mode Command

Command format: G64

Command description: After command G64 is executed, the system remains moving at a
certain speed to transit into the execution of the next motion node instead of decelerating to
full stop at the end of each motion command. Normally, the initial status of the system is set
to G64 cutting mode. When command G64 is used the NC machines enter smooth cutting
plane mode. Command G64 differs from G61 in that it cuts at a constant feed rate and does
not decelerate to a full stop between motion nodes.

In cases listed below the system decelerates to a full stop for positioning checking even
after command G64 is assigned:
(1) Statement with fast positioning (G00) mode
(2) Statement with rigorous stops command (G09)
(3) There is no movement command in the next node

2-36 Revision April, 2014


Chapter 2 Command Format NC300

G65: Non-continuous Effect Macro Calling Command


Command format: G65 Pˍ Lˍℓ

Pˍ: Program number


Lˍ: Number of repetitions
ℓˍ: Value of independent variable

Command description: Command G65 calls a macro program. A macro program is used for
various calculations, MLC interface data input and output, and commands for control,
judgment, and branching as well as for calculation and measurements.
A macro program is a subroutine containing variables, calculation and control commands
accompanied by exclusive control mechanism. These designated functions (macros) can
be used in the main program by a specific macro calling command. Macros are called as
command M98, except that it is non-continuous. See below for the macro calling command:

[Illustrations]

Main program Sub program


N0010 O1010
N0020 G65 P1010 L2 A5.0 B3.0 N1020 #3=#1+#2
N0030 N1030
N0040 N1040
N0050 N1050 M99

After a macro is executed, it returns to the statement next to the one containing it. That is,
the program continues executing from the statement next to the G65 command. In the
sample described above, the value of the #1 variable A5.0 is 5.0. Please refer to the table
below.

NC position Local variable NC position Local variable NC position Local variable


A #1 I #9 T #20
B #2 J #10 U #21
C #3 K #11 V #22
D #4 M #13 W #23
E #5 Q #17 X #24
F #6 R #18 Y #25
H #8 S #19 Z #26

Revision April, 2014 2-37


NC300 Chapter 2 Command Format

[Illustration]

Main program Sub program

Command G65/G66 can nest macros up to 8 layers. When used together with subroutine
calling command M98, the program nest layers remain at eight.

2-38 Revision April, 2014


Chapter 2 Command Format NC300

G66/G67: Continuous Effect Macro Calling Command


/Cancelling Command
Command format: G66 Pˍ Lˍℓ or;
G67

Pˍ: program code


Lˍ: number of repetitions
ℓ: value of independent variable

Command description: Command G66 functions the same as G65 except that instead of
being active for a single step, the former keep on calling the macro in later statements until
it is reset by command G67. Before being reset by command G67, the macro continues to
be called.

[Illustrations]

Execute O0008 after


movement Back to
O0001
Execute O0008 after
movement

Execute O0008 after


movement

Revision April, 2014 2-39


NC300 Chapter 2 Command Format

G68/G69: Coordinate System Rotation/Cancelling Command


Command format: G68 XˍYˍRˍ

XˍYˍ: Coordinates of the rotation center


Rˍ: Rotation angle; positive value for counterclockwise rotating and
negative for clockwise.
The system rotates in units of 0.001 degree and in range from zero to
360 degrees.

Command description: The coordinates rotation command G68 rotates the original
machining program at a given zero point in a specific angle. For a workpiece placed on the
workbench in an angle against the program command position, users may rotate the
coordinates system in that angle to simplify the calculation of the program path and reduce
the time required for program coding by using command G68.

[Illustrations]

Workpiec

The original program (at the top of the figure) machines workpiece is in the path shown with
a dotted line. If the workpiece is placed in another direction (here it is rotated 90 degrees),
the program can still function without any modification by adding command G68 to rotate
the program path.

Command G69 resets the rotation given by command G68. The program motion path
returns back to its original motion track after the rotation effect is removed.

2-40 Revision April, 2014


Chapter 2 Command Format NC300

G73: Peck Drilling Cycle Command


Command format: G73 Xˍ Yˍ Zˍ Rˍ Qˍ Fˍ Kˍ

Xˍ Yˍ: Ending position of single step


Zˍ: Bottom of hole to be drilled
Rˍ: Initial safety height
Qˍ: Depth of each peck drilling
Fˍ: Feed rate
Kˍ: Number of cutting loops

Command description: This command sets the machine to retreat a constant distance "d"
after drilling a distance (depth) of "Q" and keeps on drilling to the desired hole depth of "Z".
The back-and-forth intermittent Z-axis feeding enables easier chip dispelling during drilling
deep hole. Here value Q is absolute value. Value d is the moving distance specified by
parameter. If the setting value is 1 mm, it means the default value of retraction amount d is
1 mm. See the figure below for the operation specified by this command.

[Illustrations]
Action in steps

Action in steps

Back to
Starting point starting point Starting point

R point R point Back to R point

Z point Z point

Revision April, 2014 2-41


NC300 Chapter 2 Command Format

Note:

(1) The tool radius compensation function is ignored by the peck drilling loop
command.
(2) Run command G80 to cancel the loop cutting motion.
(3) Value Q cannot be specified as a negative value. Otherwise the alarm will
display G code error.
(4) The value of parameter K will be rounded down to the nearest whole number;
e.g., K2.6 round down to K2 and K0.6 to K0.
(5) When K value is in absolute status, it executes the cycle command for specified
number of times at the origin position. When it is in incremental status, it
executes the cycle command for specified number of times according to the
specified distance.
(6) K value is specified as 0. When executing this node, it only changes the
command to cyclic status and moves according to the command issued by XY
axis but not executing cycle command.
(7) When K value is specified as a negative value and smaller than -1, e.g. K-1.5, it
will be regarded as the result of K1.
(8) When K value is specified as a negative value, a decimal and bigger than -1, e.g.
K-0.8, it will be regarded as the result of K0.

[Illustrations]

M03 S1000
G17 G90 G00 G54 X0. Y0.
G00 Z100.
G99 G73 X0. Y0. Z-30. R10. Q4. K1 F100. ---------------------------------------------------------- (1)
X-15. ----------------------------------------------------------------------------------------------------------- (2)
X-30. ----------------------------------------------------------------------------------------------------------- (3)
X-30. Y15. ---------------------------------------------------------------------------------------------------- (4)
G80 G91 G28 X0. Y0. Z0.
M05

2-42 Revision April, 2014


Chapter 2 Command Format NC300

Starting point

R point
(Tool retreat)

Revision April, 2014 2-43


NC300 Chapter 2 Command Format

[Illustrations]

M03 S1000
G17 G90 G00 G54 X0. Y0.
G00 Z100.
G98 G73 X0. Y0. Z-30. R10. Q4. K1 F100. ---------------------------------------------------------- (1)
X-15. ----------------------------------------------------------------------------------------------------------- (2)
X-30. ----------------------------------------------------------------------------------------------------------- (3)
X-30. Y15. ---------------------------------------------------------------------------------------------------- (4)
G80 G91 G28 X0. Y0. Z0.
M05

Starting point
(Tool retreat)

R point

2-44 Revision April, 2014


Chapter 2 Command Format NC300

G74: Left Spiral Tapping Cycle Command

Command format: G74 Xˍ Yˍ Rˍ Zˍ Pˍ Fˍ Kˍ


Xˍ Yˍ: Single step ending point
Zˍ: Tapping depth position
Rˍ: Initial safety height
Pˍ: Pause time (in the least unit of 1/1000 second), without decimal
point.
Fˍ: Spiral feed rate
Kˍ: Number of loops

Feeding speed of tapping (mm/min) = Lead (mm/rev) × Spindle speed


(rev/min).
F=P×S

Command description: This command is for left-handed threading and requires left-handed
tapping cutter and reverse turning spindle to execute command G74. It sets the machine to
move as described below:
- fast move the tool to position set by coordinates (X, Y)
- fast position to height R
- tapping at speed set by F till the depth of Z
- set the spindle to turn in positive direction
- retreat the Z-axis in positive direction to height R
- set the spindle reverse turn after reaching height R and prepare for reverse
Action in steps

Action in steps

Back to
Starting point starting point Starting point

R point R point Back to R point

Z point Z point

In tapping cycles the machine cuts at the speed given by parameter (100% program value)
and the spindle revolution factor and feed rate of the control panel are set to inactive.
Furthermore, the program stop key will be ignored to ensure thread accuracy. The stop key
is active only after the thread cutting or before the tapping operation.

Revision April, 2014 2-45


NC300 Chapter 2 Command Format

[Illustrations]

G17 G90 G00 G54 X0. Y0.


G00 Z100.
M29 S1000
G99 G74 X0. Y0. Z-30. R10. P1000 K1 F1000. ----------------------------------------------------- (1)
X-15. ----------------------------------------------------------------------------------------------------------- (2)
X-30. ----------------------------------------------------------------------------------------------------------- (3)
X-30. Y15. ---------------------------------------------------------------------------------------------------- (4)
M28
G91 G80 G28 X0. Y0. Z0.

Starting point

R point
(Tool retreat)

2-46 Revision April, 2014


Chapter 2 Command Format NC300

[Illustrations]

G17 G90 G00 G54 X0. Y0.


G00 Z100.
M29 S1000
G98 G74 X0. Y0. Z-30. R10. P1000 K1 F1000. ----------------------------------------------------- (1)
X-15. ----------------------------------------------------------------------------------------------------------- (2)
X-30. ----------------------------------------------------------------------------------------------------------- (3)
X-30. Y15. ---------------------------------------------------------------------------------------------------- (4)
M28
G91 G80 G28 X0. Y0. Z0.

Starting point
(Tool retreat)

R point

Revision April, 2014 2-47


NC300 Chapter 2 Command Format

G76: Fine Boring Cycle Command


Command format: G76 Xˍ Yˍ Rˍ Pˍ Zˍ Qˍ FˍKˍ

Xˍ Yˍ: Ending position of single step


Rˍ: Initial safety height
Pˍ: Pause time (in the least unit of 1/1000 second), without decimal
point.
Zˍ: Tapping depth position
Qˍ: Offset distance
Fˍ: Feed rate
Kˍ: Number of loops

Command description: This command is for fine boring. It sets the machine to move as
described below:
- cut into the given depth and stay for time set by parameter P_
- the spindle stops turning and positions
- the tool center move away from the workpiece surface for a distance set by program Q_
- the tool returns to height R or starting point without scratching the workpiece surface
- the tool center offsets to the distance set by parameter Q_
- the spindle resumes turning after the Z-axis returns to the original starting position.
Action in steps

Action in steps

Back to
Starting point Starting point
starting point

R point R point Back to R point

Z point Z point

Figure 1: Fine boring cycle

2-48 Revision April, 2014


Chapter 2 Command Format NC300

Tool

The spindle
stops at given
direction

Offset amount Q

Figure 2: Offset amount for fine boring cycle

See below for movements set by this command (refer to Figure 1):
- the boring cutter fast positions to point (X, Y) and height R
- cut to depth Z in F feed rate
- the spindle stops and positions
- point the cutter tip to the positioning direction
- offset the boring cutter for distance Q away from the hole wall (Figure 2) such that the
cutter can move out of the hole without scratching the machining surface
- the tool center moves back to the original center position after the boring cutter moves to
point R or the starting point
- the spindle resumes turning.

The offset amount shown in Figure 2 is given by parameter Q. The value of parameter Q
must be positive (if a negative value is given its absolute value will be used instead; to
offset 1.0mm, set the parameter to Q1.0). The offset direction can be set by coordinates
(+X, +Y) or (-X, -Y). Do not give too big a value to parameter Q as the tool center may hit
the workpiece as a result.

The Q value for number of constant cycle is a status value and applies to the cutting
amount of commands G73 and G83 as well as the offset amount of command G87. Set
proper Q value for commands G73, G76, G83, G87 to avoid improper collision for
commands G76 and G87 or cutting for commands G73 and G83.

Revision April, 2014 2-49


NC300 Chapter 2 Command Format

[Illustrations]

M03 S1000
G17 G90 G00 G54 X0. Y0.
G00 Z100.
G99 G76 X0. Y0. Z-30. R10. P1000 Q5. K1 F100. ------------------------------------------------- (1)
X-15. ----------------------------------------------------------------------------------------------------------- (2)
X-30. ----------------------------------------------------------------------------------------------------------- (3)
X-30. Y15. ---------------------------------------------------------------------------------------------------- (4)
G80 G91 G28 X0. Y0. Z0.
M05

Starting point

R point
(Tool retreat)

2-50 Revision April, 2014


Chapter 2 Command Format NC300

[Illustrations]

M03 S1000
G17 G90 G00 G54 X0. Y0.
G00 Z100.
G98 G76 X0. Y0. Z-30. R10. P1000 Q5. K1 F100. ------------------------------------------------- (1)
X-15. ----------------------------------------------------------------------------------------------------------- (2)
X-30. ----------------------------------------------------------------------------------------------------------- (3)
X-30. Y15. ---------------------------------------------------------------------------------------------------- (4)
G80 G91 G28 X0. Y0. Z0.
M05

Starting point
(Tool retreat)

R point

Revision April, 2014 2-51


NC300 Chapter 2 Command Format

G80: Cycle Cancelling Command


Command format: G80

Command description: All cycle commands are status commands. Please cancel the cycle
command status before resuming normal cutting operations. Command G80 cancels the
cycle status set by commands G73, G74, G76 and G81~G89.

[Illustrations]

G17 G90 G00 G54 X0. Y0.


Z100.
G99 G73 X0. Y0. Z-20. R10. Q4. K1 F100.
G80 --------------------------------------------------------------- (Cancel cycles set by command G73)
G17 G90 G00 G54 X0. Y0.
Z100.

2-52 Revision April, 2014


Chapter 2 Command Format NC300

G81: Drilling Cycle Command


Command format: G81 Xˍ Yˍ Zˍ Rˍ FˍKˍ

Xˍ Yˍ: Ending position of single step


Zˍ: Cutting depth position
Rˍ: Initial safety height
Fˍ: Feed rate
Kˍ: Number of cycles

Command description: Command G81 is used for general purpose drilling loops. It drills to
given depth Z in one shot without any retreat. The drilling cycle is completed by returning
the cutter to point R or the initial point after being drilled to given depth Z with G00
movement. See the figure below for reference.
Action in steps

Action in steps
Back to
Starting point starting point Starting point

R point R point Back to R point

Z point Z point

Revision April, 2014 2-53


NC300 Chapter 2 Command Format

[Illustrations]

M03 S1000
G17 G90 G00 G54 X0. Y0.
G00 Z100.
G99 G81 X0. Y0. Z-30. R10. K1 F100. ---------------------------------------------------------------- (1)
X-15. ----------------------------------------------------------------------------------------------------------- (2)
X-30. ----------------------------------------------------------------------------------------------------------- (3)
X-30. Y15. ---------------------------------------------------------------------------------------------------- (4)
G80 G91 G28 X0. Y0. Z0.
M05

Starting point

R point
(Tool retreat)

2-54 Revision April, 2014


Chapter 2 Command Format NC300

[Illustrations]

M03 S1000
G17 G90 G00 G54 X0. Y0.
G00 Z100.
G98 G81 X0. Y0. Z-30. R10. K1 F100. ---------------------------------------------------------------- (1)
X-15. ----------------------------------------------------------------------------------------------------------- (2)
X-30. ----------------------------------------------------------------------------------------------------------- (3)
X-30. Y15. ---------------------------------------------------------------------------------------------------- (4)
G91 G80 G28 X0. Y0. Z0.
M05

Starting point
(Tool retreat)

R point

Revision April, 2014 2-55


NC300 Chapter 2 Command Format

G82: Countersunk Drilling Cycle Command


Command format: G82 Xˍ Yˍ Rˍ Zˍ Pˍ FˍKˍ

Xˍ Yˍ: Ending position of single step


Zˍ: Cutting depth position
Rˍ: Initial safety height
Pˍ: Pause time (in the least unit of 1/1000 second), without decimal
point.
Fˍ: Feed rate
Kˍ: Number of cycles

Command description: Command G82 functions the same as command G81 except that
the former can designate pause time P_ in a single step. That is, command G82 differs from
G81 only in that it can set up a pause time P after cutting to the bottom of the hole.
Command G82 is ideal for drilling counter bore, spot facing, and for machining holes that
need precise depth. Command G82 can set the tool to stay within a specified time span
after cutting to the bottom of the hole for a more smooth hole wall and accurate hole depth.
Action in steps

Action in steps

Back to
Starting point starting point Starting point

R point R point Back to R point

Z point Z point

2-56 Revision April, 2014


Chapter 2 Command Format NC300

[Illustrations]

M03 S1000
G17 G90 G00 G54 X0. Y0.
G00 Z100.
G99 G82 X0. Y0. Z-30. R10. P1000 K1 F100. ------------------------------------------------------ (1)
X-15. ----------------------------------------------------------------------------------------------------------- (2)
X-30. ----------------------------------------------------------------------------------------------------------- (3)
X-30. Y15. ---------------------------------------------------------------------------------------------------- (4)
G80 G91 G28 X0. Y0. Z0.
M05

Starting point

R point
(Tool retreat)

Revision April, 2014 2-57


NC300 Chapter 2 Command Format

[Illustrations]

M03 S1000
G17 G90 G00 G54 X0. Y0.
G00 Z100.
G98 G82 X0. Y0. Z-30. R10. P1000 K1 F100. ------------------------------------------------------ (1)
X-15. ----------------------------------------------------------------------------------------------------------- (2)
X-30. ----------------------------------------------------------------------------------------------------------- (3)
X-30. Y15. ---------------------------------------------------------------------------------------------------- (4)
G80 G91 G28 X0. Y0. Z0.
M05

Starting point
(Tool retreat)

R point

2-58 Revision April, 2014


Chapter 2 Command Format NC300

G83: Deep Hole Peck Drilling Cycle Command


Command format: G83 Xˍ Yˍ Rˍ Qˍ Zˍ Fˍ Kˍ

Xˍ Yˍ: Ending position of single step


Zˍ: Cutting depth position
Rˍ: Initial safety height
Qˍ: Peck cutting depth
Fˍ: Feed rate
Kˍ: Number of cycles

Command description: Command G83 functions the same as command G73 except that
the former returns back to height R after each deep drilling so that cutting debris can be
fully removed and cutting fluid may flow into the hole for better cooling.
The machine is set to move as described below:
- the tool returns back to point R after each cutting of depth Q
- then positioned to a point higher than the last drill ending point of distance "d"
- start drilling for depth "q+d" in the next drilling process
- drill to given position Z before returning back to position R or the initial point to finish
drilling a deep hole.
Action in steps

Action in steps

Back to
Starting point starting point Starting point

R point R point Back to R point

Z point Z point

Revision April, 2014 2-59


NC300 Chapter 2 Command Format

[Illustrations]

M03 S1000
G17 G90 G00 G54 X0. Y0.
G00 Z100.
G99 G83 X0. Y0. Z-30. R10. Q4 K1 F100. ----------------------------------------------------------- (1)
X-15. ----------------------------------------------------------------------------------------------------------- (2)
X-30. ----------------------------------------------------------------------------------------------------------- (3)
X-30. Y15. ---------------------------------------------------------------------------------------------------- (4)
G80 G91 G28 X0. Y0. Z0.
M05

Starting point

R point
(Tool retreat)

2-60 Revision April, 2014


Chapter 2 Command Format NC300

[Illustrations]

M03 S1000
G17 G90 G00 G54 X0. Y0.
G00 Z100.
G98 G83 X0. Y0. Z-30. R10. Q4 K1 F100. ----------------------------------------------------------- (1)
X-15. ----------------------------------------------------------------------------------------------------------- (2)
X-30. ----------------------------------------------------------------------------------------------------------- (3)
X-30. Y15. ---------------------------------------------------------------------------------------------------- (4)
G80 G91 G28 X0. Y0. Z0.
M05

Starting point
(Tool retreat)

R point

Revision April, 2014 2-61


NC300 Chapter 2 Command Format

G84: Right Spiral Tapping Cycle Command


Command format: G84 Xˍ Yˍ Rˍ Zˍ Pˍ Fˍ Kˍ

Xˍ Yˍ: Ending position of single step


Zˍ: Cutting depth position
Rˍ: Initial safety height
Pˍ: Pause time (in the least unit of 1/1000 second), without decimal
point.
Fˍ: Spiral feed rate
Kˍ: Number of cycles

Command description: Command G84 taps right-handed threads. It functions the same as
command G74 except that the turning direction of G84 is opposite to that of command G74.
All the remaining operations and notes are the same as command G74.
Action in steps

Action in steps
Back to
Starting point starting point Starting point

R point R point Back to R point

Z point Z point

2-62 Revision April, 2014


Chapter 2 Command Format NC300

[Illustrations]

G17 G90 G00 G54 X0. Y0.


G00 Z100.
M29 S1000
G99 G84 X0. Y0. Z-30. R10. P1000 K1 F1000. ----------------------------------------------------- (1)
X-15. ----------------------------------------------------------------------------------------------------------- (2)
X-30. ----------------------------------------------------------------------------------------------------------- (3)
X-30. Y15. ---------------------------------------------------------------------------------------------------- (4)
M28
G80 G91 G28 X0. Y0. Z0.
M05

Starting point

R point
(Tool retreat)

Revision April, 2014 2-63


NC300 Chapter 2 Command Format

[Illustrations]

G17 G90 G00 G54 X0. Y0.


G00 Z100.
M29 S1000
G98 G84 X0. Y0. Z-30. R10. P1000 K1 F1000. ----------------------------------------------------- (1)
X-15. ----------------------------------------------------------------------------------------------------------- (2)
X-30. ----------------------------------------------------------------------------------------------------------- (3)
X-30. Y15. ---------------------------------------------------------------------------------------------------- (4)
M28
G80 G91 G28 X0. Y0. Z0.

Starting point
(Tool retreat)

R point

2-64 Revision April, 2014


Chapter 2 Command Format NC300

G85: Broaching Cycle Command


Command format: G85 Xˍ Yˍ Rˍ Zˍ Fˍ Kˍ

Xˍ Yˍ: Ending position of single step


Zˍ: Cutting depth position
Rˍ: Initial safety height
Fˍ: Feed rate
Kˍ: Number of cycles

Command description: Command G85 improves boring precision significantly. It usually


works with reaming or boring cutter for holes with high reaming or boring accuracy.
See below for the movements set by this command:
Cuts to given depth Z from point R in given feed speed F before lifting the tool up to point R
in the same feed speed of F. Returns to point R (G99) or initial point (G98) by fast feed
(G00).
Action in steps

Action in steps

Back to
Starting point starting point Starting point

R point R point Back to R point

Z point Z point

Revision April, 2014 2-65


NC300 Chapter 2 Command Format

[Illustrations]

M03 S1000
G17 G90 G00 G54 X0. Y0.
G00 Z100.
G99 G85 X0. Y0. Z-30. R10. K1 F100. ---------------------------------------------------------------- (1)
X-15. ----------------------------------------------------------------------------------------------------------- (2)
X-30. ----------------------------------------------------------------------------------------------------------- (3)
X-30. Y15. ---------------------------------------------------------------------------------------------------- (4)
G80 G91 G28 X0. Y0. Z0.
M05

Starting point

R point
(Tool retreat)

2-66 Revision April, 2014


Chapter 2 Command Format NC300

[Illustrations]

M03 S1000
G17 G90 G00 G54 X0. Y0.
G00 Z100.
G98 G85 X0. Y0. Z-30. R10. K1 F100. ---------------------------------------------------------------- (1)
X-15. ----------------------------------------------------------------------------------------------------------- (2)
X-30. ----------------------------------------------------------------------------------------------------------- (3)
X-30. Y15. ---------------------------------------------------------------------------------------------------- (4)
G80 G91 G28 X0. Y0. Z0.
M05

Starting point
(Tool retreat)

R point

Revision April, 2014 2-67


NC300 Chapter 2 Command Format

G86: Rough Boring Cycle Command


Command format: G86 Xˍ Yˍ Rˍ Zˍ Fˍ Kˍ

XˍYˍ: Ending position of single step


Zˍ: Cutting depth position
Rˍ: Initial safety height
Fˍ: Feed rate
Kˍ: Number of cycles

Command description: See the figure below for the motions set by this command. After
bored to given depth Z, the spindle stops turning and lifts to the initial height with fast
feeding command G00. A full boring cycle is completed after the spindle returns to the initial
height and resumes positive direction turning. There is no Q parameter in this command
and so it lacks any offset or peck cutting motion. As the tool keeps contacting the working
surface constantly and is not turning when lifting off the hole, the hole wall may be left with
minor scratches. Command G86 is thus usually used for rough boring.
Action in steps

Action in steps

Back to
Starting point starting point Starting point

R point R point Back to R point

Z point Z point

2-68 Revision April, 2014


Chapter 2 Command Format NC300

[Illustrations]

M03 S1000
G17 G90 G00 G54 X0. Y0.
G00 Z100.
G99 G86 X0. Y0. Z-30. R10. K1 F100. ---------------------------------------------------------------- (1)
X-15. ----------------------------------------------------------------------------------------------------------- (2)
X-30. ----------------------------------------------------------------------------------------------------------- (3)
X-30. Y15. ---------------------------------------------------------------------------------------------------- (4)
G80 G91 G28 X0. Y0. Z0.
M05

Starting point

R point
(Tool retreat)

Revision April, 2014 2-69


NC300 Chapter 2 Command Format

[Illustrations]

M03 S1000
G17 G90 G00 G54 X0. Y0.
G00 Z100.
G98 G86 X0. Y0. Z-30. R10. K1 F100. ---------------------------------------------------------------- (1)
X-15. ----------------------------------------------------------------------------------------------------------- (2)
X-30. ----------------------------------------------------------------------------------------------------------- (3)
X-30. Y15. ---------------------------------------------------------------------------------------------------- (4)
G80 G91 G28 X0. Y0. Z0.
M05

Starting point
(Tool retreat)

R point

2-70 Revision April, 2014


Chapter 2 Command Format NC300

G87: Rear Boring Cycle Command


Command format: G87 Xˍ Yˍ Rˍ Zˍ Qˍ Pˍ Fˍ Kˍ

XˍYˍ: Ending position of single step


Zˍ: Cutting depth position
Rˍ: Initial safety height
Qˍ: Offset distance
Pˍ: Pause time (in the least unit of 1/1000 second), without decimal
point.
Fˍ: Feed rate
Kˍ: Number of cycles

Command description: The tool fast positions to the position set by coordinates (X, Y)
before the spindle moves to the position the cutter tip in a given direction. The tool center
then offsets a distance of value Q. In this way, the cutter blade does not contact the
machining surface when moving to height R. After fast positioning to height R, the tool
center moves to the original position given by coordinates (X, Y) and the spindle starts to
turn forward. The tool now starts cutting from point R to point Z. The tool center then offsets
a distance Q and the spindle positions after reaching point Z. The tool then returns back to
the Z-axis initial point with fast positioning and resets the offset after reaching the initial
point. The offset value Q equals the one set by command G76 in both magnitude and
direction. Please note that command G87 does not support operation in G99 mode.
Action in steps

Back to
Starting point starting point

R point

Z point

Revision April, 2014 2-71


NC300 Chapter 2 Command Format

[Illustrations]

M03 S1000
G17 G90 G00 G54 X0. Y0.
G00 Z100.
G98 G87 X0. Y0. Z-30. R10. P1000 Q5. K1 F100. ------------------------------------------------- (1)
X-15. ----------------------------------------------------------------------------------------------------------- (2)
X-30. ----------------------------------------------------------------------------------------------------------- (3)
X-30. Y15. ---------------------------------------------------------------------------------------------------- (4)
G80 G91 G28 X0. Y0. Z0.
M05

Starting point
(Tool retreat)

R point

2-72 Revision April, 2014


Chapter 2 Command Format NC300

G88: Boring Cycle Command


Command format: G88 Xˍ Yˍ Rˍ Zˍ Pˍ Fˍ Kˍ

XˍYˍ: Ending position of single step


Zˍ: Cutting depth position
Rˍ: Initial safety height
Pˍ: Pause time (in the least unit of 1/1000 second), without decimal
point.
Fˍ: Feed rate
Kˍ: Number of cycles

Command description: Command G88 sets the tool to cut from point R to given point Z and
pause at point Z for the time specified in parameter P. The spindle stops turning and
execution (same as executing command M00) after a pause period and fast retreats the
tool to point R or the initial point only after the program execution key is pressed.
In addition, the operator may manually move (by switching the system to "manual" mode)
the tool upward in Z+ direction after cutting to point Z. Switch the system mode back to
"Auto" and press the program execution key to resume program control. After the Z-axis is
lifted to point R (G99) or the initial point (G98) a full cycle of command G88 is accomplished.
This command is used for blind hole boring.
Action in steps

Action in steps

Back to
Starting point starting point Starting point

R point R point Back to R point

Z point Z point

Revision April, 2014 2-73


NC300 Chapter 2 Command Format

[Illustrations]

M03 S1000
G17 G90 G00 G54 X0. Y0.
G00 Z100.
G99 G88 X0. Y0. Z-30. R10. P1000 K1 F100. ------------------------------------------------------ (1)
X-15. ----------------------------------------------------------------------------------------------------------- (2)
X-30. ----------------------------------------------------------------------------------------------------------- (3)
X-30. Y15. ---------------------------------------------------------------------------------------------------- (4)
G80 G91 G28 X0. Y0. Z0.
M05

Starting point

R point
(Tool retreat)

2-74 Revision April, 2014


Chapter 2 Command Format NC300

[Illustrations]

M03 S1000
G17 G90 G00 G54 X0. Y0.
G00 Z100.
G98 G88 X0. Y0. Z-30. R10. P1000 K1 F100. ------------------------------------------------------ (1)
X-15. ----------------------------------------------------------------------------------------------------------- (2)
X-30. ----------------------------------------------------------------------------------------------------------- (3)
X-30. Y15. ---------------------------------------------------------------------------------------------------- (4)
G80 G91 G28 X0. Y0. Z0.
M05

Starting point
(Tool retreat)

R point

Revision April, 2014 2-75


NC300 Chapter 2 Command Format

G89: Boring Cycle Command


Command format: G89 Xˍ Yˍ Rˍ Zˍ Pˍ Fˍ Kˍ

XˍYˍ: Ending position of single step


Zˍ: Cutting depth position
Rˍ: Initial safety height
Pˍ: Pause time (in the least unit of 1/1000 second), without decimal
point.
Fˍ: Feed rate
Kˍ: Number of cycles

Command description: Command G89 is for blind hole reaming. It functions the same as
command G85 except that a pause P can be added at point Z. Both its downward and
upward movement of the tool in the Z-axis is in F feed rate. With added pause at point Z,
the depth and diameter of the hole can be greatly improved by keeping the tool staying a
while when cut to position Z.
Action in steps

Action in steps

Back to starting
Starting point point Starting point

R point R point Back to R point

Z point Z point

2-76 Revision April, 2014


Chapter 2 Command Format NC300

[Illustrations]

M03 S1000
G17 G90 G00 G54 X0. Y0.
G00 Z100.
G99 G89 X0. Y0. Z-30. R10. P1000 K1 F100. ------------------------------------------------------ (1)
X-15. ----------------------------------------------------------------------------------------------------------- (2)
X-30. ----------------------------------------------------------------------------------------------------------- (3)
X-30. Y15. ---------------------------------------------------------------------------------------------------- (4)
G80 G91 G28 X0. Y0. Z0.
M05

Starting point

R point
(Tool retreat)

Revision April, 2014 2-77


NC300 Chapter 2 Command Format

[Illustrations]

M03 S1000
G17 G90 G00 G54 X0. Y0.
G00 Z100.
G98 G89 X0. Y0. Z-30. R10. P1000 K1 F100. ------------------------------------------------------ (1)
X-15. ----------------------------------------------------------------------------------------------------------- (2)
X-30. ----------------------------------------------------------------------------------------------------------- (3)
X-30. Y15. ---------------------------------------------------------------------------------------------------- (4)
G80 G91 G28 X0. Y0. Z0.
M05

Starting
point

R point

2-78 Revision April, 2014


Chapter 2 Command Format NC300

G90: Absolute Coordinate System Command


Command syntax: G90 Xˍ Yˍ Zˍ

Command description: Command G90 is a status command of continuous effects that


enables all axial commands to execute in absolute mode. That is, the tool moves relative to
a reference point of the origin of the workpiece coordinates. Each axial command after
command G90 moves an actual distance relative to the origin of the workpiece coordinates.

[Illustrations]

From point 1 of coordinates (X10,Y10) to point two (X30,Y30) the tool moves an actual
distance of X20 and Y20 as shown in the figure below.

Actual
movement

O1000
G01 G90 X10.0 Y10.0 F500.0
X30.0 Y30.0

Revision April, 2014 2-79


NC300 Chapter 2 Command Format

G91: Incremental Coordinate System Command


Command format: G91 Xˍ Yˍ Zˍ

Command description: The increment command G91 sets all axial movements in a single
node motion program from the current position to a given distance. The G91 command is a
status command that cancels command G90 once it is activated.

[Illustrations]

From point 1 of coordinates (X10, Y10) to point two (X20, Y20) the tool moves an actual
distance of X20 and Y20 to point (X30, Y30) of the actual mechanical coordinates as shown
in the figure below.

Mechanical coordinates

Actual
movement

O1001
G01 G91 X10.0 Y10.0 F500.0
X20.0 Y20.0

2-80 Revision April, 2014


Chapter 2 Command Format NC300

Example of using G90 and G91 commands together:

O0010
G01 G90 X0 Y0 F1000
X40.0
G91 Y20.0
X-5.0 Y5.0
G90 X5.0
X0 Y20.0
Y0
M30

Revision April, 2014 2-81


NC300 Chapter 2 Command Format

G92: Coordinate System Setup Command


Command format: G92 Xˍ Yˍ Zˍ

Command description: Command G92 X0 Y0 Z0 sets the current tool position as the zero
point of an absolute coordinates system. The absolute command in the program calculates
positions relative to this point. Values of absolute coordinates and current positions are all
refreshed with new values given by parameters of command G92 Xˍ Yˍ Zˍ (as long as any
of the three parameters X, Y and Z have values assigned to them).

Note:
(1) Mode sets by command G92 will be cancelled, if it is activated, when the program
ending command M02/M30 is executed.
(2) You may reset the status set by command G92 by pressing the RESET key.

[Illustrations]

Workpiece

O0005
G00 G90 G54 X0.0 Y0.0
G00 G92 X0.0 Y0.0
G01 X100.0 Y0.0 F1000.0
X100.0 Y50.0
X0.0 Y50.0
X0.0 Y0.0
M30

2-82 Revision April, 2014


Chapter 2 Command Format NC300

G94: Feed Rate (mm/min) Setup Command


Command format: G94 G01 Xˍ Yˍ Zˍ Fˍ

Command description: The feed rate set by command G94 is in the unit of mm/min. This
status set command remains effective. It sets the tool to cut at the speed given by
parameter F in the unit of mm/min. G94 can be executed along with the motion node
simultaneously. It can be executed in single node alone as well. It is commonly used by
most milling machines for feed rate calculation.

Workpiece

Feed rate in unit of


maintenance/min or inch/min

Revision April, 2014 2-83


NC300 Chapter 2 Command Format

G98: Return to the Initial Point of the Fixed Cycle


Command format: G98 G8_ Xˍ Yˍ Zˍ Rˍ Fˍ

Command description: Command G98/G99 is a status command for returning the tool back
to a specified height after the execution of a fixed loop command ends. Command G98
returns the tool back to its initial point after a cycle command. After the execution of a fixed
cycle command ends, the G98 command in the program returns the tool back to its initial
point of this fixed cycle command. Command G98 can be reset by command G99. At the
system initialization phase, you may set command G98 to direct the system on how to
resume the initial points as illustrated in the figure below.
Action in steps

Back to
Starting point starting point

R point

Z point

2-84 Revision April, 2014


Chapter 2 Command Format NC300

G99: Return to the R Point of the Fixed Cycle


Command format: G99 G8_ Xˍ Yˍ Zˍ Rˍ Fˍ

Command description: Command G98/G99 is a status command for returning the tool back
to a specified height after the execution of a fixed cycle command ends. Command G99
returns the tool back to its reference point (R) after a cycle command. Please use command
G98, instead of G99, to return the tool back to its initial point after a cycle command.

Action in steps

Starting point

Back to
R point starting point

Z point

Revision April, 2014 2-85


NC300 Chapter 2 Command Format

(This page is intentionally left blank.)

2-86 Revision April, 2014


Chapter 3 M Commands NC300

Chapter 3 M Commands
The auxiliary function M commands are used in turning the on and off functions of the
machine. Its format is a capital letter M suffixed with three digits. Some systems-defined M
commands can be actuated for program control without any MLC coding.

3.1 M00 to stop a program from running


Command description: Once an M00 command is encountered when running a program,
the program stops immediately after the line containing the M00
command has been executed. This means that, the program stops
at where the M00 command is encountered. To resume the program
execution, press the program execution key once again. The M00
command is used for inspecting tools or workpiece's appearance
and dimensions

3.2 M01 to stop program selection


Command format: M01;

Command description: M01 command functions the same way as M00 command does
except that it does not stop a program from running on its own. Its
real effects come only when the selected stop key function of the
second control panel is enabled. If the selected stop key function of
the second control panel is not activated, the program ignores M01
command and keeps on running until an M00 or program ending
command appears or the selected stop key function is pressed.

3.3 M02 to end a program


Command format: M02;
Command description: M02 command is commonly placed at the end of a processing
program to instruct the controller that the running program is to be
ended. For an M02 command located within a program, the latter
stops running, aborts the program and keeps the cursor at the node
of M02 command.

Revision April, 2014 3-1


NC300 Chapter 3 M Commands

3.4 M30 to end a program and return to its source command


Command format: M30;

Command description: M30 command is commonly placed at the end of a program to


instruct the controller that the running program is to be ended.
When an M30 command is located within a program, the program
stops running and returns the cursor back to the beginning of the
program.
M30 and M02 commands function the same way except that M02
command keeps the cursor at M0 command node while M30
command returns the cursor back to the beginning of the program
containing it.

3.5 M98 to call a sub-routine


Command format: M98 Pˍ Lˍ;

Command description: You may group fixed or repetitive actions in a program into a
sub-routine to simplify the structure and reduce the length of the
program. The main program calls a sub-routine which in turn can
call another sub-routine in a next level, up to eight layers.
When the controller reads an M98 command, it jumps to the
designated sub-routine and execute it according to the setting
number of times.
Pˍ: indicates program code of the subroutine; Lˍ: Indicates the
number of times the subroutine is to be executed.
[Illustrations]

Main program Sub-routines


N0010; O1010;
N0020 M98 P1010; N1020;
N0030; N1030;
N0040; N1040;
N0050; N1050;
N0060; N1060;
N0070; N1070;
N0080; N1080;
N0090; N1090;
N0100; N1100 M99;

3-2 Revision April, 2014


Chapter 3 M Commands NC300

3.6 M99 to return from a sub-routine


Command format: M99;

Command description: M98 command can run a sub-routine from the main program. If the
user desires to back to the main program, command M99 again.
Thus, after executing to the node of M99, the sub-routine of the
main program will call the next node and then start to execute the
command. If P_ is added as the suffix of M99, the sub-routine will
not return to the next node of M98 P_L_, but the P program series of
the main program.

[Illustrations]

Main program Sub-routine


N0010; O1010;
N0020 M98 P1010; N1020;
N0030; N1030;
N0040; N1040;
N0050; N1050;
N0060; N1060;
N0070; N1070;
N0080; N1080;
N0090; N1090;
N0100; N1100 M99 P0060;

Revision April, 2014 3-3


NC300 Chapter 3 M Commands

3.7 Table of commonly used M codes


The commonly used M codes are summarized in the table below. The functions of an M
code are defined in the MLC except those pre-defined by the system. Actual functions of
the M codes vary with individual machines.

M code Function Remark


M00 Stops a program from running System defined
M01 Stops a selected program function from running System defined
M02 Ends a program System defined
M03 Spindle moves forward
M04 Spindle moves backward
M05 Spindle stops
M06 Auto tool switch
M08 Cutting oil ON
M09 Cutting oil OFF
M19 Positioning the spindle
M20 Release spindle positioning
M28 Cancel rigid tapping
M29 Rigid tapping
M30 Ends a program and goes back to its beginning System defined
M98 Call a sub-routine System defined
M99 Return from a sub-routine System defined

3-4 Revision April, 2014


Chapter 4 Marco and Variables NC300

Chapter 4 Macro and Variables


4.1 Variables
You can assign values of variables contained in an NC program. You can calculate and
modify multiple variable values in advance to adapt a program for a range of conditions. A
variable is formatted as a symbol "#" suffixed with a variable number.

Variable types

Type No. Usage Read Write


Local #1~#50 Local variables are used by sub-routines or ★ ★
macros for data registry or calculation. They
can be referred by arguments. The calling
sub-routines can nest up to 8 layers with calling
arguments at each layer referred to some local
variables.
Global #51~#250 Global variables are used by sub-routines or ★ ★
macros for data registry or calculation.
Maintain #1601~#1800 Systems variables are used for reading and ★ ★
writing internal data of the system during an
NC operation. This is the power outage
maintain variable.
MLC bit output #1801~#1832 Read MLC message status (MLC->NC) with ★
MLC word #1833~#1848 variable number (Variable #1801~#1832 for bit ★
output and #1833~#1848 for word).
MLC bit input #1864~#1895 Write MLC message status (NC->MLC) with ★
MLC word input #1896~#1911 variable number (Variable #1864~#1895 for bit ★
and #1896~#1911 for word).

4.1.1 Arguments and local variables


Except for the G, L, N, O and P codes, all the others can be used as designated arguments.
When called by sub-routine G65 and G66, they can be sent as local variables.

Revision April, 2014 4-1


NC300 Chapter 4 Marco and Variables

4.1.2 Systems variables


Systems variables are used for reading and writing internal systems data during an NC
operation. These MLC outputs are used for data exchanges between the NC program and
MLC where "Special M” stands for bit and "Special D" for word.

G code group message:


Variable No. Function Read Write
#2000~2019 G code group ★
#2020 F code, the F value of NC machining speed. ★
#2021 H code, the H value of NC tool length compensation ★
number.
#2022 D code, the D value of NC tool diameter compensation ★
number.
#2023 T code, the T value of NC tool number. ★
#2024 S code, the S value of NC spindle rotation speed. ★

Various mode messages during program execution (for read only)


Variable function
#2000 G04, G09, G10, G11
#2001 Interpolation mode: G00, 01, 02, 03
#2002 Plane selection: G17, 18, 19
#2003 Absolute/incremental: G90, 91
#2004 Stroke check: G22, 23
#2005 Feed designation: G94
#2006 Imperial/metric: G21
#2007 Tool diameter compensation: G40, 41, 42
#2008 Tool length compensation: G43, 44, 49
#2009 Fixed cycle: G73, 74, 76, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89
#2010 Homing position: G98, 99
#2011 Scaled cutting: G50, 51
#2012 Workpiece coordinates: G54, 55, 56, 57, 58, 59
#2013 Cutting mode: G61, 64
#2014 Macro calling: G66, 67
#2015 Coordinates rotation: G68, 69
#2016 Polar coordinates: G15, 16
#2017
#2018
#2019

4-2 Revision April, 2014


Chapter 4 Marco and Variables NC300

(1) Position relevant messages:


Variables #2100~#2214 can read coordinate values shown in the table below (read only).
Position Mechanical Relative Jumping Deviation between
message coordinates coordinates mechanical restart position and
coordinates absolute coordinates
Absolute Coordinates of Jumping Deviation between
Spindle coordinates end of single absolute restart position and tool
node coordinates
#2100 #2180 #2148 #2196
X
#2116 #2132 #2164 #2212
#2101 #2181 #2149 #2197
Y
#2117 #2133 #2165 #2213
#2102 #2182 #2150 #2198
Z
#2118 #2134 #2166 #2214

(2) Job coordinates messages:


Variables #3000~#3262 can read offset and job coordinates (read only).
Position Workpiece Workpiece Workpiece
message Offset coordinates G54 coordinates G55 coordinates G56
Spindle coordinates Workpiece Workpiece Workpiece
coordinates G57 coordinates G58 coordinates G59
#3001 #3002 #3003
X #3000
#3004 #3005 #3006
#3129 #3130 #3131
Y #3128
#3132 #3133 #3134
#3257 #3258 #3259
Z #3256
#3260 #3261 #3262

(3) Other messages:


Variable No. Function Read Write
#2300 Single node I, for arc command ★
#2301 Single node J, for arc command ★
#2302 Single node K, for arc command ★
#2303 Timing after system power on ★
#2304 Tool number at spindle 1 (dual tool magazine) ★
#2305 Tool number at spindle 2 (dual tool magazine) ★
#2500 Tool number fetched from tool magazine 1 ★

Revision April, 2014 4-3


NC300 Chapter 4 Marco and Variables

#2501 Tool number fetched from tool magazine 2 ★


#5000~#5013 Log of latest used M codes (14 sets) ★
#5014~#5015 Log of latest used T codes (2 sets) ★
#5016 Search the latest S code again ★
#6000 System macro warnings in range of 1~1000. Message ★
can be edited by the Screen Editor.
#6001~ Tool length ★ ★
#6501~ Tool radius ★ ★
#7001~ Wear in length ★ ★
#7501~ Wear in radius ★ ★
#8001~ Tool life span ★ ★
#8600~ Program timing in unit of ms ★ ★

4.1.3 Macro interface input and output


You can use variables #1801~#1911 to get interface messages and read or write the MLC
message status. Variable values can be in Bit or Word format. For Bit message
types, the variable value can be digit 0 or 1.It can be any numeric for the Word type.

MLC Bit output, read MLC message status (MLC->NC)


Read MLC message Macro output point Read MLC message Macro output point
status status
#1801 M1024 #1817 M1040
#1802 M1025 #1818 M1041
#1803 M1026 #1819 M1042
#1804 M1027 #1820 M1043
#1805 M1028 #1821 M1044
#1806 M1029 #1822 M1045
#1807 M1030 #1823 M1046
#1808 M1031 #1824 M1047
#1809 M1032 #1825 M1048
#1810 M1033 #1826 M1049
#1811 M1034 #1827 M1050
#1812 M1035 #1828 M1051
#1813 M1036 #1829 M1052
#1814 M1037 #1830 M1053
#1815 M1038 #1831 M1054
#1816 M1039 #1832 M1055

4-4 Revision April, 2014


Chapter 4 Marco and Variables NC300

MLC Word output, read MLC message status (MLC->NC)


Read MLC message Macro output register Read MLC message Macro output register
status status
#1833 D1024 #1841 D1032
#1834 D1025 #1842 D1033
#1835 D1026 #1843 D1034
#1836 D1027 #1844 D1035
#1837 D1028 #1845 D1036
#1838 D1029 #1846 D1037
#1839 D1030 #1847 D1038
#1840 D1031 #1848 D1039

MLC Bit input, write MLC message status (NC->MLC)


Write MLC message Macro input point Write MLC message Macro input point
status status
#1864 M2080 #1880 M2096
#1865 M2081 #1881 M2097
#1866 M2082 #1882 M2098
#1867 M2083 #1883 M2099
#1868 M2084 #1884 M2100
#1869 M2085 #1885 M2101
#1870 M2086 #1886 M2102
#1871 M2087 #1887 M2103
#1872 M2088 #1888 M2104
#1873 M2089 #1889 M2105
#1874 M2090 #1890 M2106
#1875 M2091 #1891 M2107
#1876 M2092 #1892 M2108
#1877 M2093 #1893 M2109
#1878 M2094 #1894 M2110
#1879 M2095 #1895 M2111

MLC Word input, write MLC message status (NC->MLC)


Write MLC message Macro input register Write MLC message Macro input register
status status
#1896 D1336 #1904 D1344
#1897 D1337 #1905 D1345

Revision April, 2014 4-5


NC300 Chapter 4 Marco and Variables

#1898 D1338 #1906 D1346


#1899 D1339 #1907 D1347
#1900 D1340 #1908 D1348
#1901 D1341 #1909 D1349
#1902 D1342 #1910 D1350
#1903 D1343 #1911 D1351

4-6 Revision April, 2014


Chapter 4 Marco and Variables NC300

4.2 Variable syntax


Numeric values required by a program can be assigned by using variables. This empowers
the program for better flexibility and universality as you can use the variables for
mathematical operations.

(1) You can specify the scope of local variables:


# i: the ith variable (for 1<= i <=50)
(2) You can define the variable number with expressions:
For variable # [A], the value of A must be in range between A and the upper limit of the
system variable number, that is 1 <= A <= the upper limit of the systems variable
number.

#[<expression>] description
# [#20] (Valid)
#[#20∆3] (Valid) where ∆ represents operators =, +, -,
*, and /
##20 (Invalid), there cannot be two variable
symbols (#) in a sequence.
#[#20] = … (Valid)
#20 = … (Valid)
#[#20 - #10] = … (Valid), no operator can precede an equal (=)
symbol
#[- #20]= … (Valid)

(3) Symbols precedes a variable

-#<variable number> Pre-conditions


Z-#20 is the same as Z-10.1 #20=10.1
#20 is the same as G1 #20=1

(4) Define with variables


#20 = 10
#20 = #5
#20 = #5 + #2
(5) Conditional expressions
IF [#20==1]

Revision April, 2014 4-7


NC300 Chapter 4 Marco and Variables

4.3 Calculation commands


You can subject variables to a variety of calculations and use the result as a value for
another variable, as a combination of several variables or as an alternative to other
variables.
#i, #j, and #k can be replaced by constants.
Command Symbol Usage Definition
+ #i = #j + #k Addition
- #i = #j - #k Subtraction
Four * #i = #j * #k Multiplication
Arithmetic / #i = #j / #k Division
Operations = #i = #j Substitution
[ ] #i = #j * [ #p + #q ] Parenthesis
SIN #i = SIN [#k] Sine
ASIN #i = ASIN [#k] Arcsine
COS #i = COS [#k] Cosine
ACOS #i = ACOS [#k] Arccosine
TAN #i = TAN [#k] Tangent
ATAN #i = ATAN [#k] Arctangent
Function ATAN2 #i = ATAN2 [#m, #n] Arctangent; the angle is
adjacent side #m and diagonal
side #n
ABS #i = ABS [#k] Absolute value
FIX #i = FIX [#k] Round down
FUP #i = FUP [#k] Round up
ROUND #i = ROUND[#k] Round off
SQRT #i = SQRT [#k] Squared value
POW #i = POW [#m, #n] #m to the power of #n
BIT #i = BIT [#m, #n] The value of the #n bit of a
binary #m
& #i = #j & #k AND logic
| #i = #j | #k OR logic
Logic
Operation Λ #I = #j^#k XOR logic
! #i = ! #j NOT logic
PI PI = π Pi
Constants
TRUE TRUE = 1 Return value 1 when the IF
statement is true

4-8 Revision April, 2014


Chapter 4 Marco and Variables NC300

FALSE FALSE=0 Return value 0 when the IF


statement is true

Revision April, 2014 4-9


NC300 Chapter 4 Marco and Variables

4.4 Flow commands


Change the program flow with WHILE~ENDW and IF~GOTO commands.

4.4.1 Repetitive execution


When the WHILE expression is true: The program loops from the statement under WHILE
to the statement above ENDW. Otherwise, the program jumps to the statement
under ENDW for execution.

[WHILE]

ENDW

Illustration:
WHILE [#80<=360.] (Enters the cycle for repetitive execution when #80 is less than
or equal to 360.)

WHILE [#60>=20.] (Enters the second cycle for execution when #60 is greater than
or equal to 20.)

#60=#60-2.
ENDW (The second cycle ends when ENDW is encountered.)
#80=#80+15.
#50=#50-0.05
ENDW (The first cycle ends when the second ENDW is encountered.)

Branch conditions
IF [discriminant] GOTON (N is the sequence number in the procedure)
When the IF statement is true, the program branches (GOTO) to statement number N for
execution. Otherwise, the program executes the next node again.

GOTON (It jumps to N un-conditionally when being used independently.)


N from GOTON has to be existed in the same procedure. If not, alarm will occur (B61C).

4-10 Revision April, 2014


Chapter 4 Marco and Variables NC300


N10 #12=#10 #13=#11+2;
IF〔#2=1〕GOTO200; When Branch
#12=#10-#3; #2=1, search
#13=#11-#4; branch to
N200 X#12 Z#13; N200.
#5=#5+2;

Note 1: When searching the sequence number in branch, it starts from the beginning. If not,
an alarm (B61C) occurs. If there are more than one sequence number, it executes
from the first searched one.

Types of conditional expressions:


Conditional Description Examples
expressions
#j > #k #j greater than #k #i = #j > #k TRUE returns value: #i=1
FALSE returns value: #i=0
#j < #k #j less then #k #i = #j < #k TRUE returns value: #i=1
FALSE returns value: #i=0
#j == #k #j equal to #k #i = #j == #k TRUE returns value: #i=1
FALSE returns value: #i=0
#j >= #k #j greater than or #i = #j >= #k TRUE returns value: #i=1
equal to #k
FALSE returns value: #i=0
#j <= #k #j less than or #i = #j <= #k TRUE returns value: #i=1
equal to #k
FALSE returns value: #i=0
#j != #k #j not equal to #k #i = #j != #k TRUE returns value: #i=1
FALSE returns value: #i=0

Revision April, 2014 4-11


NC300 Chapter 4 Marco and Variables

Illustration:
#100 = 1.234; (Assign value 1.234 to #100)
#100 = #101; (Assign value of #100 to #101)
#100 = [[#101+#102]/2.0]; (Assign value of #100 to be the average of #101 and #102)
#100 = #102+2; (Assign value of #100 to be the sum of #102 and 2)
#100 = SIN[#102];

X-#100 (Assign the negative value of #100 to X coordinate)


G1X#100Y#101; (Assign the value of #100 to X coordinate and #101 to Y
coordinate)
G1X[#100]; (Assign the value of #100 to X coordinate)
G1X[#100+#101]; (Assign the sum of values of #100 and #101 to X
coordinate)
G2X [#100*SIN [#102]]; (Assign the multiplication of value of #100 by SIN#102 to X
coordinate)
G1Z#100F#102S#103; (Assign the value of #100 to Z coordinate, #102 to F, and
#103 to S)

4.5 MACRO calling


(1) A Macro calls G code
Macro function G code number Remarks
O9010 0~1000 Set G to 0 when not called by a macro
O9011 0~1000
O9012 0~1000
O9013 0~1000
O9014 0~1000
O9015 0~1000
O9016 0~1000
O9017 0~1000
O9018 0~1000
O9019 0~1000

Restrictions: In a macro program that uses a macro to call the G, M or T code, the
parameter G code is set as a general one and cannot call another macro.

4-12 Revision April, 2014


Chapter 4 Marco and Variables NC300

(2) A Macro calls M code


Macro function M code number Remark
O9020 0~1000 Set M to 0 when not called by a macro
O9021 0~1000
O9022 0~1000
O9023 0~1000
O9024 0~1000
O9025 0~1000
O9026 0~1000
O9027 0~1000
O9028 0~1000
O9029 0~1000

Restrictions: In a macro program that uses a macro to call a G, M or T code, the parameter
M code is set as a general one and cannot call another macro.

(3) A Macro calls T code


Macro function T code number Remarks
O9000 0: disabled Set T to 0 when not called by a macro.
else : enabled The T code number is set to local variable #20

Restrictions: In a macro program that uses a macro to call G, M or T code, the parameter T
code is set as a general one and cannot call another macro.

Revision April, 2014 4-13


NC300 Chapter 4 Marco and Variables

Summary:
(1) Local variable: #1~#50 (for read and write)

(2) Global variable: #51~#250 (for read and write)

(3) System variable: #1601~#1800 (for power outage maintain)

(4) MLC logic output: #1801~#1832 MLC->NC (read only) at macro input point
M1024_32

(5) MLC data output: #1833~#1848 MLC->NC (read only) at macro input point
D1024_16

(6) MLC logic input: #1864~#1895 NC->MLC (write only) at macro output point
M2080_32

(7) MLC data input: #1896~#1911 NC->MLC (write only) at macro output point
D1336_16

Number Description Read write


#2000~2019 G code group ★
#2020 F code ★
#2021 H code ★
#2022 D code ★
#2023 T code ★
#2024 S code ★
#2100~2102 X~Z spindle mechanical coordinates ★
#2116~2118 X~Z spindle absolute coordinates ★
#2132~2134 X~Z spindle single node ending point coordinates ★
#2148~2150 X~Z spindle jumping mechanical coordinates ★
#2164~2166 X~Z spindle jumping absolute coordinates ★
#2180~2182 X~Z spindle relative coordinates ★
#2196~2198 X~Z spindle absolute coordinates for restart ★
#2212~2214 X~Z spindle offset coordinates for restart ★
#2300 Single node I ★
#2301 Single node J ★
#2302 Single node K ★
#2303 Spindle tool number ★
#2304 Timing after system power on ★

#3000 X spindle offset coordinates ★

4-14 Revision April, 2014


Chapter 4 Marco and Variables NC300

#3001~ X spindle workpiece coordinates G54~G59 ★


#3128 Y spindle offset coordinates ★
#3129~ Y spindle workpiece coordinates G54~G59 ★
#3256 Z spindle offset coordinates ★
#3257~ Z spindle workpiece coordinates G54~G59 ★
#5000~#5013 Latest used M codes (14 sets) ★
#5014~#5015 Latest used T codes (2 sets) ★
#5016 Search the latest S code again ★
#6000 System macro alarm ★
#6001~ Tool length ★ ★
#6501~ Tool radius ★ ★
#7001~ Wear in length ★ ★
#7501~ Wear in radius ★ ★
#8001~ Tool life span ★ ★

Revision April, 2014 4-15


NC300 Chapter 4 Marco and Variables

(This page is intentionally left blank.)

4-16 Revision April, 2014

You might also like