This document has been prepared in order to be used by OSAI. It describes the latest release of the
product.
OSAI reserves the right to modify and improve the product described by this document at any time
and without prior notice.
Actual application of this product is up to the user. In no event will OSAI be responsible or liable for
indirect or consequential damages that may result from installation or use of the equipment described
in this text.
abc
SUMMARY OF CHANGES
General
This publication is issued with reference to Software Release 6.1 (E69).
PAGEUPDATING TYPE
INDEXUpdated
CAP. 2
page 4Note on the use of Circular Interpolation added
page 6Examples of Circular Interpolation added
page 48-49Use of the bits in the MOV instruction extended
page 53Error bits in the Debug ODH variable extended
CAP. 3
page 5Notes on the use of the “h” address added
UPDATE
10 Series CNC Programming Manual
10 Series CNC Programming Manual (10)
abc
Preface
10 Series CNC Programming Manual
PREFACE
This manual describes the procedures used for writing part programs with the 10 Series CNC system.
It provides programmers with all the information they need for creating machine control programs.
REFERENCES
For further information:
• 10 Series CNC - AMP Software Characterization Manual
• 10 Series CNC - User Guide
The chapters in this manual are organised in sections. They describe the language elements
(commands and functions) used for managing a specific task, e.g. axis programming, tool
programming, probe management. Programming examples have been introduced in the command
description.
SUMMARY
1. Programming with 10 Series System
This chapter contains the general programming rules of the International Standards Organization
(ISO) standard. The chapter also provides an overview of the programming environment and a
summary of the most used codes.
2. Programming the Axes
This chapter describes axis programming. The G codes and extended commands involved in this
activity are provided with their characteristics. Several examples complete the command
description and give suggestions for programming the major types of movements.
3. Programming Tools and tool offsets
This chapter describes tool programming and provides the functions and instructions used in tool
operation.
10 Series CNC Programming Manual (08)1
Preface
10 Series CNC Programming Manual
4. Cutter Diameter Compensation
This chapter describes cutter compensation. T functions and G codes used in tool compensation
are provided with characteristics and several examples.
5. Programming the Spindle
This chapter describes spindle programming. The G codes and extended commands involved in
this activity are provided with their characteristics. Several examples complete the command
description and give hints for solving the main cases of spindle programming.
6. Miscellaneous Functions
This chapter describes miscellaneous functions and provides a list of M functions with their
meaning and characteristics.
7. Parametric Programming
This chapter deals with special programming applications that use local and system variables.
8. Canned Cycles
This chapter provides a description of the canned cycles available with the control. The G codes
and extended commands used in this activity are provided with their characteristics. Several
examples complete the command description.
9. Paramacros
This chapter describes how paramacros can be used in programs.
10. Probing Cycles
This chapter provides a description of the probing cycles available with the control. The G codes
and extended commands involved in probe management are provided complete with examples.
11. Managing the Screen
This chapter discusses the commands used to handle the system screen from a part programs.
Examples are given to complete the command description.
12. Modifying the Program Execution Sequence
This chapter contains the commands used for modifying the sequence of execution of a part
program. It describes commands for branching, repeating blocks and executing subprograms, as
well as commands for putting the part program on hold and releasing it.
13. High Speed Machining
This chapter describes the high-speed milling features on machine tools with 3 axes.
14. Multiprocess management commands
This chapter shows 10 Series CNC's multi process potentials.
210 Series CNC Programming Manual (08)
10 Series CNC Programming Manual
15. High level geometric programming (GTL)
This chapter discusses the set of programming instructions available with the GTL utility.
16. Working Cycles for Turning Systems
This chapter provides the instructions for programming macro-cycles of rough-shaping, threading
and groove cutting.
A. Characters and Commands
Appendix A provides a summary of all the characters allowed in the system and gives lists of G
codes, mathematical functions and extended commands.
B. Error Messages
Appendix B provides a list of all the error messages that can occur during programming..
C. Error management
Preface
10 Series CNC Programming Manual (08)3
Preface
10 Series CNC Programming Manual
COMMANDS
Commands are dealt with in the chapters that describe the specific task. A common structure has
been adopted in the command description. For each command, the following information is provided:
• Command name
• Command function
• Command syntax
• Parameters
• Characteristics and notes
• Examples
Where possible, examples consist of a portion of program and a diagram that shows how the
commands in that portion work.
Syntax conventions
Use these conventions with the commands:
SYMBOLMEANING
[ ]Brackets enclose optional entries. Do not enter the brackets.
{ }Braces enclose entries which may be repeated more than once. This could
also be described as a series of alternative entries, i.e. only one of these may be
entered. Alternative entries are separated by a (|). Do not enter the braces in
the command itself.
|A vertical bar separates alternative entries. Do not enter the bar.
Key-words are written in bold. They must be entered exactly as they are represented in the syntax
description.
Parameters that must be passed with commands are indicated by a mnemonic written in italics.
Appropriate values must be entered in place of the mnemonic. Leading zeros can be omitted. For
example, you can program G00 as G, G01 as G1.
Example:
(SCF,[value])
SCF, the comma and parenthesis are key-words and must be written as described. value is a
parameter name and must be replaced by an appropriate value. The brackets indicate that value is an
optional value.
410 Series CNC Programming Manual (08)
Preface
10 Series CNC Programming Manual
Warnings
For correct control operation, it is important to follow the information given in this manual. Take
particular care with topics bearing one of the mentions: WARNING, CAUTION or IMPORTANT, which
indicate the following types of information:
Draws attention to facts or circumstances that may cause damage to the
control, to the machine or to operators.
WARNING
Indicates information to be followed in order to avoid damage to equipment in
CAUTION
general.
IMPORTANT
Indicates information that must be followed carefully in order to ensure full
success of the application.
Terminology
Someterms appearing throughout the manual are explained below.
ControlRefers to the 10Series numerical control unit comprising front panel unit and
basic unit.
Front PanelIs the interface module between machine and operator; it has a monitor on which
messages are output and a keyboard to input the data. It is connected to the
basic unit.
Basic UnitIs the hardware-software unit handling all the machine functions. It is connected to
the front panel and to the machine tool.
10 Series CNC Programming Manual (08)5
Preface
10 Series CNC Programming Manual
END OF PREFACE
610 Series CNC Programming Manual (08)
10 Series CNC Programming Manual
INDEX
PROGRAMMING WITH 10 SERIES SYSTEMS
THE PROGRAM FILES.............................................................................................1-1
Program Components......................................................................................1-2
10 Series part programs are written with a specific language defined by the ISO standard. This
chapter describes the language elements and discusses programming techniques and rules.
THE PROGRAM FILES
The 10 Series part programs are stored in files which may be identified with 10 SERIES names or
with DOS names.
• 10 SERIES names are a maximum of 48 characters in length; they identify the programs stored in
the logic directories configured on the machine.
Logic directories are configured during the installation stage (PPDIR config - human interface
menu in AMP characterization).
• DOS names are a maximum of 8 characters in length, plus an extension and path where
applicable; they identify files resident in DOS type directories.
Mixed management of part programs is not allowed; in fact if a program is activated after being called
by a DOS type name, all it subroutines must be identified with DOS names.
Similarly, programs with 10 SERIES names can use only subroutines identified in the same way.
NOTE:
Part programs can also be resident on remote devices, defined in advance through the triliteral GDV
(see chap. 12).
10 Series CNC Programming Manual (08)1-1
Chapter 1
Programming with 10 Series Systems
Program Components
♦ Address
An address is a letter that identifies the type of instruction. For example, these are addresses:
G, X, Y, F
♦ Word
A word is an address followed by a numerical value. For example, these are words:
G1 X50.5 Z-3.15 F200 T1.1
When you assign a numeric value to a word, no zeroes must preceed or follow the value. Insert
decimal values after the decimal point.
♦ Block
A program block comprises a set of words that identify an operation or a series of operations to be
performed. The maximum length of a block is 126 characters.
A technological program is a sequence of blocks that describe a machining operation.
Each block must end with: <CR> <LF>.
Blocks
Blocks may include one or several fields.
When several fields are used in the same block, they must appear in the order shown in the following
table:
block
delete
/LABELNUMBER# or &ALL ALLOWED
♦ Comment blocks
It can be inserted in any position within the current block. Any character after ";" is considered as
a comment.
labelsequence
number
synchronisation
asynchronisation
words
codes
CHARACTERS
1-210 Series CNC Programming Manual (08)
Chapter 1
Programming with 10 Series Systems
♦ Block delete
The block delete field is optional. It allows the operator to choose whether to execute program
blocks that begin with the "/" character that are called slashed blocks.
Example:
/N100 G00 X100
The block shown in the example can be enabled or disabled using the PROGRAM SET UP
softkey, or typing the three-letter code DSB on the keyboard.
♦ Label
The label field is optional. It allows the programmer to assign a symbolic name to a block. A label
can have up to six alphanumeric characters which must be between quotes. In case of a slashed
block, the label must be inserted after the slash.
Example:
"START"
/"END"
When a label field is used in a 'GTO' command, the label defines the block that the control should
jump to.
♦ Sequence number
The "sequence number" field is optional. It allows the programmer to number each program block.
A sequence number begins with the letter N and is followed by up to six digits (N0-N999999).
The sequence number must appear in front of the first operand and after the label.
Example:
N125 X0
"START" N125 X0
"END" N125 X0
♦ Synchronisation/asynchronisation
Characters & and # are used to override the default synchronisation/asynchronisation status. For
further information on synchronisation, see "Synchronisation and Program Execution".
Example:
#(GTO,START, @PL1=1)
10 Series CNC Programming Manual (08)1-3
Chapter 1
Programming with 10 Series Systems
Block Types
Four types of blocks can be used in a part program:
• Comment blocks
• Motion blocks
• Assignment blocks
• Three-letter command blocks
• Comment blocks
A comment block allows the programmer to insert free sentences in the program. These
sentences may describe the function to be executed or provide other pieces of information that
make the program more understandable and documented.
A comment block does not produce messages for the operator. The control ignores a comment
block during execution of the program.
The first character of a comment block must be a semicolon (;). The rest of the comment block is
a sequence of alphanumeric characters. For example:
;THIS IS AN EXAMPLE OF COMMENT BLOCK
A comment can be inserted not only in a single block, but also in other types of blocks after the
character ";".All characters after a ; considered as a comment. For example:
G1 X100 Y50 ; Motion block
E1=10 ; Local variable E
(ROT,45) ; Rotation command
♦ Motion blocks
Motion blocks conform to ISO and ASCII standards for programming blocks. There is no particular
order for programming the components of a motion block.
Example:
G1 X500 Y20 F200
♦ Assignment blocks
Assignment blocks are used to write variables' values directly from the program. Several types of
assignments are possible as shown in the following table:
It is impossible to program coordinates in the +0.00001 range because 0.00001 is the minimum
value accepted by the control.
♦ R coordinate
In a circular interpolation (G02 G03) R represents the radius of the circle.
In a standard canned cycle (G81-G89), the R coordinate defines the initial position value and
retract value. This function is programmable in the following ranges:
It is impossible to program values in the +0.00001 range because 0.00001 is the minimum value
accepted by the control.
In a threading block (G33), the R coordinate represents the offset from the zero angular position of
the spindle for multi-start threads.
♦ I J coordinates
In circular interpolation (G02-G03), I and J specify the coordinates of the center of an arc. I
specifies the abscissa (typically X) and J the ordinate of the center (typically Y). I and J always
specify the center coordinates regardless of the active interpolation plane.
This function is programmable in the following ranges:
It is impossible to program values in the +0.00001 range because 0.00001 is the minimum value
accepted by the control.
When the values of the corresponding axis are expressed in diametrical units (according to the
configuration set in AMP), the values of the center coordinates (I and J) are also expressed in
diametrical units.
I and J coordinates are also used in the deep hole drilling cycle (G83).
In a threading block (G33), the I address defines the pitch variation for variable pitch threads:
I+Increasing pitch
I-Decreasing pitch
1-610 Series CNC Programming Manual (08)
Chapter 1
= F
Programming with 10 Series Systems
♦ K function
In the deep hole drilling cycle (G83), K defines the incremental value to be applied to the minimum
depth value (J) in order to reduce the initial pitch depth (I).
This function is programmable in the following ranges:
It is impossible to program values in the +0.00001 range because 0.00001 is the minimum value
accepted by the control.
In a threading block (G33) or a tapping cycle (G84), K defines the thread pitch. In helical
interpolation (G02-G03), K defines the helix pitch.
♦ F and t function
The F function defines the axes feedrate. This function is programmable in the following range:
+0.00001 +99999.99999mm/inch
In G94, F function defines the feedrate in millimetres per minute (G71) or inches per minute (G70).
A "t" value can be programmed in a block to specify the time in seconds needed to complete the
move defined in the block. In this case the block feedrate will be:
distance total
*
time
60
A "t" value is valid only in the block in which it is programmed.
In G93, the F function defines the inverse of the necessary time in minutes to complete the
movement:
= F
speed
(minutes)1/t =
distance total
The F function is mandatory in the blocks when G93 is active and only affects that block.
In G95, F specifies the axes feedrate in millimetres per revolution (G71) or inches per revolution of
the spindle (G70).
♦ a Function
The a function defines the acceleration to use on the part program block and may be programmed
in the range:
+0.00001 +99999.99999mm/sec
The a function is considered in mm/sec
2
or inches/sec
2
in presence of G71 and in inches/sec
2
2
in presence of
G70. This function is active only in the block it is programmed in and is in any case limited to the
acceleration on the profile as calculated by the system in function of the accelerations configured.
♦ M function
10 Series CNC Programming Manual (08)1-7
Chapter 1
Programming with 10 Series Systems
The M address can activate various machine operations. The programmable range goes from 0 to
999. See Chapter 6 for further information about these functions.
♦ S function
The S function specifies the spindle rotation speed. It is programmable in the following range:
+0.001999999.999rpm/fpm
In G97, the S function defines spindle rotation speed expressed in revolutions per minute.
In G96, the S function defines the cutting surface speed expressed in metres per minute (G71) or
feet per minute (G70). The above cutting speed remains constant on the surface.
Refer to Chapter 5 for further information about S function programming.
♦ T function
The T function defines the tool and tool offset needed for machining. It is programmable in the 0.0
to 999999999999.300 range. The 12 digits on the left of the decimal point represent the tool
identifier code and the three digits on the right represent the tool offset number.
Chapter 3 provides a detailed description of T functions.
M, S and T functions vary according to their characterisation in AMP.
IMPORTANT
From SW release 3.1 it is possible for the system to execute these functions
inside a continuous move (G27-G28).
When planning an application the manufacturer must:
• configure the desired function as "ALLOWED IN CONTINUOUS" in AMP.
• write a machine logic to handle such a function.
In turn, the programmer must remember that these functions produce different
effects depending on how they are programmed:
• in continuous mode a function configured as "ALLOWED IN CONTINUOUS"
will be executed in the sequence in which it has been programmed. In order
not to lock the program the function will be executed in "NO WAIT" mode.
• in point-to-point mode a function configured as "ALLOWED IN
CONTINUOUS" will be executed in standard mode.
♦ h functions
h functions permit to alter an offset during both continuous and point to point moves.
An h function must be programmed by itself in a block. Its value may range from 0 through 300
and may be either an integer or an E variable.
♦ G functions
G codes program machining preparatory functions for machining. The following section deal with
this codes.
1-810 Series CNC Programming Manual (08)
Chapter 1
Programming with 10 Series Systems
G Codes
This section shows how to write preparatory G codes in part program blocks. A preparatory G code is
identified by the G address followed by one or two digits (G00-G99). At present, only some of the 100
possible G codes are available.
Paramacro subroutines can be called with a three-digit G code. This class of G codes is described in
Chapter 9. Three-digit G codes are classified as follows:
G100 - G299Reserved
G300 - G599Non modal paramacro range
G600 - G998Modal paramacro range
G999Reset modal paramacro
The G code must be programmed after the sequence number (if defined) and before any other
operand in the block. For example:
N100 G01 X0 - operand
It is possible to program several G codes in the same block, provided they are compatible with each
other. The table that follows defines compatibility between G codes. Zero indicates that the G codes
are compatible and can be programmed in the same block; 1 means that the G codes are not
compatible and cannot be programmed in the same block without generating an error.