Codes Default 8000|8020|8050|8060|8164|8165|9140 8000|8020 ...
Programming Manual CNC Series PA 8000 - Autodesk...2010/09/01 · Programming Manual Page 1 1...
Transcript of Programming Manual CNC Series PA 8000 - Autodesk...2010/09/01 · Programming Manual Page 1 1...
Edition 11.01
Software Revision 1.9
Copyright PA
SUBJECT TO TECHNICAL MODIFICATIONS AND ERRORS
Programming Manual CNC Series
PA 8000
Programming Manual
Page I
Contents 1 Basics ..............................................................................................................................1
1.1 General......................................................................................................................1
1.2 Notes concerning terminology................................................................................1
1.2.1 Control Reset.......................................................................................................1
1.2.2 Dummy block.......................................................................................................2
1.2.3 Notes about error messages ...............................................................................3
1.3 Legal and disclaimer................................................................................................3
2 Function and structure of the NC - Program ................................................................4
2.1 Program structure ....................................................................................................4
2.2 Program number ......................................................................................................4
2.3 Program block ..........................................................................................................4
2.4 Program word...........................................................................................................6
2.5 Comments in NC programs.....................................................................................8
2.6 Block suppression ...................................................................................................9
2.7 Program repetition .................................................................................................10
2.8 Subroutines ............................................................................................................10
2.9 Externally creates produced NC-Programs .........................................................12
2.9.1 Format defaults..................................................................................................12
2.9.2 Checksum..........................................................................................................14
2.9.2.1 Block Checksums.................................................................................................... 15
2.9.2.2 Program checksum ................................................................................................. 15
2.9.2.3 Notes ....................................................................................................................... 15
3 Geometrical basics.......................................................................................................18
3.1 Coordinate systems ...............................................................................................18
3.1.1 General..............................................................................................................18
3.1.2 Axe designations ...............................................................................................19
3.1.3 Machine Coordinate systems ............................................................................21
3.1.4 Gantry axes .......................................................................................................23
3.1.5 Resetable rotational axis ...................................................................................23
Programming Manual
Page II
3.2 G53-G59 Part position offsets ...............................................................................24
3.2.1 Syntax................................................................................................................24
3.2.2 Application example...........................................................................................25
3.2.3 Programming .....................................................................................................27
3.2.4 Input of part position offsets...............................................................................28
3.3 G90, G91 Absolute / incremental dimension programming................................29
3.3.1 Absolute dimension input (G90) ........................................................................30
3.3.2 Incremental dimension input (G91)....................................................................31
4 Positioning instructions...............................................................................................32
4.1 Monitoring the axis travel limits............................................................................32
4.2 Linear interpolation................................................................................................33
4.2.1 G00 linear interpolation in rapid traverse ...........................................................33
4.2.2 G01 linear interpolation in the feed rate.............................................................37
4.3 Circular interpolation .............................................................................................39
4.3.1 G02, G03 circular interpolation with specified center point ................................39
4.3.2 G12, G13 circular interpolation with specified radius .........................................45
4.3.3 Helical interpolation ...........................................................................................49
4.4 G07 Tangential circular interpolation ...................................................................49
4.5 G05, G06 spline definition and spline interpolation 2D ......................................53
4.5.1 Spline definition .................................................................................................53
4.5.1.1 Splines with tangential transitions ........................................................................... 54
4.5.1.2 M70: Start of spline and end of spline with the curve 0........................................... 54
4.5.1.3 M71: Start of spline with tangential transition and end of spline with the curve 0 ... 55
4.5.1.4 M72:Start of spline with the curve 0 and end of spline with tangential transition .... 56
4.5.1.5 M73: Start of spline and end of spline with tangential ............................................. 56
4.5.2 Activation of spline interpolation ........................................................................57
4.5.3 Path velocity ......................................................................................................59
4.6 G78, G79 Tangential setting to the 2D path .........................................................60
4.6.1 Application examples.........................................................................................60
4.6.2 Glossary of terms...............................................................................................64
4.6.3 Programming .....................................................................................................64
4.6.3.1 Changing the angle offset with modally effective G78 ............................................ 65
Programming Manual
Page III
4.6.3.2 Behavior of the lead-in during a reversal of the motion direction ............................ 68
4.6.3.3 Programming G92 and G54-G59 with G78 active................................................... 71
4.6.3.4 Axis limits of the rotational axis for full .................................................................... 71
4.6.3.5 Programmable limit angle........................................................................................ 73
5 Technological instructions ..........................................................................................75
5.1 Influencing the feedrate.........................................................................................75
5.1.1 F word................................................................................................................75
5.1.2 G63, G66 Feed override ....................................................................................76
5.1.3 Programmable acceleration...............................................................................78
5.1.4 G72, G73 Interpolation with precision................................................................79
5.2 Spindle control .......................................................................................................81
5.2.1 S word ...............................................................................................................81
5.2.2 M03, M04 Spindle ON, clockwise or counter-clockwise.....................................82
5.2.3 M05 Spindle OFF...............................................................................................82
5.2.4 G63, G66 Spindle override ................................................................................82
5.2.5 G92 Spindle speed limitation .............................................................................84
5.2.6 Reversal of rotation at M19 "spindle orientation" ...............................................85
6 Tool functions ...............................................................................................................86
6.1 Tool compensation ................................................................................................86
6.1.1 Tool tip radius compensation.............................................................................86
6.1.1.1 Inputting tool tip radius compensations ................................................................... 87
6.1.1.2 Calling up tool tip radius compensation values ....................................................... 88
6.1.2 Tool length compensation..................................................................................89
6.1.2.1 Input of tool length compensation values ................................................................ 91
6.1.2.2 Calling up tool length............................................................................................... 93
6.2 G40-G44 Path compensations...............................................................................94
6.2.1 Necessity of path compensations ......................................................................94
6.2.2 Principle of the path compensation, intersection point.......................................97
6.2.3 Programming path compensations ....................................................................98
6.2.3.1 Approach behavior of the axes.............................................................................. 101
6.2.3.2 Retreat behavior of the axes ................................................................................. 106
6.2.3.3 Intermediate blocks ............................................................................................... 108
Programming Manual
Page IV
6.2.3.4 Angle cut off .......................................................................................................... 111
6.2.4 Path compensations at spline interpolation .....................................................112
6.2.5 Path velocity deviations ...................................................................................115
6.2.6 Special cases ..................................................................................................117
6.2.6.1 NC blocks without positioning information :........................................................... 117
6.2.6.2 Change of the compensation direction (change between G41 and G42) ............. 118
6.2.6.3 Sign change of the compensation value ............................................................... 121
6.2.6.4 Change of the size of the compensation value but with no sign change............... 123
6.2.7 Problem cases.................................................................................................125
6.2.7.1 Tool radius too large for an inside corner.............................................................. 125
6.2.7.2 Radius of the circle < compensation value (R < D) ............................................... 127
6.2.7.3 Full circle with radius compensation, external contour processing ....................... 129
6.2.7.4 Full circle with radius compensation G42, internal contour processing................. 132
6.2.7.5 Insufficient cutting.................................................................................................. 136
7 Geometric instructions...............................................................................................138
7.1 G92 Set axis value................................................................................................138
7.2 G70, G71 Programming in the metric format/ imperial format .........................141
7.3 G14-G16 Polar coordinate programming ...........................................................142
7.3.1 Major axis and minor axis ................................................................................144
7.3.2 Programming without pole point information....................................................144
7.3.3 Programming the pole point.............................................................................145
7.4 G17-G20 Plane selection .....................................................................................149
7.5 G24-G27 Programmable work field limitation....................................................152
7.6 G38, G39 Programmable mirror ..........................................................................155
7.7 G51, G52 Partrotation ..........................................................................................160
7.8 G50 Scaling...........................................................................................................163
7.9 G74 programmable homing.................................................................................166
7.10 M80 delete remaining path using probe function............................................167
8 Influencing the program.............................................................................................175
8.1 M00 program interruption (unconditional stop) ................................................175
8.2 M01 program interruption (conditional stop).....................................................175
8.3 M02, M30 End of program....................................................................................176
Programming Manual
Page V
8.4 G10, G11 Empty / fill dynamic block buffer........................................................177
8.4.1 Summary .........................................................................................................177
8.4.2 G10 Empty dynamic block buffer .....................................................................177
8.4.3 G11 Fill dynamic block buffer ..........................................................................178
8.5 G72, G73 interpolation with precision stop OFF or ON ....................................179
8.6 G08, G09 Look Ahead OFF / ON..........................................................................181
8.7 G86 Corner acceleration, contour accuracy ......................................................186
8.7.1 Corner acceleration: ........................................................................................186
8.7.2 Contour accuracy.............................................................................................190
8.8 G04 Dwell time......................................................................................................192
8.9 Auxiliary functions (BCDs) ..................................................................................193
9 Cycles ..........................................................................................................................194
9.1 Drilling cycles .......................................................................................................194
9.1.1 Introduction......................................................................................................194
9.1.2 Use of the drilling cycles ..................................................................................195
9.1.2.1 Allocation of the parameters.................................................................................. 195
9.1.2.2 Selection the desired drilling cycle ........................................................................ 196
9.1.2.3 Move to the drilling position in X and Y (once or repeatedly) ................................ 197
9.1.2.4 Deselection of the drilling cycle ............................................................................. 199
9.1.3 G80 Cancel the drilling cycle ...........................................................................199
9.1.4 G81 Drilling to final depth ................................................................................200
9.1.5 G82 spot facing with dwell time .......................................................................202
9.1.6 G83 Deep hole drilling .....................................................................................203
9.1.7 G84 Thread cutting with balanced chuck.........................................................205
9.1.8 G85 Reaming ..................................................................................................207
9.1.9 G86 Bore out ...................................................................................................209
9.1.10 G87 Reaming with measuring stop................................................................212
9.1.11 G88 Bore out with spindle halt .......................................................................214
9.1.12 G89 Bore out with intermediate halt...............................................................216
9.1.13 Example: Base plate......................................................................................218
9.2 Turning Cycles .....................................................................................................222
9.2.1 General............................................................................................................222
Programming Manual
Page VI
9.2.2 G271 Stock removal in turning ........................................................................222
9.2.2.1 Syntax ................................................................................................................... 222
9.2.2.2 Example ................................................................................................................ 223
9.2.2.3 Direction of allowance ........................................................................................... 225
9.2.2.4 Effective G-codes .................................................................................................. 225
9.2.3 G272 Stock removal in facing..........................................................................226
9.2.3.1 Syntax ................................................................................................................... 226
9.2.3.2 Example ................................................................................................................ 227
9.2.3.3 Direction of allowance ........................................................................................... 228
9.2.3.4 Effective G-codes .................................................................................................. 229
9.2.4 G270 Finishing Cycle.......................................................................................229
9.2.4.1 Syntax ................................................................................................................... 229
9.2.4.2 Example ................................................................................................................ 230
9.2.5 G274 End phase peck drilling cycle.................................................................231
9.2.5.1 Syntax ................................................................................................................... 231
9.2.5.2 Effective G-codes .................................................................................................. 232
9.2.6 G275 Outer diameter/internal diameter drilling cycle .......................................233
9.2.6.1 Syntax ................................................................................................................... 233
9.2.6.2 Effective G-codes .................................................................................................. 233
9.2.7 G276 Multiple thread cutting cycle...................................................................234
9.2.8 Error messages ...............................................................................................237
9.2.9 Part program display........................................................................................238
9.3 User Cycles...........................................................................................................239
9.3.1 Kinds of User G-Cycles ...................................................................................239
9.3.2 G- Code Working cycles ..................................................................................239
9.3.3 G-Code User Cycles........................................................................................241
9.3.4 User cycles with free define Code ...................................................................242
9.3.5 reserved cycle parameters ..............................................................................244
10 General cycle programming ....................................................................................245
10.1 Introduction ........................................................................................................245
10.1.1 Application .....................................................................................................245
10.1.2 Combining cycle blocks in a NC program ......................................................245
Programming Manual
Page VII
10.1.3 Comments .....................................................................................................247
10.1.4 Instructions ....................................................................................................247
10.2 Basic instructions ..............................................................................................249
10.2.1 Basic rules for the processing of instructions.................................................249
10.2.2 Numbers and variables..................................................................................251
10.2.3 Calculation operations and functions .............................................................253
10.2.4 Use of P-parameters......................................................................................260
10.2.5 Use of CNC parameters ................................................................................262
10.2.6 Conditional instructions and jump instructions...............................................269
10.2.6.1 IF question........................................................................................................... 269
10.2.6.2 DO Instruction ..................................................................................................... 271
10.2.6.3 Jumps.................................................................................................................. 271
10.2.6.4 Loops................................................................................................................... 273
10.2.7 Possible errors...............................................................................................274
10.3 Memory edit instructions...................................................................................277
10.3.1 General notes ................................................................................................277
10.3.2 Instructions for editing the memory................................................................277
10.3.3 CPY Copy instruction.....................................................................................278
10.3.4 DEL Delete instruction ...................................................................................280
10.3.5 EDT EDIT-instruction.....................................................................................283
10.3.6 MMON MMOF Memory selection Memory deselection .................................287
10.3.7 NCON NCOF CNC selection CNC deselection .............................................289
10.3.8 SEL Selection ................................................................................................291
10.3.9 SEL: nn.........................................................................................................292
11 Program optimization ...............................................................................................295
11.1 Hints for rational program creation ..................................................................295
11.1.1 Subroutines ...................................................................................................295
11.1.2 Modally effective instructions.........................................................................295
11.1.3 Value allocation to NC addresses using parameters .....................................295
11.1.4 Rapid traverse using F word..........................................................................296
11.2 Hints for processing programs.........................................................................296
11.2.1 Look Ahead ...................................................................................................296
Programming Manual
Page VIII
11.2.2 Programmable acceleration at Look Ahead...................................................297
11.2.3 Activation of special functions using a subroutine .........................................297
11.3 Hints for avoiding errors ...................................................................................298
11.3.1 Protection of subroutines against being called up as main program..............298
11.3.2 Functions, which are not automatically reset at the program end..................298
11.3.3 Circular interpolation......................................................................................298
11.3.4 Avoid dummy blocks at subroutine call up.....................................................299
11.3.5 Avoid dummy blocks at the subroutine end ...................................................299
11.3.6 Avoid dummy blocks at path compensation...................................................300
11.3.7 Collision free movement ................................................................................302
11.3.8 Contour accuracy (G86) ................................................................................302
Appendix 1 Table of G-Functions.................................................................................303
Appendix 2 Table of M-Functions ................................................................................306
Programming Manual
Page 1
1 Basics
1.1 General
In the available PA 8000-Programming manual you find detailed information to
you for the programming of the entire function range of the PA 8000.
Note:
• These instructions cover the maximum extent of the PA 8000's functions.
• At their PA 8000 naturally only the functions are to you at the disposal, with
which their PA 8000 - version is equipped.
• Apart from that, various factory preset data (setup data) can have been
changed by the machine manufacturer and can thus have values which
deviate from those given in this manual. For further information about the
values set by the machine manufacturer and about the interaction of the
PA 8000 with your particular machine tool please see the documentation of
the machine tool manufacturer.
1.2 Notes concerning terminology
In the following paragraphs some important terms are explained. It is required
that these words are known for the understanding of the documentation of the
PA 8000. To be able to operate efficiently with this programming manual it is
recommendable to read through the following explanations of terms.
1.2.1 Control Reset
CONTROL RESET is the state of the PA 8000:
• after turning on
• after execution of the instruction M30 or M02 in a main program
Programming Manual
Page 2
• after inputting:
Alt M: AUTOmatic --> F3: Program Process2-- > F6: Initial State
OR
CTRL-C on the keyboard of the keyboard module (i.e. hold the CTRL-
key down and additionally press the C-key)
OR CTRL-RESET on the operator module of the PA 8000 on the right of
the screen (i.e. hold the CTRL-key down and additionally press the
RESET-key)
In the control reset state of the PA 8000 the preset G-codes are active. Which
G-codes are active, can be determined by the machine tool manufacturer. For
further information about this please see the machine tool manufacturer's
documentation.
If control reset is selected as described under the 4th point, the program
execution as well as axis travel movements are interrupted.
1.2.2 Dummy block
The term dummy block refers to an NC block, which contains no movement
information in the active plane.
Dummy blocks are necessary for technical reasons at some positions in a
program, e.g. it is not allowed, to program two G74-blocks in direct succession;
they must be separated by a dummy block. It is recommendable, to use G04-
blocks, programmed without dwell time, as dummy blocks.
Example : ...
N20 G74 Z1 Homing Z-axis
N30 G4 Dummy block
Programming Manual
Page 3
N40 G74 X1 Y1 Homing X-axis and Y-axis
...
1.2.3 Notes about error messages
The PA 8000-programming manual also contains notes about the error
messages output by the PA 8000. In these notes the error messages are
identified by a number. Thus for example it is indicated if M02 or M30 is
missing at the end of the program by displaying the error message 32.
The actual error text relevant to the message is displayed in the state line of
the PA 8000 MMI.
1.3 Legal and disclaimer
The information in this manual has been carefully checked and is believed to
be accurate. However, PA assumes no responsibility for any inaccuracies that
may be contained in this manual. In no event will PA be liable for direct,
indirect, special, exemplary, incidental, or consequential damages resulting
from any defect or omission in this manual. In the interest of continued product
development, PA reserves the right to make improvements in this manual and
the products it describes at any time, without notice or obligation.
If you have any questions or improvement suggestions or meet problems,
which are not covered in the PA 8000-documentation, please contact our
technical support:
Power Automation AG
Gottlieb - Daimler - Strasse 17
D-74385 Pleidelsheim
e-mail: [email protected]
Programming Manual
Page 4
2 Function and structure of the NC - Program
2.1 Program structure
An NC program (part program) is a sequence of processing steps and is
divided into program blocks. It contains the information, which the machine
tool requires to perform the desired process.
2.2 Program number
The program number standard is limited to a maximum of 6 digits. The
software does not distinguish between main and subprograms.
Optional can be work with 16 digits program numbers. To setup the correct
number of digits for CNC operation it’s necessary to set up:
Set the machine parameters: CharacterApplTab[P].metricDigits
CharacterApplTab[P].inchDigits
CharacterApplTab[Q].metricDigits
CharacterApplTab[Q].inchDigits
must be set to required number of digits .
To enable the MMI, to display large program numbers, you will have to change:
• SETUP, F3 MMI Setup, F4 Data Type Filenames to the required size for NC
program filenames. (????????????????)
2.3 Program block
The individual lines of an NC program are called program blocks. A program
block is usually understood as the smallest work step that can be taken when
processing a workpiece.
Programming Manual
Page 5
It is made up of at least a block number and is ended with a block end
character. The maximum length of a program block is 128 characters (including
block end character and checksum (see below)). The linefeed character (0AH)
is used internally as a block end character in the PA 8000.
A block number is placed at the beginning of any NC block. This is made up of
the address character N and a maximum of four digits. Leading zeros can be
omitted.
To allow editing of a program, generally a sequential numbering of the NC
blocks with rising block numbers is necessary. Using the block numbers it can
thus easily be ascertained, if a required NC block is to be found in the program
before or after the currently displayed block.
To allow additional program blocks to be inserted into the program at a later
date without large effort, it is recommendable to program the block numbers in
steps of ten.
Example : N10 G90
N20 G1 X50 Y20 F3000 M5 S1000
N30 X15
N40 Y-20 M3
N50 G4 F1000
N60 M30
When inputting the program into the PA 8000 a block number must be placed
before each NC block. Blocks without block number are rejected. The NC
blocks being input into the PA 8000 are automatically sorted according to
block numbers, i.e. the NC block with the lowest block number appears at the
beginning of the program and the one with the highest number at the end.
Programming Manual
Page 6
The program blocks are processed in the sequence in which they were stored.
For NC programs, which were entered directly into the PA 8000, this sequence
corresponds to processing according rising block numbers, with programs
which have been externally created and then were read into the PA 8000 the
latter does not necessarily have to be the case, since when programs are
loaded it is not checked if the block numbering is rising.
NC blocks without block numbers can neither be read in nor entered
2.4 Program word
The individual information in a program block is called a program word. A
program word contains program technical, geometrical or technological
information and is made up of an address letter and a sequence of digits with
or a without sign (Address format according to DIN 66025 part 1).
The sequence of the program words in a block is arbitrary apart from the block
number, which must always be positioned at the beginning of the block.
The address letter designates the type of program word. Each address letter
must only be programmed once per NC block. If the same address letter is
programmed several times in a block during program input into the PA 8000,
the program block is rejected; the error message 5 appears. If the same
address letter appears repeatedly in a block from an externally created
program, which is read into the PA 8000, the last one that is read in be-comes
effective.
The sequence of digits of a word is an integer or a number, which consists of
an integer value and a decimal fraction, which can also be zero. The decimal is
separated from the integer by a point, a comma is not admissible.
Programming Manual
Page 7
Signs are programmed between address letter and sequence of digits. Positive
signs, leading zeros and non significant zeros after the decimal point do not
need to be programmed. If the decimal point is not followed by any significant
digits then the decimal point itself can also be omitted.
Examples : G1 instead of: G01
M1 instead of: M01
X1234.5 instead of: X+1234.500
Y12 instead of: Y+12.00
Z-25.4 instead of: Z-0025.4
The decimal point is automatically set in the display.
In general, program words can be with instructions or additional conditions.
Through the instruction (e.g. G- or M-Codes) a process is prepared or
triggered in the machine tool or the control. With the additional conditions the
instructions are described more exactly, e.g. by specification of the destination
coordinates for a positioning instruction.
Program words can be distinguished as either modal i.e. retentive or non
modal. Modal program words are active in all following program blocks until
they are overridden or overwritten by an instruction or additional condition
which cancels them. Non modal program words are only active in the block in
which they are programmed. Modal instructions must therefore only be
programmed, when they are changing or when they are additionally
necessary. Only non modal instructions have to be programmed in each block
in which they are necessary.
Instructions are organized into instruction groups. In any one group all those
instructions are summed up, from which only one can be in effect at a time.
Programming Manual
Page 8
Note:
• Lower case letters and German umlauts may only occur within a comment;
special characters (tabulators or similar) are not allowed. All program words
must contain capital letters only!
2.5 Comments in NC programs
NC blocks for the PA 8000 can contain comments. These can be included at
any position in the NC block. They have no effect on the processing of the NC
block. The comment is enclosed in brackets.
Example : ...
N20 G1 X0 Y0 Z0 (move to zero point)
...
A comment thus included in the NC block is displayed in the block display
during processing but is otherwise completely ignored by the PA 8000.
There are however two particular forms of comment which can be used to
output notes in a simple way for the operator in the state line of the PA 8000:
...(MSG,Text)...
...(*MSG,Text)...
In the first case the text between the comma and the closing bracket together
with the icon (symbol) for notes is displayed in the state line of the PA 8000
during the processing of the NC block and is cleared again when the next block
is processed. In the second case the text remains displayed in the state line,
until it is either explicitly confirmed or the end of the main program is reached.
Programming Manual
Page 9
Note :
• In cycle blocks comments of the form ... /Text... can additionally be used.
Here all characters between the slash and the block end are treated as a
comment
2.6 Block suppression
By placing a slash (block slash code) before a block it can be marked as so-
called "ignored block". If F10: AUTOMATIC --> F3: Execute program 2 --> F1: (/) Ignore block is selected, then ignored blocks are skipped by the control
during the program execution. When F1:(/)Ignore block is not selected they
are processed like ordinary NC blocks. "Ignoring" of cycle blocks is not possible
in this way.
Example : N10 G0 X0 Y0
/ N20 G1 X2000 Y300 Is not executed when ignore block read over is
selected.
N30 G1 X4000
Application : The processing of a family of parts is described in an NC program for instance.
All machining operations which are required for the version A, but are not to be
executed for the version B, can be preceded by a slash (/). After selection of
F10: AUTOMATIC --> F3: Execute program 2 --> F1: (/) Ignore block the
blocks marked by a slash are not considered.
Programming Manual
Page 10
Note : If F10: AUTOMATIC --> F3: Execute program 2 --> F1: (/) Ignore block is
selected, after an ignored block has already been preprocessed and is waiting
in the dynamic block buffer, then it is not ignored, even if this block has not yet
been reached in the actual program execution.
2.7 Program repetition
Program repetitions are programmed with an L-code in the last block along with
the instructions M30 or M02:
Example : N... L5 M30 The program is repeated 5 times, i.e. it is executed 6 times
altogether.
Repetition calls in the last block of a subroutine are ignored (see subroutines).
At the end of a subroutine the instructions M02 and M30 cause a jump back to
the main program from which the subroutine was called. At the end of a main
program the instructions M02 and M30 initiate CONTROL RESET.
2.8 Subroutines
Subroutine calls are programmed by entering Q followed by the program
number of an NC program already available in the PA 8000. The subroutine
call causes the first block of the selected subroutine to be processed as next
NC block.
It is to be considered here, that a program repetition calls in the last block of a
subroutine are ignored. They have to be programmed, together with L, in the
calling program, in the same line in which Q was entered, followed by the
number of subroutine runs required.
Programming Manual
Page 11
Example : N... Q100 L5 The program with the number 100 is called as a subroutine
and executed 6 times altogether
Otherwise no difference exists between NC main programs and NC sub
routines.
Further subroutines can be called within subroutines. The nesting depth is
limited to 4 times. i.e. one main program plane and four subroutine levels can
be programmed altogether.
Main program
...
N30 X10 Y10
Subroutines
P100
N10...
Subroutines
P200
N10...
Subroutines
P300
N10...
Subroutines
P400
N40 Q100 N20 Q200
N30 ...
N40 M30
N20 Q300
N30 ...
N40 M30
N20 Q400
N30 ...
N40 M30
N10...
N20 ...
N30 ...
N40 M30
...
M30
Note:
• No M30 or M02-code may be positioned in a block with a subroutine call,
since in such blocks subroutine calls are ignored.
• Subroutines must not start with a cycle block!
Programming Manual
Page 12
2.9 Externally creates produced NC-Programs
2.9.1 Format defaults
NC-Program, those to be externally creates must fulfill the following format
specifications:
• The first program line must contain the ASCII-code for a line feed (Linefeed
<lf>). Special characters and spaces (blanks) are not admissible in the first
line of the program.
• The second program line must begin with the percent character followed
by the ASCII-code for a line feed. Special characters or spaces are not
admissible.
• The third program line must begin with the program number, consisting of
the address letter P and a number of digits, maximum 6 (16 digits optional),
and end with the ASCII-code for a line feed. In this line a station identifier
enclosed in brackets can also be contained (e.g. PST 01, see example
below).
• The following program lines must begin with a block number consisting of
the address letter N and a number of digits, maximum 4 digits and end with
the respective ASCII-code for a line feed. Spaces (blanks) are admissible in
NC blocks; however, they are deleted upon loading, when they are not
contained in comments or cycle blocks.
• The last program block must start with a block number, must contain the
instruction M02 or M30 and must end with the ASCII-code for a line feed.
Programming Manual
Page 13
Note :
• In all program lines the combination of line feed and carriage return (<cr>
<lf>) can also be used instead of line feed (<lf>). Furthermore, the
combination <lf> <cr> can also be preset as an admissible block end
character.
• Only the line feed character (<lf>) is used internally in the PA 8000 as block
end character. Any carriage return characters (<cr>) are ignored during
loading from external data carriers. However, during output to external data
carriers (depending on default setting) <lf>, <cr> <lf> or <lf> <cr> are
generated as block end characters.
• The maximum block length is 128 characters including checksum (3
characters) and the (internally exclusively used) block end character <lf>.
Thus in general only 124 characters in each block are available.
NC blocks may begin as follows:
N... normal NC block
/N... ignored block (see block suppression)
*N... Cycle block (see General cycle programming)
Note:
• A NC block must not begin with:
/*N...
Programming Manual
Page 14
The loading format to be followed can be shown schematically as follows:
<lf> (<cr>)
% <lf> (<cr>)
P...... (PST01) <lf> (<cr>)
N....<lf> (<cr>)
N....<lf> (<cr>)
...
N....M02/M30 <lf> (<cr>)
Symbols used : <lf> ASCII-code for line feed (Linefeed)
<cr> ASCII-code for carriage return
P...... Program number, 6 digits maximum (16 optional)
N.... Block number, 6 digits maximum
PST01 Station identifier
2.9.2 Checksum
For the recognition of data loss during program transfer and storage, NC
programs for the PA 8000 can be provided with a checksum
The checksum's provide a method of checking NC programs for data losses
during program transfer and saving. There are basically two types to
distinguish between: the block checksum's and the program checksum.
Programming Manual
Page 15
2.9.2.1 Block Checksums
Hexadecimal ASCII-codes are created from all the characters of an NC block
apart from the two characters which form the checksum itself, but including the
@ character and the <lf>. These codes are added up. The last two digits of the
sum are put directly before the <lf> of each block as a block checksum. When
calculating the sum, spaces (blanks) in DIN-NC-blocks are only included if they
occur within a comment or in a cycle block.
Example : N10X10@DD<lf>
2.9.2.2 Program checksum
The program checksum is determined as follows:
The hexadecimal ASCII-codes of all characters of the program including the
<lf>, the @ and the characters of the block checksum's are added together.
The dummy program checksum (@00) at the beginning of the program is not
considered. The last two digits of the sum are put at the end of the program as
the program checksum.
Example : N10 . . .
N20 . . .
. . .
N120 N120 M30@DB<lf>@A9
2.9.2.3 Notes
Fundamentally NC programs can be read in with and without checksum's.
When loading NC programs without checksum, a checksum is created for
storage in the control.
Programming Manual
Page 16
After a program was edited in the operating mode "DATA" the program
checksum is checked. The block checksum's are also checked if an error is
found. If an error occurs, it is only possible to exit the block display after the
block containing the error has been deleted or changed.
After changing a block which contained an error the checksum for this block is
recalculated. If the block checksum's of the remaining blocks are correct, it is
possible to exit the block display again; the program checksum is recalculated.
During the execution of a program the checksum of each individual NC block is
checked.
Example : @00 N10 X1.25 Y2 F5000 @03 <lf>
N20 X0 Y0 @61 <lf>
N30 M30 @AB <lf>
(The blanks were inserted in this example for clarity, they are not stored in the
program and remain unconsidered during calculation of the checksum's).
When creating an NC program the program checksum is entered first of all at
the beginning of the program as a dummy (@00). After completion of the
program it is calculated and moved to the end of the program. The ASCII-
characters of the program checksum itself are not considered during the
calculation of block and program checksum's.
The format additionally includes:
• the character combination @ 00 at the beginning of the first block;
• the character @ together with a two-digit ASCII-coded block checksum
before the <lf> character of each block;
• the character @ together with a two-digit ASCII-coded program checksum
at the end of the program.
Programming Manual
Page 17
• Thus the following loading format is valid for programs with checksum:
<lf> (<cr>)
% <lf> (<cr>)
P...... (PST01) <lf> (<cr>)
@00N....... @ss <lf> (<cr>)
N....... @ss <lf> (<cr>)
...
N.... M02/M30 @ss <lf> (<cr>)
@pp
Symbols used: ss Block checksum
pp Program checksum
Programming Manual
Page 18
3 Geometrical basics
3.1 Coordinate systems
3.1.1 General
There are two types of axis, feed axes (linear axes) and rotatable axes. Their
arrangement and direction are standardized in DIN 66217. There are three
basic feed axes. These are designated X, Y and Z. Their position relative to
each other can be determined with the help of the right-hand rule:
Determination of the position of the three basic feed axes using the right-hand
rule
According to DIN 66217 the Z axis for a machine tool corresponds to, or runs
parallel to, the axis of the work spindle.
The main axis in the positioning plane is designated as the X axis. It runs
parallel to the workpiece table, and preferably horizontal.
Programming Manual
Page 19
3.1.2 Axe designations
The position of the Y axis results from the position of the Z and X axis in the
three axis coordinate system.
Feed axes, which are available in addition to the basic feed axes X, Y and Z,
are usually designated with the letters U, V and W. Their position and direction
is to be taken from the following diagram.
The rotatable axes are designated by the letters A, B and C. Whereby the A
axis is the rotatable axis around the feed axis X, the B axis is the rotatable axis
around the feed axis Y and the C axis is the rotatable axis around the feed axis
Z.
All planes are to be considered in the negative direction of the axis which is
positioned perpendicular on it (e.g. when determining the rotation direction in
connection with the instructions G02 and G03).
Programming Manual
Page 20
The rotation direction of the rotatable axes is counter clockwise
(mathematically positive), when viewed in the negative direction of the axis,
about which the rotation is made.
Programming Manual
Page 21
3.1.3 Machine Coordinate systems
With a vertical Z axis on single column machines, the positive X axis runs
towards the right (viewed from the main spindle towards the column).
With a vertical Z axis, on twin column machines, the positive X axis runs
towards the right (viewed from the main spindle towards the left column).
With a horizontal Z axis the positive X axis runs towards the right (viewed from
the main spindle towards the workpiece).
Programming Manual
Page 22
Programming Manual
Page 23
3.1.4 Gantry axes
In the PA 8000 one or several axes can be preset as gantry axes. A gantry axis
is always moved synchronous to another axis (leading axis). This is necessary,
for example, on gantry machines where the gantry must be positioned by
means of two linear axes without tilt.
A gantry axis can not be programmed independently, although it is displayed
on the user interface of the PA 8000, its travel movements result from the travel
movements of the leading axis.
3.1.5 Resetable rotational axis
In principle a rotational axis can be positioned "into infinity", since its position is
repeated after every revolution i.e. after each 360°. However, since the
numerical range for the representation of the position is limited, the axes
therefore also have a finite travel range with axis limits which must not be
violated.
For many applications however, only the relative position of the axis between 0
and 360° is required, so that positions which vary by complete revolutions can
be considered as having the same value. A resetting of the position into the
range from 0 to 360° can be undertaken for rotational axes which are
correspondingly preset as "Resettable rotational axis". This is done by
programming G92 (zero position offset).
Programming: Given that for each revolution of the rotational axis 360 000 increments are
preset. According to the programming of A730, the rotational axis is moved to
the position 730°, i.e. 2 complete revolutions plus 10°. After programming G92
AO the position is set to 0, whereby the actual angular position is internally
saved.
Programming Manual
Page 24
If the programming of G92 at the end does not include any axis information, the
position is set to the actual angular position (10). Thus the information about
the two complete revolutions is lost and the position of the rotational axis is
reduced to the actual angular position (between 0 and 360°).
With a resettable rotational axis a violation of the axis limit can therefore be
avoided if the position is reduced in time. In addition, this avoids those rounding
errors which occur with long travel paths and those which are caused by the
lower resolution of the position representation at the edges of the travel range.
Note:
• At "Delete remaining path" no automatic reduction of a position to the
range 0 - 360° is made.
3.2 G53-G59 Part position offsets
The instructions G54 to G59 are used for setting part position offsets. Part
position offsets are cancelled with the instruction G53.
3.2.1 Syntax
G53 Cancel part position offsets
G54/55/.../59... Activate part position offsets
Programming Manual
Page 25
3.2.2 Application example
Explanation of the figure:
Clamped in the chuck in figure are two identical workpieces which are to obtain
the same finished contour. To avoid the necessity of programming two program
parts with different coordinates for the two workpieces, part position offsets are
carried out in the NC program.
The zero point G54 is positioned at the lower left corner of workpiece 1. Zero
point G55 is positioned at the lower left corner of workpiece 2.
The relationship of the coordinates of workpiece 1 to the zero point G54 is now
exactly the same as the relationship of the coordinates of workpiece 2 to zero
point G55. This way the positioning instructions for the first workpiece can then
also be used for the second workpiece.
Programming Manual
Page 26
Location and selection of the zero points:
The programmer enters the location of the workpiece zero points, which he
used when writing the NC program, into the set up sheet. The control is
informed of the location of the pallet zero point in relation to the zero point G53
when arranging the machine.
The location of the zero points specified by the programmer (G54 to G59
maximum) in relation to the pallet zero point is read in into the PA 8000 or
entered (see operating manual). In the example above it is advisable to
position the pallet zero point at the lower left-hand corner of the pallet.
This gives the following advantage:
After the two workpieces are clamped on the pallet, the location of the
workpiece zero points (here: G54,G55) can be determined in relation to the
pallet zero point. When arranging the machine, only the location of the pallet
zero point in relation to the machine zero point needs to be determined and
input to the control. This is done in the operating mode "DATA". In this mode,
one offset value can be entered for each axis in reference to the pallet zero
point, when arranging the machine tool for the part position offsets G54 to G59.
If the workpieces are processed on a pallet with the same set-up on several
machine tools, the location of the workpiece zero points in relation to the pallet
zero point remains the same respectively. This again has the advantage, that
also to carry out further processing on other machine tools only the location of
the pallet zero point in relation to the respective machine zero point needs to
be determined and input to the control.
Programming Manual
Page 27
3.2.3 Programming
At CONTROL RESET the zero point G53 is active. Part position offsets (G54-
G59) are disabled by programming of G53.
Six different part position offsets can be programmed in an NC program with
the instructions G54 to G59.
If one of the instructions G54 to G59 is programmed, the corresponding part
position offset is only prepared, i.e. still no axes are positioned. The offset
values entered in the operating mode "DATA" when arranging the machine tool
only become active, when coordinates are programmed after the programming
of a part position offset with G54 to G59.
When programming circles the destination point must be programmed by giving
both coordinates values if a part position offset is control both axes.
If a further part position offset (e.g. G55) is programmed in the NC program
after a part position offset (e.g. G54), the offset values entered for this second
part position offset G55 again relate to the zero point specified with G92 or to
zero point G53, and not to the first part position offset G54.
Example : N10 G1 X0 Y0 Z0 F1000 Move to the starting point, G53 active
N20 G54 Setting the workpiece zero point G54 (In the
following text it is assumed, that for G54 the offset
values X10, Y20, Z15 with reference to G53 were
entered in the operating mode "DATA".)
N30 X10 Y10 The offset values for the X and the Y axis become
active, i.e. a move is made to the position X20,
Y30 in reference to G53 or G92.
Programming Manual
Page 28
N40 Z10 The offset value for the Z axis becomes active,
i.e. it will be moved to the position Z25.
N50 G53 G54 is disabled, G53 is reselected, no axis travel
movement
N60 M30 Program end
3.2.4 Input of part position offsets
Values can be assigned in three ways to the part position offsets which can be
called up with G54 to G59:
Manually : Proceed as follows:
1. In the operating mode "DATA", select F1:Data selection --> F5:Zerooffset
G.
2. Activate the field zero point compensation by clicking onto it, in case it is
not already active. (In the active state it appears inversely highlighted.)
3. Click onto the OK field press the OK key or the RETURN key.
4. Select F5:Modify.
5. Click onto the line of the part position offset to which you would like to
assign values. (The line now appears in the input window where you can
delete previous values with the BACKSPACE key and enter new values.)
6. Click onto the OK field, press the OK key or the RETURN key.
7. Using this method your values for the part position offset are transferred
into the zero point compensation value memory of the PA 8000 and
displayed in the upper window on the monitor.
By allocation in a cycle block : (see General cycle programming)
By loading a file, which contains the required values
Programming Manual
Page 29
In this case the following file format must be observed:
<lf>
% <lf>
GTABXX <lf> Number of the part position offset table
G54X=+00000.000 Y=+00000.000 ...
...
G59X=+00000.000 Y=+00000.000 ...
<ETX>
Note :
• < cr > < lf > can also be used instead of < lf >.
• The file end character (< ETX > =03H in the above mentioned example) can
be preset
• xx is a two digit table number
3.3 G90, G91 Absolute / incremental dimension programming
Syntax: G90.... Absolute dimension programming
G91.... Incremental dimension programming
With the instructions G90 and G91 a changeover is made between absolute dimension programming (reference dimension input, G90) and
incremental programming (incremental dimension input, G91). If no
changes were made by the machine tool manufacturer, at CONTROL RESET
the instruction G90 is active.
Programming Manual
Page 30
3.3.1 Absolute dimension input (G90)
All entered coordinate values of the axes relate to the coordinate zero point.
The values can be entered with negative sign.
Program: N10 G0 X0 Y0 G90
N20 G1 X20 F500
N30 Y20
N40 X70
N50 Y0
N60 X100
N70 Y40
N80 X70 Y70
N90 X0
N100 Y0 M30
Programming Manual
Page 31
3.3.2 Incremental dimension input (G91)
The input of the coordinate values in the incremental dimension is programmed
with the instruction G91. With incremental programming each measure
statement relates to the position arrived at before. Incremental dimensions are
therefore distance measures between adjacent points, they indicate the motion
paths of the axes. The sign determines the motion direction.
Program: N10 G0 X0 Y0 G91
N20 G1 X20 F500
N30 Y20
N40 X50
N50 Y-20
N60 X30
N70 Y40
N80 X-30 Y30
N90 X-70
N100 Y-70 M30
Programming Manual
Page 32
4 Positioning instructions
4.1 Monitoring the axis travel limits
The limit values for the axis travel movements can be preset. During
processing of the NC blocks the system monitors "look ahead", that these
preset axis travel limits are not exceeded. This is true for all interpolation types,
with real-time processes and active transformations, however, only for the
programmed end positions.
If the "look ahead" monitoring function recognizes that the axis travel limits are
exceeded, then:
• the error message 211 is output
• the NC block which causes the infringement is displayed
• program execution is stopped before this block, which causes the
infringement, is processed.
The error can then be corrected by editing the NC block which causes the
infringement.
If on the other hand a violation of the axis travel limits is recognized in real-
time, then in all cases an error message is displayed. The further reaction of
the system is however different and is described in the following text in
connection with the function with which it can occur.
Using the function "Programmable work field limitation" the axis travel limits
can be reduced, thus further restricting the work field.
Programming Manual
Page 33
4.2 Linear interpolation
4.2.1 G00 linear interpolation in rapid traverse
Syntax: G0 X... Y... ...
With the modal program word G00 the rapid traverse statement is called. The
rapid traverse statement causes that the tool with max. rate is driven to the
destination. The destination is to be input as additional condition.
Application : The rapid traverse instruction is mainly used for positioning the tools. During
positioning the tool is not in operation.
The rapid traverse instruction can also be used however also to move a tool
which is in operation with maximum velocity to its destination. For this
purpose however the instruction "linear interpolation in the feed rate" (G01)
with a correspondingly high feed rate should be used for safety reasons.
G00 when turning :
Programming Manual
Page 34
G00 when milling:
The motion path taken by the tool under the rapid traverse instruction G00 is a
direct connecting line between the starting position, at which the rapid traverse
instruction is selected, and the destination, whose coordinates are input as
additional conditions. Therefore not all of the axes are necessarily positioned
with maximum velocity.
Example : (Starting position : X = 250, Y = 200, Z = 250)
N10 G90
N20 G0 X50 Y80 Z100 Move to the point X50 Y80 Z100 in rapid
traverse,
N30 Z20 and then move to Z20 in rapid traverse
Programming Manual
Page 35
Either absolute or incremental dimension inputs are possible:
Programming Manual
Page 36
Programming Manual
Page 37
4.2.2 G01 linear interpolation in the feed rate
Syntax: G1 X... Y... F... ...
The instruction linear interpolation (straight line interpolation) in the feed
rate is selected using the program word G01. The following are possible or
necessary as additional conditions:
• the destination coordinates
• the feed rate
• the speed of rotation or cutting speed
The instruction G01 causes the tool to be positioned in a straight line to the
indicated destination point with the feed rate which was specified as an
additional condition or was already programmed. (Feed rate, speed of rotation
and cutting speed are all modally effective).
Programming Manual
Page 38
All axes programmed in the block are positioned simultaneously. The tool
motion path can be either an axis parallel or a non axis parallel straight line
G01 when turning:
G01 when milling:
Example : (Starting position : X = 50, Y = 60, Z = 40)
N10 G90
N20 G1 X80 Y80 Z20 F40 S100
Destination point Feed rate
40mm/min
Speed of rotation
100 Revs/min
Programming Manual
Page 39
The coordinates of the destination point can be entered as either absolute or
incremental dimensions.
4.3 Circular interpolation
4.3.1 G02, G03 circular interpolation with specified center point
Syntax: G2/G3 X... Y... I... J... (G17 active)
G2/G3 Z... X... K... I... (G18 active)
G2/G3 Y... Z... J... K... (G19 active)
The positioning instruction circular interpolation with specified center point in
clockwise direction is selected with the program word G02. The positioning
instruction circular interpolation with specified center point in the counter-
clockwise direction is selected with the program word G03.
Programming Manual
Page 40
These instructions are used for the programming of curved workpiece contours.
The curve must lie in the plane defined by the instructions G17 to G20.
Programming Manual
Page 41
The PA 8000 operates with a clockwise coordinate system; the statement in the clockwise or the counter-clockwise direction relates to the relative
movement of the tool with respect to the workpiece, when looking towards the
path plane in the negative direction from the coordinates axis which is vertically
positioned on the path plane.
Direction of rotation with G02 and G03 (turning)
Direction of rotation with G02 and G03 (milling)
The additional conditions which are possible or necessary for the instructions
G02 and G03 are as follows:
• the destination point coordinates (except during full circle programming)
• the coordinates of the center of the circular arc
Programming Manual
Page 42
• the feed rate
• the speed of rotation or the cutting speed
Programming Manual
Page 43
If it is not geometrically possible, to produce a circle from the additional
conditions programmed in a G02/G03-block, the error message 243 or 203 is
output.
If a feed rate or a speed of rotation or a cutting speed was already programmed
in an NC block before the call of G02 or G03 and the values programmed there
are to remain effective, then they do not need to be input again as modal
additional conditions for the instructions G02 or G03.
An arc of a circle of up to 360° can be programmed in each block. An arc must
lie in the plane defined by the instructions G17 to G20. The coordinates of the
circle center are always indicated in incremental dimensions relative to the
starting position. The axis addresses I, J and K are to be used with G17, G18
and G19 for the specification of the circle center coordinates:
Axis address Distance of the starting position to the circle center
I in direction of the X-axis
J in direction of the Y-axis
K in direction of the Z-axis
For a plane selected with G20, the axis addresses with which the plane itself
was selected are to be used for the input of the circle center:
I major axis
J minor axis
The coordinates of the circle center are to be indicated as positive or negative,
as always, a positive sign does not need to be programmed.
Programming Manual
Page 44
Example : (Startpoint: X = 0, Y = 50)
N30 G2 X60 Y30 I30 J-10 F200
Destination Circle center incremental
dimension relative to starting
position
Feed rate
200mm/min
Note:
• The contour accuracy of the circle and the circle processing velocity are
dependent on the circular interpolation of the K word value programmed in
a G86-block (see program influencing --> G86 corner acceleration, contour
accuracy). If no K word was programmed, the value preset by the machine
manufacturer is effective.
Programming Manual
Page 45
4.3.2 G12, G13 circular interpolation with specified radius
Syntax: G12/G13 X... Y... K...
Like G02 and G03 the instructions G12 and G13 enable the programming of
the circular arc. However, the following differences exist between the
instructions G12 and G13 and the instructions G02 and G03:
• For G02 and G03 the center coordinates are to be given via the
interpolation parameters I, J and K. For G12 and G13, apart from the end
position, only the radius as interpolation parameter K has to be given.
• In contrast to G02 and G03 no full circle can be programmed with the
instructions G12 and G13.
A clockwise circular arc is programmed with G12, a counter-clockwise circular
arc is programmed with G13. The statement in the clockwise or the counter-
clockwise direction relates to the relative movement of the tool facing the
workpiece, when looking from the vertically positioned coordinates axis on the
path plane in the negative direction at the path plane.
A circle section which is smaller than 180° is programmed with positive
interpolation parameter K, a circle section which is larger than 180° is
programmed with negative interpolation parameter K.
G12, G13 Circular interpolation in the counter-clockwise direction with specified
radius with K > 0 and K < 0
Programming Manual
Page 46
The following inputs are rejected with the error message 114
• Starting point = end position
• No input of K
• Radius too small, i.e., the distance between the starting point and the end
position is larger than twice the radius
Note :
• A spiral cannot and should not be produced with G12/G13.
• The contour accuracy and the circle processing velocity are dependent on
the circular interpolation of the K word value programmed in a G86-block
(see G86 corner acceleration, contour accuracy). If no K word was
programmed, they are dependent on the value adjusted on the machine
manufacturer.
Example : N40 G1 X15 Y5
N50 X10 Y15
N60 Y45
N70 G2 X30 Y65 I20
Programming Manual
Page 47
N80 G1 X85
Programming Manual
Page 48
N90 G12 X90 Y60 K5 circular arc < 180° (K positive)
N100 G1 X95
N110 Y15
N120 G13 X75 Y5 K-14 circular arc > 180° (K negative)
N130 G1 X15
...
Programming Manual
Page 49
4.3.3 Helical interpolation
If Helical Interpolation is activated within the system, in combination with G02,
G03, G12, G13 Helical Interpolation is performed. All the axes out of the active
plane are treated as helical axes. The maximum number of helical axes is 6.
Example for the x-/y-plane (G17):
N10 G02 I10.73 Z20.1
In the x-/y-plane a complete circle is interpolated. The Z-axis is treated as the
helical axis.
Note :
• The maximum number of helical axes is 6.
• The combination with tangential circle interpolation (G7) and cutter
compensation is possible (G41, G42).
4.4 G07 Tangential circular interpolation
Syntax: G7 X... Y...
The tangential circular interpolation is activated with the program word G07.
The following may be possible or necessary as additional conditions:
• the destination point coordinates
• the feed rate
• the speed of rotation or the cutting speed
The tangential circular interpolation causes a circular arc to be blended in
between the destination of the preceding motion block and the destination
programmed in connection with G07. The arc is joined tangentially to the
preceding motion block.
Programming Manual
Page 50
The following three examples illustrate the function of the tangential circular
interpolation:
Example 1 : Straight line / circular arc
N10 G0 X10 Y10 F1000
N20 G1 X20 Y40
N30 G7 X50
N40 G1 X60 Y10
N50 M30
Programming Manual
Page 51
Example 2: Straight line / circular arc
N10 G0 X10 Y10 F1000
N20 G1 X20 Y40
N30 G7 X50
N40 G1 X90 Y20
N50 M30
Note :
• In this example the circular arc only joins tangentially to the straight line of
the preceding motion block, but not to that of the following. The two
tangential joints in the example from the figure only emerge by chance due
to the location of the straight line of the block N40.
Programming Manual
Page 52
Example 3: Circular arc / circular arc
N10 G2 X30 Y30 I30
N20 G7 X50 Y50
N30 G1 X70 Y60
N40 M30
If a circular arc was programmed in the block before the call of the tangential
circular interpolation, then a circular arc is fitted through the destination of the
previously programmed circular arc and the destination point coordinates of
G07.
The circular arc is fitted so that the circular arc programmed in the preceding
block and the circular arc produced by the tangential circular interpolation have
the same tangent at the point of contact.
Programming Manual
Page 53
If a tangent is geometrically not possible at the starting point of the circular arc
to be produced by the tangential circular interpolation or if the radius is larger
than 10.000.000 increments, then a straight line is produced by the instruction
G07 instead of a circular arc.
Note :
• In tangential circular interpolation the contour accuracy and the circle
processing speed are dependent on the K word value programmed in a
G86-block (see G86 corner acceleration, contour accuracy).
• If no K word was programmed, they depend on the value set by the
machine manufacturer.
4.5 G05, G06 spline definition and spline interpolation 2D
Syntax: G5 X... Y... M70/71/72/73 (Spline definition)
G6 X... Y... F... (Spline interpolation)
Spline interpolation is used for the connection of specified points with smooth
curves (i.e. without kinks), whose curve radii continually change. It is suited,
especially when combined with the function "Teach In", for the processing of
contours which are not given as measured values but exist as models.
The programming of a spline interpolation is made in two steps.
4.5.1 Spline definition
In the first step the spline interpolation is prepared using the program word
G05. The axis addresses which will be involved in the spline interpolation of the
axes are to be programmed together with the program word G05.
For each programmed axis a dummy value must be specified which must
consist of at least one digit, but which has no meaning (see example below).
Programming Manual
Page 54
The spline type is determined using an M-Code. The M-Codes M70 to M73 are
available with the following meanings as default::
M70 Start and end of spline with curve 0 (natural spline), M70 is the
default instruction.
M71 Start of spline with tangential transition and end of spline with
curve 0.
M72 Start of spline with curve 0 and end of spline with tangential
transition.
M73 Start of spline and end of spline with tangential transitions.
4.5.1.1 Splines with tangential transitions
Splines with tangential transitions are joined without any kink to the last block
before the spline interpolation and to the first block after the spline
interpolation.
These blocks may be linear or circular. If they do not contain any positioning
information and therefore no direction is defined, then the spline starts and
ends with the direction of the first and the last spline blocks respectively.
4.5.1.2 M70: Start of spline and end of spline with the curve 0
N10 G5 X1 Y1 M70/M71/M72/M73 (Spline definition)
N20 G1 X10 Y0
N30 X0 Y15
N40 G6 X5 Y30
N50 X20 Y15
N60 X45 Y30
N70 X60 Y15
N80 G1 X65 Y30
N90 M30
Programming Manual
Page 55
4.5.1.3 M71: Start of spline with tangential transition and end of spline with the curve 0
Programming Manual
Page 56
4.5.1.4 M72:Start of spline with the curve 0 and end of spline with tangential transition
4.5.1.5 M73: Start of spline and end of spline with tangential
Programming Manual
Page 57
4.5.2 Activation of spline interpolation
In the second step the spline interpolation is activated using G06.
The spline interpolation can be deactivated by using any other G-Code of the
same group (e.g. G00, G02, G13).
The block preceding a G06 block must always contain positioning information if
a tangential transition is to be achieved.
Example : . . .
N30 G5 X1 Z1 M71
N40 G1 X2 Z5
N50 G6 X3 Z10
. . .
These program blocks have the following effect on a control with the three axes
X, Y and Z:
• The spline interpolation is effective for the axes X and Z, the axis Y is
linearly interpolated. The values programmed in the G05 block with the axis
addresses X and Z do not result in axis movements and do not influence
future motion of the axes. The spline starts tangentially from the destination
of the last motion block before the call of the G06-code. Because of M71
the curve at the end of the spline is 0.
• The spline definition G05 can be programmed in a single block together
with the dummy coordinates of the axes involved in the spline and an M-
Code for the spline type (M70-M73) (see example above).
• If no coordinates are programmed together with G05, then no axis is
involved in the spline, i.e. activation of the spline interpolation with G06 at a
later point in time has the same effect as G01.
Programming Manual
Page 58
• If a spline interpolation is deactivated and called up again later by
programming another G-Code of same code group in a program, then both
the original spline definition with G05 as well as the original definition of the
spline type (M70-M73) will remain valid.
If, for a new call-up of the spline interpolation, other axes are to be involved in
the processing of the spline, their axis addresses (each together with a dummy
value) must be programmed in a new G05 block prior to the activation of the
spline interpolation. If a change of the spline type is desired, the M-Code for the
desired spline type must be programmed in a block prior to the reactivation of
the spline interpolation or in the block from which the spline type change is to
apply.
Note :
• A spline type already selected is not influenced, if only axis addresses and
no new spline type have been programmed along with G05.
• If G05 is programmed while G06 is active, then the error message 108
appears.
• If the spline interpolation is active, then only blocks with positioning
instructions in the plane in which the spline is processed may be
programmed; blocks without positioning instructions (e.g. G04, G92) result
in the error message 257.
• A spline which only extends over one block, is executed without an error
message as a normal linear interpolation like G01.
• For test purposes, programs which use spline interpolation can be
converted to linear interpolation, by replacing G06 with G01 in the
corresponding program. The instructions for the spline definition or the
selection of the spline type do not influence the linear interpolation.
• A contour accuracy programmed with a K word together with active "Look
Ahead" with G86 has no effect on spline interpolation.
Programming Manual
Page 59
4.5.3 Path velocity
For extreme deviations of a spline from the programmed linear motion
distance, the actual path velocity may be higher than that programmed. This is
due to the fact that the programmed path velocity is always related to the linear
motion distance. During processing of a spline, the tool is positioned with the
necessary path velocity so that it reaches the destination at the same point in
time as it would have done had it traveled along the linear path with the
programmed path velocity.
. . .
N10 G5 X1 Y1 M70
N20 G1 X10 Y10
N30 G6 X30 Y15 or N30 X30 Y15 respectively
N40 X30 Y25
N50 X10 Y20
. . .
Programming Manual
Page 60
Note:
• Please note the method of operation of the path compensations for spline
interpolation. For more information, please refer to G40-G44 Path
compensations.
• To achieve optimum results with spline interpolation, a programming of G11
( "fill dynamic block buffers") before the activation of the spline interpolation
can be useful (see G10, G11 empty / fill dynamic block buffer).
• The function "G05, G06 spline" is optional and not available in all PA
systems.
4.6 G78, G79 Tangential setting to the 2D path
Syntax: G78 (C...)... Tangential setting to the 2D path ON
G79 Tangential setting to the 2D path OFF
The function Tangential setting at path 2D enables a rotational axis to be
orientated during a travel movement in a plane so that a set angle with the
tangent is always obtained at the point reached each time.
4.6.1 Application examples
Sawing:
Programming Manual
Page 61
To achieve the displayed contour when sawing, the saw must be turned during
the travel movement so that the saw blade is positioned tangential to the
contour each time.
Programming Manual
Page 62
Laser welding:
During laser welding, the material feed must be made at a certain angle to the
laser beam. The material must always be conveyed in the direction of
processing in front of the laser ray.
Turning:
If during turning, the material is always to be removed with the tip (A) of the
cutting tool, then the tip must always be guided tangentially along the
workpiece contour. If the removal of material from the workpiece is however to
be made by position B on the cutting tool, then the cutting tool must always be
led at a certain inclined angle along the workpiece contour.
Punching/nibbling:
Programming Manual
Page 63
Programming Manual
Page 64
If the described contour is to be achieved by punching or nibbling, then the tool
or the die must always be orientated according to the desired workpiece
contour.
4.6.2 Glossary of terms
The tangent vector is a unit vector which points in the instantaneous direction
of motion in the active plane at each point on the motion path.
The tangent vector angle is the angle which is formed between the tangent
vector and the main axis of the coordinate system. The angle of alignment is
calculated from the sum of the tangent vector angle and any angle offset which
may have been programmed.
4.6.3 Programming
The function tangential setting to the 2D path is activated by the modally
effective command G78. This function is effective starting from the block which
contains G78.
If, in the G78 block the axis address of the rotational axis is not programmed,
then a tangential lead-in is made, i.e. the angle offset totals 0.
Programming Manual
Page 65
To program a lead-in with a certain angle relative to the respective tangent to
the motion path (angle offset), the axis address of the rotational axis must be
specified with the desired angle offset value together with G78.
The function tangential setting to the 2D path is deactivated using the
command G79 or by CONTROL RESET. When the function is switched off
intermediate blocks, (for synchronization) are generated.
When the function tangential setting to the 2D path is activated, the rotational
axis takes the shortest route (turn < 180°) to the alignment angle at the
beginning of the processing using this function. The function tangential setting
to the 2D path is already active when the G78 block is processed.
The values of the angle offset programmed together with the axis address of
the rotational axis are limited from -360° to +360°. If the programmed value lies
outside this range, the error message 54 is displayed (see also section Modulo
axis).
4.6.3.1 Changing the angle offset with modally effective G78
If the function tangential setting to the 2D path is already active, the angle
offset can be changed by programming another G78 block. If G78 is
programmed without specification of an angle offset, the angle offset is set to
the value 0° starting at this block. In all other cases offset the angle offset is set
to the programmed value.
Note:
• In G78 blocks no programming of the rotational axis itself is possible. Only
the angle offset for the rotational axis can be specified.
Programming Manual
Page 66
• With modally effective G78, however, the rotational axis - also together with
other axes -can be programmed as usual. The Leading-in is then
deactivated in the block where the rotational axis is programmed with
modally effective G78. If the rotational axis is positioned incrementally with
modally effective G78 (with G91 active), the programmed values
correspond to the current (adjusted) position of the rotational axis.
Example:
N10 G1 X0 Y0 C0 F3000
N20 G78 X30 Y30 Angle of alignment 45°
N30 G1 X60 Y40 Angle of alignment approx. 16.5°
N40 G3 Y80 J-20 Tangential lead in to circular arc
N50 G1 X0 Angle of alignment 180°
N60 G78 X-40 C45 Angle of alignment 225°
Programming Manual
Page 67
N70 G3 Y40 J-20 Angle of alignment: 45° + tangent
vector angle
N80 G1 X-20 Angle of alignment 45°
Programming Manual
Page 68
N90 G78 Y0 Angle of alignment 270°
N100 G1 X-30 Y-30 M30 Angle of alignment: approx. 217°
For example, at block transition N90/N100, the rotational axis turns from 270°
to approx. 217° using the shortest route, i.e. it rotates approx. 53° in the
clockwise direction.
At contour corners the rotational axis always moves with maximum velocity to
the alignment angle necessary for the following path. The interpolation of the
remaining axes is not interrupted during this jump, i.e. their positioning is
continued during the "jump" of the rotational axis.
4.6.3.2 Behavior of the lead-in during a reversal of the motion direction
Example: N10 G78 C45
N20 G1 X0 Y0
N30 X10 Y10
N40 X30
N50 G0 X10 M30
Programming Manual
Page 69
Programming Manual
Page 70
If two contradictory motion blocks are programmed, then, when moving
backwards, the tool jumps through 180° on the same path. This can be
prevented by specifying a limit angle. This limit angle determines the maximum
angle through which the rotational axis may jump at block transitions.
A second possibility to prevent the rotational axis jumping is to change the
angle offset corresponding to the desired jump in the program.
The following program is another variant of the preceding example program.
The effects of this program in comparison to the preceding one become
apparent when a comparison of figures is made.
Example: Influence of the lead-in at reversal of motion reversal
Programming Manual
Page 71
N10 G78 C45
N20 G1 X0 Y0
N30 X10 Y10
N40 X30
N50 G78 C-45
N60 G1 X10
4.6.3.3 Programming G92 and G54-G59 with G78 active
When G78 is active, programming of G92 "set axis value" together with a value
for the rotational axis is not permitted. Values for the remaining axes can be
programmed together with G92 as usual, even when G78 is active.
In addition no axis value for the rotational axis may be set when G78 is called
up together with G92. If necessary an axis value set for the rotational axis must
be reset to the original position.
When G78 is active, the part position offsets for the rotational axis selected
with G54 to G59 are ineffective.
4.6.3.4 Axis limits of the rotational axis for full
After each time the function "tangential setting to the 2D path" is switched on,
the current position of the rotational axis is displayed. At the same time the
displayed angle values are reduced to the range 0° to 360°, i.e. for a rotational
axis position of 365°, only 5° is displayed.
The reaction of the control upon switching the function off can be preset; one of
the following two possibilities can be selected:
Programming Manual
Page 72
1st possibility: The control internally counts the full rotations which the rotational axis makes
when repeatedly moving along a closed contour in the same direction. The
reduction to within the range 0° to 360° is disabled after the function "tangential
setting to the 2D path" is switched off, i.e. the absolute position of the rotational
axis is restored. With this presetting however, continued turns in one direction
may result in a violation of the axis limits of the rotational axis, which is
recognized in real-time. The error message 211 is displayed and
"EMERGENCY STOP" is set.
In this case the axis limits of the rotational axis therefore limit the number of full
rotations which the rotational axis is able to make in the same direction. The
axis limits can be preset, see the machine tool manufacturer's documentation
for details.
2nd possibility: The control does not internally count the full rotations of the rotational axis.
Consequently, the absolute position of the rotational axis after the function
"tangential setting to the 2D path" is switched off cannot be restored. The
disadvantage that the absolute position of the rotational axis is lost when using
this presetting is however offset by the advantage that in this case the
rotational axis limits cannot be violated.
Which of the two possibilities is preset in your PA 8000, can be ascertained
from the machine tool manufacturer's documentation.
Note:
• Continued rotation of the rotational axis in the same direction can also
cause problems such as distortion of cables etc.
Programming Manual
Page 73
4.6.3.5 Programmable limit angle
Using this function it is possible to switch off the tangential leading-in until the
directional change in the leading axis has exceeded the programmed limit
angle. The function is only effective with linear interpolation since with all other
types of interpolation the direction is constantly changed within a block.
It should be possible suppress the leading-in at small, non-programmed
changes in direction of the leading axis, in order to avoid the following axis
jumping in such cases.
The limit angle is programmed using an NC address which can be set (in the
following examples the letter Z is used). The limit angle can be programmed
both when the leading in is activated or deactivated.
In the following text it has been assumed that the leading axes are designated
X and Y and the following axis C.
Example: Position of the C-Achse (degrees)
N5 G0 F1000
N 10 G78 X0 Y0 F3000 Position of the C axis in
degrees.
N 15 X10 Y0 0
N 20 X20 Y-1 354.289
N 30 X40 Y+1 5.711
N 40 X59 Y0.5 358.493
N 50 X71 Y-1.5 350.538
N 60 X80 Y0 9.462
N 70 X102 Y-1.8 355.323
N 80 X120 Y0.5 7.282
N 90 X140 Y0 358.568
Programming Manual
Page 74
N100 G02 X160 Y-20 J20 I0 358.568
-270
N110 G1 Y-100 270
N120 X0 180
N130 Y0 90
N140 M30
The example program basically describes a rectangle with a rounded corner
on the upper right.
In the blocks N10 to N90 a move is made parallel to the X axis towards the
right, whereby the Y value varies about 0. This means that the tangential
following axis jumps by a value between 2° and 10° at each block transition.
If in the example program the block N15 is changed as follows:
N15 X10 Y0 Z10
then from block N15 onwards all jumps which are less than 10° are
suppressed. This means that the tangential following axis remains at its start
position up to and including the block N90. Its position only changes at the
start of the circle block.
The programmed Z value is always relative to the last rotational axis position
reached. If the value Z - 10 is not programmed until block N30, then a jump is
made through 15.173 degrees upon the transition to the N50 block.
A Z value can be programmed at any position in a program and remains active
until a new value is programmed. At CONTROL RESET and end of the
program the Z value is deleted.
Programming Manual
Page 75
5 Technological instructions
5.1 Influencing the feedrate
5.1.1 F word
The feed rate (the path velocity) is programmed with an F word as advance/min
(when G94 is active) or as advance/rev (when G95 is active). The unit of
advance is millimeters (when G71 is active ) or inches (when G70 is active).
Example: F2000 means Feed 2000 mm/min
(when G94 and G71 are active)
Note:
• A feed rate not equal to 0 must be programmed for all types of interpolation
unless positioning in rapid traverse (G00), programmable homing (G74) or
thread cutting (G33, G34). At G00 the pre-defined rapid traverse velocity
becomes active. A programmed feed rate is modal, i.e. it is valid until a new
feed rate is programmed.
• A programmed feed rate and the rapid traverse velocity can be changed by
the feed override (see G63, G66 Feed override).
• During control reset F is set to 0. That means, that an F word must be
programmed in the first motion block of a program. This is not valid however
for programs, which are to be processed as subroutines only. In subroutines
the fact that the F word is missing offers a certain protection against the
subroutine being started as a main program. If the F word is missing the
error message 199 appears; the program is not executed.
• A dwell time is programmed through F in connection with the instruction
G04 (see 4 G04 Dwell time).
Programming Manual
Page 76
5.1.2 G63, G66 Feed override
Syntax: G63 F... Feed override ON
G66 Feed override OFF
A feed override is a percentage change of the programmed feed rate (a so-
called percentage value-limitation).
Basically the PA 8000 can distinguish between two different feed overrides:
• A manually adjusted feed override (on the machine tool usually a rotary
switch)
• A programmed feed override
In the operating modes "MANUAL" and "AUTOMATIC" the programmed feed
rate (SET value), the override in % and the momentarily actual effective feed
rate, the interpolation velocity of the controller (ACTUAL value) are displayed in
the window FEED. A feed rate influenced by an override can therefore be read
directly from the monitor for program optimization.
Attention: Feed override and spindle override can not be adjusted with the PA 8000 user
interface.
Programming A feed override is programmed with an F word in a G63-block. The value of the
F word (in %) must be an integer between 1 and 120.
A feed override programmed with G63 has precedence over the feed override
adjusted at the machine tool.
Programming Manual
Page 77
There is however an important exception to this rule: If the feed rotary switch
on the machine tool is turned back to the back stop, then this setting always
has precedence over a programmed feed override. Thus it is always possible,
to stop the movement of the axes by reducing the feed override to 0%.
A feed override programmed with G63 can be deactivated by the instruction
G66. G66 simultaneously activates the feed override which is set at the feed
rate override switch on the machine tool.
If no feed override was programmed with G63, the feed override adjusted on
the machine tool is active.
If no F word is programmed in a G63-block, the axes are positioned with the
feed rate programmed in the NC program. If however, a feed override has
already been programmed in a preceding G63-block using an F word and this
has since been deactivated, then this previously programmed feed override
becomes effective again.
Example: N10 G66 The feed override adjusted at the machine tool is activated.
. . .
N50 G63 The feed override adjusted at the machine tool is
deactivated. The axes are positioned with the feed rate
programmed in the NC Program.
. . .
N100 G63 F55 The feed override is set to 55%, i.e. the axes are
positioned at 55% of the programmed feed rate.
. .
N200 G66 The programmed feed override is rendered ineffective, the
feed override adjusted at the machine tool is activated.
. . .
N300 G63 Same effect as N100.
Programming Manual
Page 78
Note:
• Feed overrides are effective both on the programmed feed rate as well as
on the rapid traverse velocity. During execution of G00 (rapid traverse), the
feed override is limited to 100% max.
• Feed rate override values not equal to 0 have no effect on G74-blocks
("programmable homing"), or G33 or G34-blocks ("thread cutting").
5.1.3 Programmable acceleration
Syntax: B... ...
The function programmable acceleration enables the reduction of the axis
acceleration with respect to the preset maximum value. The term acceleration
means any velocity change of the axes, this can therefore be either a decrease
in velocity as well as an increase.
Application: A reduction of the preset maximum acceleration is sometimes necessary, e.g. if
the load on certain components, e.g. laser optics, has to be limited.
Programming: The acceleration is programmed with the axis address B and a value (in %)
between 1 and 100 without decimal places. The programmed percentage value
relates to the maximum admissible acceleration.
A programmed acceleration is modal. It can be changed through the
programming of a new B word with another value. A programmed acceleration
is overridden by control reset.
Programming Manual
Page 79
Example: The preset maximum admissible acceleration is reduced to 25% of its value,
i.e. the acceleration time or braking time is quadrupled.
N20 B25
N30 G1 X10 Y15
The programmed value effects all axes.
Note:
• When inputting values, which are larger than 100 or would result in an
acceleration time of more than 32 seconds, the error messages 212 or 110
respectively appear.
• If "Look Ahead" is active it can be profitable, to limit the acceleration using
the instruction "programmable acceleration". This instruction causes a
leveling of the accelerations when "Look Ahead" is active.
• The function "Programmable Acceleration" is optional and not available in
all PA systems.
5.1.4 G72, G73 Interpolation with precision
Syntax: G72/G73...
With the program word G73 the instruction interpolation with precision stop is
activated, it is deactivated with the program word G72. Through the
interpolation with precision stop contouring errors are removed to the block
end.
Programming Manual
Page 80
Contouring errors result from inevitable control deviations. The size of the
contouring error depends on the feed rate and the control loop amplification
(KV factor). Contouring errors can lead to the effect that the corners of the work
piece are slightly rounded, as shown in next figure. Depending on the type of
processing contouring errors can also lead to twisting and deformation of the
corners.
A rounded contour corner due to contouring errors is usually not a negative
thing, since sharp edges are normally undesirable. If, however, contouring
errors must be avoided (e.g. when turning special edges for seals), this is
possible using the instruction G73. This instruction has the effect that, with all
types of interpolation, the following NC-block is only activated when the axes
have traveled to the destination of the block which is currently being processed.
In this way the contouring errors up to a preset amount can be removed to the
block end.
If G73 is programmed, then it is to be taken into account, that the tool can lose
contact with the work piece when stopping. Marks occur in the work piece
contour, since the cutting pressure is suddenly reduced because of the missing
feed rate.
Programming Manual
Page 81
5.2 Spindle control
5.2.1 S word
The spindle speed in revs/min is programmed with an S word.
Example: S2000 means Spindle speed 2000 revs/min
Note:
• The function „Spindle control“ is optional and not available in all PA
systems.
• A spindle override can be programmed with an S word together with the
instruction G63 (see G63, G66 Spindle override).
• A limitation of the spindle speed can be programmed with G92 (see G92
Spindle speed limitation).
• The direction of rotation of the spindle is determined by M-Codes (see M03,
M04 Spindle ON, clockwise or counter-clockwise.
Programming Manual
Page 82
5.2.2 M03, M04 Spindle ON, clockwise or counter-clockwise
Syntax: M03.... Spindle ON (clockwise)
M04...... Spindle ON (counter-clockwise)
The direction of spindle rotation is programmed and the spindle switched on
with the instructions M03 and M04. The instruction M03 causes a clockwise
spindle rotation, the instruction M04 causes a counter-clockwise spindle
rotation. The directions clockwise and counter-clockwise are as viewed looking
away from the spindle towards the working area.
5.2.3 M05 Spindle OFF
Syntax: M5...
A spindle halt is programmed with the instruction M05, i.e. the spindle speed is
set to 0.
5.2.4 G63, G66 Spindle override
Syntax: G63 S... Spindle override ON
G66 Spindle override OFF
The term spindle override is a proportional change of the programmed spindle
speed.
Basically the PA 8000 can distinguish between two different spindle overrides:
• The manually adjusted spindle override (on the machine tool usually a
rotary switch)
• A programmed spindle override
Programming Manual
Page 83
In the operating modes "MANUAL" and "AUTOMATIC" the programmed
spindle speed (SET value), the override in % and the momentarily actual
effective feed rate (ACTUAL value) are displayed in the window SPINDLE. A
spindle speed influenced by an override can therefore be read directly from the
monitor for program optimization.
Attention: Feed rate override and spindle override cannot be adjusted with the PA 8000
user interface.
Programming:
A spindle override is programmed in a G63-block with an S word. The value of
the S word (in %) must be an integer in the range of 50 to 120. A spindle
override programmed with G63 has precedence over the spindle override
adjusted on the machine tool.
A spindle override programmed with G63 can be deactivated by the instruction
G66. G66 simultaneously activates the spindle override switch on the machine
tool.
If no spindle override was programmed with G63, the spindle override adjusted
on the machine tool is active.
If no S word is programmed in a G63-block, the spindle is rotated with the
speed programmed in the NC program. If however a spindle override has
already been programmed in a preceding G63-block using an S word and this
has since been deactivated, then the previously programmed spindle override
becomes effective again.
Programming Manual
Page 84
Example: N10 G66 The spindle override adjusted at the machine tool is
activated.
. . .
N50 G63 The spindle override adjusted at the machine tool is
deactivated. The spindle rotates with the speed programmed
in the NC program.
. . .
N100 G63 S60 The spindle override is set to 60%, i.e. the spindle rotates at
60% of the programmed spindle speed.
. . .-
N200 G66 The programmed spindle override becomes ineffective, the
spindle override which was set at the machine tool is
activated.
. . .
N300 G63 Same effect as N100.
Note:
• Spindle overrides have no effect on G74-blocks ("programmable homing")
and G33- or G34-blocks ("thread cutting").
5.2.5 G92 Spindle speed limitation
Syntax: G92 S...
A spindle speed limitation can be programmed with the instruction G92
together with an S word. The value of the S word indicates the maximum
speed in rev/min.
Programming Manual
Page 85
If a speed change occurs during program execution while speed limitation is
active, this change is only executed, as long as the programmed maximum
speed is not exceeded.
Application: A speed limitation can sometimes be necessary e.g.:
• when using tools with a prescribed maximum speed.
• with certain work pieces, to avoid overloading the drives.
• when using a chuck without compensation for the centrifugal force. Here the
speed should be limited for safety reasons to a value, at which a sufficient
tension is still guaranteed.
5.2.6 Reversal of rotation at M19 "spindle orientation"
For spindles with feed back a setting-up can be made, if the rotation direction
for reaching the programmed position can be reversed.
If this comes up the control loop will be closed after the deceleration of the
spindle and the reaching of the "stop revolutions" and the programmed position
will be reached to the shortest distance.
Dependent on the position at reaching "stop revolution" a reversal of the
rotation can result. It is possible for spindles with only one direction to make a
setting-up that a reversal of the rotation is not allowed. In this case the spindle
rotates after reaching the "stop revolution" in the present direction to the
position (possibly the position will not be reached to the shortest distance.
Programming Manual
Page 86
6 Tool functions
6.1 Tool compensation
Even with flawless preparation of the part programs, devices, tools etc. is it
necessary to be able to make corrections in the processing to compensate for
a worn tool. In the PA 8000 two types of tool compensations are stored and
processed:
• Tool tip radius compensation (associated axis address D)
• Tool length compensation (associated axis address H).
For each type of compensation geometric offset and a wear-offset can be
defined. Internally the two values are added.
The two types of compensation values are assigned own compensation value
memories in the PA 8000. The size of this memory and therefore the number of
compensation values, which can be stored, is preset; the corresponding values
can be taken from the documentation of the machine tool manufacturer.
6.1.1 Tool tip radius compensation
With tool tip radius compensation the radius of the tool employed can be taken
into account during processing, using the function "path compensation" (see
G40-G44 Path compensation). The radius compensation memory contains the
tool tip radius.
Tool tip radius compensation for rotating tools:
Programming Manual
Page 87
6.1.1.1 Inputting tool tip radius compensations
There are three ways in which values of the tool tip radius compensation
memory can be set:
• manually: This is done as follows:
• In the operating mode "DATA" select F1: Data selection --> F4: Path
Compensation.
• Activate the field path compensation by clicking onto it, if it is not
already active.(When the field is active it is shown with the color
reversed).
• Activate the mode ,,DATA"
• Select F5: Change
• Select the memory location, whose value is to be changed.(The
memory location now appears in the input window. Here the old value
can be deleted with the BACKSPACE key and a new value entered.)
Two values can be entered: the first value is the geometric offset and
the second value is the associated wear-offset. The two values have to
be delimited by a sign (either “+” or “-“). If only one value is entered, it is
interpreted as geometric offset and the wear-offset is automatically set
to zero.
• Click onto the OK-field or press the RETURN-key.
These inputs are now stored in the compensation value memory of the
PA 8000 and are displayed on the monitor in the upper window.
Programming Manual
Page 88
• by allocation in a cycle block (see General cycle programming)
• by loading a file, which contains the required values Here a certain file format must be observed, which is similar to the file
format for part programs (see external data Format defaults):
<lf>
% <lf>
DTABXX <lf> Correction value table number
D001=+00000.000+00000.000 <lf>
.
.
<ETX> File end character
Note:
• <cr> <lf> can also be used instead of <lf>.
• The file end character (in the above display <ETX> =03H) can preset.
• xx is a two-digit table number.
• Two values can be entered: The geometric offset and after a sign (“+” or ”-“)
the wear-offset. If only one value is given it is interpreted as geometric
offset and the wear-offset is internally set to zero.
6.1.1.2 Calling up tool tip radius compensation values
Tool tip radius compensation values (sum of geometric offset and wear-
offset) are selected with the axis address D and the number of the desired
compensation value memory.
Programming Manual
Page 89
Example: . . .
N30 G1 X5 Y0 D4
. . .
Here, in the block N30, the content of the fourth radius compensation value
memory is selected. This value is used for the function "path compensation". A
previously selected radius compensation value is deactivated by:
• The selection of another compensation value memory
• Programming D0.
Note:
• Active tool tip radius compensations are displayed in the window
compensations in the operating mode "INFORMATION".
• With spline interpolation a connection exists between the radius
compensation value memory number and the method used for the path
compensation (see G40-G44 Path compensation --> Path compensation for
spline interpolation).
6.1.2 Tool length compensation
Tool length compensation enables the compensation of the difference between
the pre-defined and the actual tool length. Accordingly the tool length
compensation memory contains the length of the tool in the direction of
approach with respect to a tool reference point.
Programming Manual
Page 90
Tool length compensation for rotating tools
In addition, the length compensation value memory can be preset to contain a
second value for each compensation value. This second value enables a
compensation parallel to, and in the direction of, another axis. Thus the
outreach of a tool can be taken into account for example
Tool length compensation for fixed tools
To find out if this possibility is preset refer to the machine tool manufacturer's
documentation.
Programming Manual
Page 91
6.1.2.1 Input of tool length compensation values
The values in the tool length compensation memory can also be set in three
ways:
• manually : This is done as follows:
• Select F1: Data selection --> F2: Length Compensation in the operating
mode "DATA".
• Activate the field length correction by clicking onto it, if it is not already
active. (When the field is active it is shown with the color reversed).
• Click onto the OK-field or press the RETURN key.
• Select the mode ,,DATA"
• Select F5: Change.
• Click onto the memory location, whose value is to be changed. (The
memory location now appears in the input window. Here the old value
can be deleted with the BACKSPACE key and a new value entered).
For each value two compensation- values can be entered: the first
value is the geometric offset and the second value is the associated
wear-offset. The two values have to be delimited by a sign (either “+” or
“-“). If only one value is entered, it is interpreted as geometric offset and
the wear-offset is automatically set to zero.
• Click onto the OK-field or press the RETURN key.
These inputs are now stored in the correction value memory of the PA 8000 and
displayed on the monitor in the upper window.
• by allocation in a cycle block (see General cycle programming)
Programming Manual
Page 92
• by loading a file, which contains the required values Here the following file format must be observed:
<lf>
% <lf>
HTABXX <lf> Compensation value table number
H001X=+00000.000+00000.000 Y=+00000.000+00000.000 <lf>
.
.
<ETX> File end character
Note:
• instead of <If> can also be used <cr> <If>.
• <cr> <lf> can also be used instead of <lf>.
• xx is a two-digit table number.
• The axis addresses of the axes which are preset for length corrections,
must also be entered. If only one axis is preset for length corrections, then
only one value per line can be entered and this must also be accompanied
by the axis address.
• For each axis compensation two values can be entered: the geometric
offset and after a sign (“+” or ”-“) the wear-offset. If only one value is given it
is interpreted as geometric offset and the wear-offset is internally set to
zero.
Programming Manual
Page 93
6.1.2.2 Calling up tool length
Tool length compensation values are selected with the axis address H values
(sum of geometric offset and wear-offset) and the number of the desired
compensation value memory.
Example: . . . N30 X2 Y1 H2
. . . Here, in the block N30, the content of the second length compensation value
memory is called up and is consequently taken into account when positioning
the axes (max. 2) which have preset length compensation.
A previously selected length compensation value is deactivated by:
• The selection of another compensation value memory
• Programming H0.
Note:
• Tool length compensations should be deactivated at the end of the program
with H0.
• Active tool length compensations are shown on the axis display during the
execution of the program (operating mode "AUTOMATIC" and "MANUAL"
and in the window compensations in the operating mode "INFORMATION".
Programming Manual
Page 94
6.2 G40-G44 Path compensations
Syntax: D ... ... Selection of the compensation value memory
G40 ... Path compensation OFF
G41 ... Path compensation left of the work piece contour
G42 ... Path compensation right of the work piece contour
G43 ... Path compensation left of the work piece contour with altered
approach
G44 ... Path compensation right of the work piece contour with altered
approach
6.2.1 Necessity of path compensations
In NC programs mainly tool travel movements are programmed. The travel
movements can be programmed relative to :
• the work piece contour or
• the milling cutter center path for a "standard tool", i.e. a tool with specified
dimensions.
In both cases it is advantageous, when the exact dimensions of the tools which
are actually used later in programming can remain unconsidered and do not
have to be considered until the execution of the NC program. If the dimensions
of the tools remain unconsidered during program execution, the tool travel
movements can have different effects on the work piece contour depending on
the tool actually used.
Programming Manual
Page 95
Effect of different tool radii on the work piece contour.
From this illustration it is clear that:
When using a milling cutter with relatively small radius (A) less material is
removed from the work piece than when using a milling cutter with relatively
large radius (B) when executing the same NC program with identical milling
cutter center path.
Such a dependence of the finished contour of the work piece on the tool
dimensions is undesirable. To avoid this dependence, G-codes are available
for so-called path compensations. If these G-codes are activated, then during
the execution the tool moves on a path which has a constant distance to the
programmed contour, according to size and dimensions.
The distance is calculated by the PA 8000 depending on the tool used so that
the work piece is produced exactly to the desired dimensions. The path, on
which the tool moves and which always has a constant distance to the work
piece contour, is called an equidistant.
To be able to determine this equidistant on which the tool must be positioned
the control requires, among other things, the data of the used tool and the input
as to whether the equidistant must lie in motion direction left or right of the work
piece contour, as the following figure illustrates:
Programming Manual
Page 96
Here the active plane (selectable with G17-G20) is always the decisive factor,
i.e. the path compensation always takes place in the active plane. To ascertain
whether the path compensation should be made in motion direction left or right
of the work piece contour, looks in the negative direction of the axis which is
perpendicular to the active plane.
The control takes the tool data from the tool tip radius compensation memory. It
is either entered into the CNC control during the setting up using the set up
sheet or read in instead. If the program is written based on the work piece
contour, the path compensation value is the radius of the tool.
If the program is written based on a standard tool, the path compensation value
is the deviation of the radius of the tool actually used from the standard tool
radius.
In the following text it is assumed, that when writing the program the work piece
contour was programmed.
Programming Manual
Page 97
6.2.2 Principle of the path compensation, intersection point
When path compensation is active during block processing, the positioning is
made on an equidistant to the programmed contour, at block transitions the
intersection point of the extended equidistant paths of the block currently being
processed and the next block is moved to and stopped at. If no intersection is
obtained, linear intermediate blocks are produced.
Examples of the intersection position: Path compensation at the block transition Straight line /Straight line
Programming Manual
Page 98
Path compensation at the block transition Straight line /Circular arc
Path compensation at the block transition circular arc /circular arc
6.2.3 Programming path compensations
Path compensations are activated with the instructions G41 to G44.
A path compensation is programmed with the instructions G41 or G43, for
which the equidistant is in tool motion direction left of the work piece contour
Programming Manual
Page 99
A path compensation is programmed with the instructions G42 or G44, for
which the equidistant is in tool motion direction right of the work piece contour
Programming Manual
Page 100
The instructions G41 and G43 and the instructions G42 and G44 each differ in
the approach behavior of the axes (see section Approach and retreat behavior
of the axes).
The control requires the exact dimensions of the current tool for the
determination of the equidistant path, these are stored in the tool tip radius
compensation memory.
These compensation values are activated with the address character D
together with the number of the desired compensation value memory.
Negative compensation values are also possible here. G41 with a negative
compensation value is equivalent to G42 with a positive compensation value of
the same amount and vice versa, i.e. G42 with a negative compensation value
is equivalent to G41 with a positive compensation value of the same amount.
The call up of the compensation values and the activation of the path
compensation can be programmed in different NC blocks (example A) or in the
same NC block (example B).
Example A: N10 D7 Call up of the 7th tool tip radius compensation value from the
compensation value memory
N20 G41 Activation of the path compensation (equidistant left of the
work piece contour)
Example B: N10 G41 D2 Call up of the 2nd tool tip radius compensation value from the
compensation value memory and activation of the path
compensation (equidistant left of the work piece contour)
Programming Manual
Page 101
Note:
• In the following cases path compensation is not possible:
• Axis value settings with G92 during path compensation. The error
message 121 appears.
• Programmable homing with G74 during path compensation. The error
message 209 appears.
• Thread cutting (G33; G34). There is no error message, however, no
path compensation is executed.
6.2.3.1 Approach behavior of the axes
The positioning block after the activation of a path compensation is called the
approach block in the following text. If a path compensation is programmed
along with a positioning instruction in the same block, this block is designated
as an approach block.
If a path compensation is activated with G41 or G42, then first of all a move is
made to the intersection of the equidistant of the approach block and the next
block. If the approach block is one with linear positioning instructions, the
intersection is moved to linearly. If the approach block is one with circular
positioning instructions, the intersection is moved to on a spiral path.
Example Move to intersection on a linear path: N10 G1 X10 Y2 F1000
N20 G41 D2
N30 X14 Y10
N40 X20
. . .
Programming Manual
Page 102
Example Move to intersection on a spiral path: N10 G1 X1 Y1 F1000
. . .
N40 Y2
N50 G41 D1
N60 G2 X2.5 Y3.5 11.5
N70 G1 X5
Programming Manual
Page 103
An altered approach of the equidistant path is enabled with the instructions
G43 or G44.
After programming G43 or G44 the starting position of the equidistant path of
the next block is moved to. This starting position is offset perpendicular to the
programmed tool path. It is essential in this case, that the instructions G43 and
G44 are programmed in a single positioning block. If this is not the case, these
instructions have the same effect as G41 or G42.
Programming Manual
Page 104
Example Comparison of path compensations G41 and G 43: N10 G1 X1,5 Y0
N20 G41 D1 X4 Y2 and/or. N20 G43 D1 X4 Y2
N30 X3 Y5
N40 X7
. . .
From the illustration it is clear that when programming with G41 the desired
work piece contour would be not achieved exactly.
Note:
Programming Manual
Page 105
• The instructions G43 and G44 differ only in the approach behavior from
G41 and G42, otherwise (particularly when moving away) there is no
difference between G43/G44 and G41/G42.
Programming Manual
Page 106
6.2.3.2 Retreat behavior of the axes
The first NC block with a positioning instruction after the deactivation of a path
compensation with the instruction G40 is called a retreat block in the following
text. If G40 is programmed along with a positioning instruction in the same
block, this block is designated as a retreat block.
A deactivation of the compensation value is possible by programming D0 or by
the selection of a compensation value memory with the contents 0.
The equidistant path is quit either linearly or on a spiral path at the intersection
of the equidistant of the last block with path compensation and the equidistant
of the retreat block.
Example Linear retreat: N20 G41 D1
N30...
N40 G1 X20 Y30
N50 X30 Y10
N60 G40 X40
. . .
Programming Manual
Page 107
Example Retreat on a spiral path: N40 G41 D1
...
N70 X5 Y2
N80 G3 X9 Y2 I2 J2 D0
...
Programming Manual
Page 108
After deactivation of the path compensation with the instruction G40 the tool
can be led back again to the previous equidistant path by reprogramming
G41/G43 or G42/G44 without changing the compensation value.
6.2.3.3 Intermediate blocks
If the equidistants of two successive positioning blocks do not no intersect, the
PA 8000 automatically generates up to three linear intermediate blocks.
Positioning is then made to these intermediate blocks at the transition of the
two positioning blocks.
generation of intermediate blocks, Example 1: N30 G41 D1
N40...
N50 G1 Y4
N60 G3 X6 Y0.5 I3.5
. . .
Programming Manual
Page 109
Generation of intermediate blocks, Example 2: N30 G41 D1
N40. . .
N50 G1 X4 Y4
N60 G3 X7 Y1 I3
. . .
Programming Manual
Page 110
In cases like that the motion path can be shortened (see section Angle cut off).
Generation of intermediate blocks, Example 3: N30 G41 D1
. . .
N50 G3 X5 Y3.5 J3
N60 X8 Y0.5 I3
. . .
Programming Manual
Page 111
6.2.3.4 Angle cut off
If the intersection of two equidistants lies very far away from the programmed
point, a disproportionately long motion path would have to be traveled to reach
this intersection.
In such cases (i.e. cases, where the angle included by the two equidistants is
less than a preset value) the tool motion path is shortened; instead of moving
to the intersection of the equidistants, the positioning is carried out according to
a linear intermediate block.
Programming Manual
Page 112
Example angle cut off: N30 G41 D1
. . .
N50 X3 Y5
N60 X4 Y1
6.2.4 Path compensations at spline interpolation
Two different types of path compensations are possible with spline
interpolation:
End point radius compensation
Programming Manual
Page 113
Programming Manual
Page 114
The following steps are taken with end point radius compensation:
• Firstly, the bisector of the angle between the straight connecting lines drawn
between the programmed end points is calculated. The compensated end
point is then the point on the bisector which is exactly the distance D from
the programmed end point.
• The only exeption to this is the formation of the first and the last spline
point.
• The compensated points in this case are formed by the intersection point
between the straight connecting lines and the preceding, or following,
contour element (straight line or circle).
• In particular this means that in these two cases the distance of the
compensated from the programmed end point is larger than the
compensation value.
• The compensated end points form the spline construction points for the
calculation of the compensated path. This has the consequence that the
compensated path between the block end points does not run exactly
equidistant to the original path.
Real-time radius compensation:
Here the path compensation is made in real-time perpendicular to the spline
contour running through the uncompensated block end points. (The layout of
the determined points is much more dense than is implied in the figure )
Programming Manual
Page 115
With real-time radius compensation the average distance between the
compensated and the uncompensated path is equal to D, i.e. there is no
increase at the block ends as can be the case with end point radius
compensation. Although processing of narrow internal contours with real-time
radius compensation can lead to insufficient material being removed.
The number of the D-compensation dictates which of the two possibilities is
used.
Possibility 1 is used below a determined D-number, possibility 2 is used above
a determined D-number. This partition of D-compensations can be preset. For
details see the startup documents or the machine tool manufacturer's
documentation.
6.2.5 Path velocity deviations
When path compensation is active, deviations of the path velocities resulting
from the program can occur during program execution. This is due to the fact
that the programmed path velocities relate to the programmed path (without
path compensation) or the tool cutting point (with active path compensation).
Programming Manual
Page 116
However, path compensations have the effect, that the center of the milling
cutter does not move along this path, but along an equidistant. Because of this
the center of the milling cutter must be positioned depending on the contour on
either a longer path (e.g. during outside circle processing) or on a shorter path
(e.g. during inside circle processing).
Depending on the interpolation type the PA 8000 offers the possibility to control
such path velocity deviations.
With linear interpolation as well as with spline interpolation with end position
radius compensation (see before) the programmed feed rates always relate to
the tool center path, i.e. there are no deviations from the programmed velocity.
With circular interpolation as well as with spline interpolation with real-time radius compensation the programmed feed rates relate to the corrected
path. The conduct of the PA 8000 in reference to the axis velocity deviations
resulting out of this can be preset as follows:
• Speed increase with external contours, no change with internal contours
• Speed reduction with internal contours, no change with external contours
• Speed increase with external contours, speed reduction with internal
contours
Case c is preset as default with circle and spline interpolation
Programming Manual
Page 117
6.2.6 Special cases
6.2.6.1 NC blocks without positioning information :
NC blocks without positioning information or with positioning information which
does not result in axis movements in the active plane.
Reaction of the control:
The block which follows an NC block, without positioning information or with
positioning information which does not result in axis movements in the active
plane, is treated like an approach block. During the processing of the block
before this "approach block", a move to the offset point of the programmed
destination point is made.
Example: N20 G41 or. G42 D1
N30 G1 X6 Y10
N40 X12
N50... (Block without positioning information in the active
plane)
N60 X14 Y5
N70 X18
N80...
Programming Manual
Page 118
Attention:
A plane change may only be programmed when path compensation is switched
off (active G40).
6.2.6.2 Change of the compensation direction (change between G41 and G42)
Reaction of the control: The block, in which the change between G41 and G42 was programmed, is
treated like an approach block. During the processing of the block before this
"approach block" a move to the offset point of the programmed destination
point is made.
Programming Manual
Page 119
Programming Manual
Page 120
Example: ...G1
N40 G41 X3 Y7 D1
N50 X10
N60 G42 X12 Y3
N70 X16 (Change of the compensation direction)
...
Programming Manual
Page 121
6.2.6.3 Sign change of the compensation value
Reaction of the control: The block, in which the compensation value is selected with an opposite sign,
is treated like an approach block. During the processing of the block before this
"approach block", a move to the offset point of the programmed destination
point is made.
Example: ... G1...
N40 G41 X3 Y7 D1 D1 = 2 -
N50 X10 D2 = -2
N60 X12 Y3 D2 (Sign change of the compensation value)
N70 X16
Programming Manual
Page 122
Programming Manual
Page 123
6.2.6.4 Change of the size of the compensation value but with no sign change
Reaction of the control: A move is made to the intersection of the last equidistant with the previous
compensation value and the first equidistant with the new compensation value.
Example 1: ... G1...
N30 G41 X7 Y7 D1 D1 = 2,2
N40 X14 D2 = 1,1 D1>D2
N50 X20 Y2 D2 Change of the size of the compensation
value but with no sign change
Programming Manual
Page 124
Example 2: ... G1...
N30 G41 X7 Y7 D1 D1 = 1,1
N40 X14 D2=2,2 D1<D2
N50 X20 Y2 D2
Programming Manual
Page 125
6.2.7 Problem cases
6.2.7.1 Tool radius too large for an inside corner
Example: N40 G42 D1
N50 G1 X2.5 Y4
N60 X4
N70 X5 Y8.5
N80 X6 Y4
N90 X9
...
Programming Manual
Page 126
From the drawing it is clear that the tool radius is too large for the programmed
internal contour, so that this resulted in a reversal of the motion direction. In
such cases the error message 207 appears.
Programming Manual
Page 127
6.2.7.2 Radius of the circle < compensation value (R < D)
Example: ... G1...
N20 G42 X2 Y5 D1
N30 X6 Y9
N40 G2 X12 I3
N50 G1 X16 Y2
...
Programming Manual
Page 128
If the radius of the circle is smaller than the compensation value, the error
message 98 appears.
Programming Manual
Page 129
6.2.7.3 Full circle with radius compensation, external contour processing
Reaction of the control: Material is left unprocessed in the area of the programmed circle starting
position.
Example 1 (G42): N10 G1 X7 Y0 F1000
N20 G42 D1
N30 Y10
N40 G3 J3
N50 G1 Y0 D0
Programming Manual
Page 130
The same contour error also occurs, when G41 is programmed in the block
N20 and G02 in block N40. This type of contour error can also occur when
using G42 or G44, however, fewer material is left unprocessed, since a move is
made to the vertically displaced circle starting position (Q) and not to the
intersection of the equidistant (P) .
Example 2 (G44):
N10 G1 X7 Y0 F1000
N20 G44 D1
N30 Y10
N40 G3 J3
N50 G1 Y0 D0
Programming Manual
Page 131
Programming Manual
Page 132
6.2.7.4 Full circle with radius compensation G42, internal contour processing
Reaction of the control: It is not easily possible to produce a full circle with radius compensation as an
internal contour. This is because the tool will have already left the internal
contour of the circle at the intersection of the equidistant of circle path and next
block. This is illustrated in the following example.
Example: ... G1...
N20 G42 X9 Y4 D1
N30 Y6
N40 G2 J6
N50 G1 Y4
N60 X0 Y0 D0
Programming Manual
Page 133
Programming Manual
Page 134
The control reacts similarly, when G03 is programmed in the above-mentioned
program after G41.
The full circle as internal contour displayed in the last figure can be achieved by
programming two semicircles instead of a full circle, this means the above-
mentioned program example would have to be altered as follows:
... G1...
N20 G42 X9 Y4 D1
N30 Y6
N40 G2 Y18 J6
N50 Y6 J-6
N60 G1 Y4
...
Contour errors can be avoided through skillful programming and, if necessary,
by inserting NC blocks without positioning information.
The following program example shows a possible method of programming an
external contour of a full circle with path compensation, which results in a full
circle without contour errors.
Example: ...
N20 G1 X7 Y0
N30 G44 Y10 D1
N40 G3 J3
N50 G4 Dummy block)
N60 G1 Y0 D0
Programming Manual
Page 135
Full circle as external contour (with radius compensation)
The dummy block N50 has the effect that a move is made to the offset point of
the destination point of the preceding block (N40). In block N60 the path
compensation is disabled (retreat block).
Programming Manual
Page 136
6.2.7.5 Insufficient cutting
When processing inside corners (work piece angle α > 180°) it has to be
considered, that insufficient material may be removed. This is why it is
practically impossible to produce an inside corner of radius < R with a tool of
radius R.
Examples:
Programming Manual
Page 137
The examples illustrate, that insufficient cutting always occurs, when the work
piece angle α is larger than 180°.
Programming Manual
Page 138
7 Geometric instructions
7.1 G92 Set axis value
Syntax: G92 X... Y...
The current coordinate zero point can be shifted to an arbitrary point with the
instruction G92.
This type of shift is achieved by assigning new coordinates to the destination
point of the motion block preceding the G92-block. These coordinates which
are to be newly assigned are programmed together with G92. Coordinate
values (e.g. the X-coordinate value or the Y-coordinate value) which do not
change with respect to the original value do not have to be programmed.
To cancel this shifting of coordinates, program the instruction G92 without
coordinate values.
Programming Manual
Page 139
Example: N10 G1 X50 Y50
N20 G92 X0 Y10
Explanation of the example given: The destination point of the NC block N10 is the point with the coordinates X50,
Y50. In the NC block N20 this point will be assigned the coordinates X0, Y10,
i.e. the coordinate zero point is shifted as shown in the example.
Application:
A starting point can be defined for the processing of the workpiece using the
instruction G92, e.g. the pallet zero point for the workpiece zero points G54 and
G55 in the example
Programming Manual
Page 140
Like the instructions G54 to G59, the instruction G92 causes no axis travel
movements, it only causes a coordinate shifting. The values programmed with
G92 only become active, when coordinates are programmed after
programming of G92.
Note:
• The instructions M02 and M30 do not reset axis values specified with G92.
• The instruction G92 has another meaning when programmed together with
an S word. In this case it is used for programming the maximum rotational
speed of the spindle.
Programming Manual
Page 141
7.2 G70, G71 Programming in the metric format/ imperial format
Syntax: G70.... Programming in the imperial format
G71.... Programming in the metric format
With the instructions G70 and G71 a changeover is made between the input
format imperial (G70) and metrical (G71). If no changes were made by the
machine tool manufacturer, at CONTROL RESET the instruction G71 is active.
A format change within an NC program is possible. After the format change,
programmed length statements, positions and speeds are interpreted as values
in the format which was selected. The values which are active when the format
change is called up are converted into the new format.
Example: ...
N50 G71
N60 G1 X2 Y2
N70 G2 I2
N80 G70
N90 G2 I2
...
Programming Manual
Page 142
7.3 G14-G16 Polar coordinate programming
Syntax: G14 ...... Polar coordinate programming absolute
G15... Polar coordinate programming relative
G16 X... Y Definition of the pole point
With the instructions G14 and G15, a changeover can be made to
programming the destination point coordinate values in the form of polar
coordinates. After programming G14, the polar coordinates are interpreted as
absolute values (analogous to G90), after programming of G15 they are
interpreted as relative values (analogous to G91).
Programming Manual
Page 143
Before a changeover to polar coordinate programming, the plane is to be
programmed in which the polar coordinate system is to lie. If no changes were
made by the machine tool manufacturer, then the X/Y plane (G17) is active at
CONTROL RESET; if this plane is desired, G17 therefore does not need to be
programmed.
The coordinate values indicated after activation of polar coordinate
programming are interpreted as follows:
• The angle is programmed in degrees with the address character of the main
axis of the active plane.
• The radius is specified with the address character of the minor axis of the
active plane.
Programming Manual
Page 144
The polar coordinate programming is deactivated with the instructions G90 or
G91.
All following coordinate values are interpreted as Cartesian values.
7.3.1 Major axis and minor axis
Major axis Minor axis
G17 X/Y- Plane X Y
G18 Z/X- Plane Z X
G19 Y/Z- Plane Y Z
When G20 is active, the axis programmed with the address character I is the
major axis, the axis programmed with the address character J the minor axis
The following table outlines which coordinate value on the three planes is
interpreted as angle and which one as radius:
X/Y- Plane (G17) Z/X- Plane (G18) Y/Z- Plane (G19)
X: Angle in degrees Z: Angle in degrees Y: Angle in degrees
Y: Radius in X/Y- Plane X: Radius in Z/X- Plane Z: Radius in Y/Z- Plane
7.3.2 Programming without pole point information
(G17 "X/Y plane" is active as standard.)
N10 G1 X0 Y0 F100
N20 G14 X45 Y40 (P1) P1) Activation of the polar coordinate programming (absolute)
N30 X135 Y30 (P2) (P2)Angle w.r.t. X axis 135°, radius 30s 30
...
Programming Manual
Page 145
7.3.3 Programming the pole point
In addition, the pole point of the polar coordinate system can be determined at
any position were required using the instruction G16, if it is not to be identical
with the zero point of the Cartesian coordinate system. The coordinates of the
desired pole point are to be programmed together with the instruction G16.
If polar coordinate programming with G14 or G15 was activated before
programming G16, then the pole point coordinates programmed together with
G16 are interpreted as polar coordinates in absolute dimensions (according to
G14) or in incremental dimensions (according to G15).
Programming Manual
Page 146
If no change was made to polar coordinate programming before the call of
G16, the pole point coordinates programmed together with G16 are interpreted
as Cartesian coordinates.
Programming Manual
Page 147
Attention:
• Simultaneous use of G16 and G92 is not allowed.
• With the instruction G16, only a new pole point for polar coordinate
programming is specified but no new coordinate zero point.
• In the case of a plane change with G17 to G20 a pole point programmed
with G16 is reset to the zero point.
Example: (G17 is active)
N10 G14 Activation of polar coordinate programming (absolute)
N20 G16 X30 Y20 Definition of the pole point: Angle w.r.t. X axis 30°,
radius 20
N30 X45 Y30 (P1) Point in the "shifted" coordinate system: Angle w.r.t.
shifted X axis 45°, radius 30
Programming Manual
Page 148
Programming Manual
Page 149
7.4 G17-G20 Plane selection
Syntax: G17 .. Selection of X/Y plane
G18...... Selection of Z/X plane
G19...... Selection of Y/Z plane
G20 I... J... Selection of freely definable plane
The planes displayed in the next figure are selected with the instructions G17,
G18 and G19. In addition, the instruction G20 is available for the selection of a
freely definable plane.
Programming Manual
Page 150
The active plane each time is relevant for the following functions:
• G02, G03 Circular interpolation with specified center point in the clockwise
or counter-clockwise direction
• G12, G13 Circular interpolation with specified radius in clockwise or
counter-clockwise direction
• G50 Scaling
• G51, G52 Part rotation
• G40-G44 Path compensations
• G14-G16 Polar coordinate programming
Programming a freely definable plane Program G20 together with the address characters I and J to freely define and
select a plane. The number of the major axis must be given as the value of the
I word, the number of the minor axis must be given as the value of the J word.
These are the axes from which the freely defined plane is to be formed.
Major and Minor axis can be determined with the help of the right-hand-rule.
If the thumb points in the positive direction of the major axis and the index
finger points in the positive direction of the minor axis, then the middle finger
must point in the positive direction of the third axis.
Note:
• If unavailable axes, the value 0 or two equal numbers are programmed in
G20-blocks, together with I and J numbers, then the error message 204
appears.
Programming Manual
Page 151
Example: N10 G20 I4 J2 The plane G20 is formed by the axes with the numbers 4
(major axis) and 2 (minor axis).
N20 G2 I1 J0.5 Full circle in the plane G20, I controls the 4th axis, J
controls the 2nd axis
N30 G18 Call of the plane G18 (Z/X plane)
N40 G3 I0.5 K1 Full circle in the plane G18 (Z/X plane)
N50 ...
Alternatively, planes G17 to G19 can also be selected with G20 together with
the corresponding parameters.
If the X axis was assigned the number 1, the Y axis the number 2 and the Z
axis the number 3, then the following analogies are produced:
Major axis Minor axis
G17 XIY- plane analogous with G20 I1 J2
G18 Z/X- plane analogous with G20 I3 J1
G19 Y/Z- plane analogous with G20 I2 J3
Circular arcs are programmed in the active plane with the instructions G02 or
G03 (see General positioning instructions --> G02, G03 circular interpolation
with specified center point in the clockwise or counter-clockwise direction). If
G20 is the active plane, then the parameters I and J relate to the major and
minor axes respectively, which were programmed together with G20. The
parameter K has no meaning. The destination point coordinates are also
programmed in G20-blocks using the address characters of the axes, which
form the plane G20.
A plane change is always made, when the major and/or the minor axis/axes
change.
A plane change when G16 "Pole of the coordinate system" is active
deactivates G16 and resets the pole point to the coordinate zero point.
Programming Manual
Page 152
7.5 G24-G27 Programmable work field limitation
Syntax: G24 X... Y... Definition of the lower limit values
G25 X... Y... Definition of the upper limit values
G27 ... Turn on
G26.... Turn off
The work area of a machine tool is determined by the motion limits of the
individual axes. The motion limits prevent the axes from being positioned
outside of their maximum and minimum position.
Programming Manual
Page 153
With the help of the instructions G24 to G27 it is possible to reduce the work
area of a machine tool.
Such a reduction or limitation is made in three steps:
1st step: Define the lower limit values for the axis travel movements with the
instruction G24.
2nd Step: Define the upper limit values for the axis travel movements with the
instruction G25.
3rd step: Turn on the work field limitation using the modally effective
instruction G27. A programmed work field limitation is turned off
using the instruction G26 which is also modally effective
Example l: N10 G24 X-4000 Y3000
N20 G25 X7000 Y5000
N30 G27 ...
In block N10 it is determined that the X axis may not be positioned outside the
position X-4000 in the negative direction and the Y axis may not be
positioned outside the position Y-3000 in the negative direction, as long as
the work field limitation is turned on.
In block N20 it is determined that the X axis may not be positioned outside the
position X-7000 in the positive direction and the Y axis may not be positioned
outside the position Y-5000 in the negative direction, as long as the work field
limitation is turned on.
In this way the X axis may only be moved to positions within the area of X-4000
to X7000, and the Y axis only to positions within the area of Y3000 to Y5000.
Programming Manual
Page 154
Depending on whether G70 or G71 is active, the limit values are interpreted as
imperial or metric measurements (see G70, G71 Programming in the
metric/imperial format).
If the programmed limit values are exceeded when processing a motion block
when the programmable work field limitation is active, this causes the same
reaction as if the preset axis motion limits were exceeded
Note:
• When the work field limitation is turned off, the axis motion limits (software
limit switch) determined by the machine manufacturer are valid.
• If no limit values were programmed together with G24 or G25, or if the
programmed limit values are outside the axis motion limits determined by
the machine tool manufacturer and if the programmable work field limitation
is then turned on with G27, then the axis motion limits (software limit switch)
determined by the machine manufacturer are valid.
• Axis limit values programmed in G24 or G25-blocks are always interpreted
as absolute values regardless of whether G90 or G91 is active.
• Programmed axis limit values are not subject to scaling.
• A programmed work field limitation is rendered ineffective by CONTROL
RESET. In this case the axis motion limits determined by the machine
manufacturer are valid again.
Error messages: If, when the work field limitation is turned on, a destination point coordinate lies
outside of the programmed limits, the entire corresponding motion block is not
processed. The error message 211 appears.
Programming Manual
Page 155
Example: N10 G24 X-4000 Y+3000 Program the lower limit values
N20 G25 X+7000 Y+5000 Program the upper limit values
N30 G27 Turn on the work field limitation
N40 ...
...
N80 ...
N90 G26 Turn off the work field limitation
N100 ...
...
N190 .
N200 G27 Turn on the work field limitation
N210
..
N240 ...
N250 G24 Y+4000 Program a new lower limit value for the Y axis
N260 ...
...
7.6 G38, G39 Programmable mirror
Syntax: G38....
The instruction G38 enables motion paths to be mirrored
Programming: The function mirror is activated with the modally effective instruction G38
together with the address characters of the axes whose programmed motion
paths are to be mirrored. In each case an arbitrary value must follow the
address characters of the axes. This value has no effect on the program.
Programming Manual
Page 156
Example 1: Program 1 (P1) without mirror:
N10 X0 Y0 F1000
N20 X5 Y1
N30 X7
N40 Y2
N50 X5 M30
Program 2 (P2), mirror the motion paths of the X axis :
N10 X0 Y0 F1000
N20 X5 Y1
N30 G38 X1
N40 X7
N50 Y2
N60 X5 M30
Program 3 (P3), mirror the motion paths of the Y axis :
N10 X0 Y0 F1000
N20 X5 Y1
N30 G38 Y1
N40 X7
N50 Y2
N60 X5 M30
Program 4 (P4), mirror the motion paths of the X- and the Y axis:
N10 X0 Y0 F1000
N20 X5 Y1
N30 G38 X1 Y1
N40 X7
N50 Y2
N60 X5 M30
Programming Manual
Page 157
Programmable mirror, effect of the programs P1 to P4
The mirror function is turned off by programming the instruction G39 or by
programming G38 without coordinate specification.
Repeated programming of G38, in each case with different axis address
characters has the effect that positioning is always carried out only on the
mirrored motion paths of the axis or the axes which were programmed in each
last G38-block before the programming of the corresponding motion path.
Programming Manual
Page 158
The starting point of a mirrored block to be positioned is always the destination
point of the preceding motion block.
If the function "mirror" is turned off at another position to the one at which it was
turned on, then a part position offset via G92 becomes automatically active for
the difference in the route.
Example 2 (mirror with prior setting of an axis value using G92): N10 G1 X0 Y0 F1000
N20 G1 X5 Y5
N30 G92 X0 Shift the Y axis to the current position X5
/N40 G38 X1
N50 G1 X10 Y5
N60 G39 Turn off mirroring
N70 G4 Block without effect (dummy block), necessary
before G92 without axis coordinates
N80 G92 Cancel part position offset
N90 M30 Program end
Programming Manual
Page 159
Programming Manual
Page 160
7.7 G51, G52 Partrotation
Syntax: G51 R... Degree
G52 R... Radiant
By means of the partrotation it is possible to rotate a complete program or a
part of a program within active plane. The center of rotation is programmable.
The function is activated by G51 or G52. The angle of rotation is defined by
means of the address R. A positive value means a rotation in the mathematical
negative sense (counter clockwise), a negative value means a rotation in the
mathematical negative sense (clockwise).
If G90 is active the value is interpreted absolute, in the case of G91 it is
interpreted incremental.
The rotation is always performed within the plane which is defined by G17-
The center of rotation is defined in a G51, G52 block by means of the address
of the corresponding axes, defining the plane.
The partrotation is deactivated by reset, end of the program, change of the
plane by a programmed G17-G20 or by means of G92 without axis-information.
Example 1: Mainprogram P1:
N10 X4 Y4 F100
N20 L1 Q2
N30 M30
Programming Manual
Page 161
Subprogram P2: N10 G90
N20 X8 Y4 F100
N30 Y7
N40 X4
N50 Y4
N60 G51 R90 Activation of partrotation. Angle of rotation 90 degree
N70 M30
Example 2: Mainprogram P1:
N10 X6 Y5 F1000
N20 G92 X0 Y0 Set axis value
N30 L3 Q2
N40 M30
Programming Manual
Page 162
Subprogram P2: N10 G90
N20 G1 X2 Y-1
N30 G3 X3 Y0 I1
N40 G1 X2
N50 Y-1
N60 X0 Y0
N70 G91
N80 G51 R90
N90 M30
Programming Manual
Page 163
7.8 G50 Scaling
Syntax: G50 R...
The instruction Scaling is a "workpiece orientated function". It enables a
proportional enlargement or reduction of a programmed workpiece contour to
made a given scale factor
Programming: The function scaling is programmed with the instruction G50 together with a
scale factor R.
The scale factor must be >0. Scale factor <0 are rejected with the error
message 18.
Scale factors effect al subsequently programmed motion path and radii, but
only in the active plane. A scale factor of 0.5, for example, has the effect that all
motion path and radii programmed subsequently are halved, and a scale factor
of 2 that all motion paths and radii subsequently programmed are doubled.
Note:
• The scale factor programmed with the address R is incremental when G01
(relative programming) is active. A scale factor of 1 is assumed if no scale
factor has been input yet.
Programming Manual
Page 164
Example1: N50G90
...
N80 G50 R0.5
....
N100 G91
.....
N120 G50 R0.25 -> effective scale factor = 0.75
Example 2: N50G90
...
N80 G91
.....
N100 G50 R0.25 -> effective scale factor = 1.25
Example 3: The workpiece contour K1 in the following diagrams has been produced using
the program P1 with G90 active. The contour K2 has been produced using the
program P2. This program is identical to program P1 apart form the scale factor
of 0.5 in the N20 block.
Program P1 Program P2
N10 G90 F1000 N10 G90 F1000
N20 X20 Y20 N20 X20 R0.5 Y20
N30 X40 N30 X40
N40 Y40 N40 Y40
N50 X20 N50 X20
N60 Y20 N60 Y20
N70 M30 N70 M30
Programming Manual
Page 165
Scaling with absolute and relative dimension input
An programmed scaling function is deleted by CONTROL RESET, i.e. the
scale factor is set to 1.
Positioning information can be programmed in G50 blocks at the same time,
see example above.
In the operating mode "AUTOmatic" the destination point values obtained by
the NC program by scaling are displayed in the display window as end point
during processing of NC blocks, for which a scale factor is active.
Programming Manual
Page 166
Note:
• The instruction G50 has no effect on part position offsets programmed with
instructions on tool tip radius and tool length compensations, rotational axes
or an work field limits programmed with instructions from G24 to G27.
7.9 G74 programmable homing
Syntax: G74 X... Y... ...
The instruction G74 causes one or several axes to move to their home position.
The axis addresses of the axes which are to move to their home position are to
be programmed in connection with G74. A value is to be given for each
programmed axis address character. This value must be >= 1, but has however
no effect on the homing.
The axes programmed in connection with G74 all move simultaneously in
direction of their home position. If the axes have reached their home position,
then the machine zero point is set based on this homing position.
Example: ......
N50 G74 X1 Y1
.......
Note:
• Never program two consecutive G74-blocks.
• When G74 is called up no path compensations may be active.
• When G74 is called up set axis values are set to 0 with G92.
• Part position offsets programmed with G54-G59 are not influenced by G74.
Programming Manual
Page 167
7.10 M80 delete remaining path using probe function
Syntax: M80 X... Y...
The function delete remaining path using probe function is activated as default
by the block wise effective instruction M80.
Note:
• If the instruction M80 has already been allocated with an other function by
the machine tool manufacturer, then the possibility exists that the function
"delete remaining paths using probe function" has been assigned to another
M-Code. For further details about this please refer to the machine tool
manufacturers documentation.
Application: After the homing process, the machine's coordinate system is clearly laid out.
The exact location of a workpiece to be processed in the machine's coordinate
system can be determined with help of measuring probes with the function
"delete remaining path using probe function".
How the function "delete remaining path using probe function" works in detail,
is illustrated in the following example.
Example 1 delete remaining path using probe function without consideration of the measuring probe's radius::
...
N10 X0 Y0 F1000 M80
N20 X-1
N30 Y-5
N40 X5
N50 Y0 M80
N60 ...
Programming Manual
Page 168
X, Y original coordinate system
X'', Y'' Coordinate system after the part position offset
Explanations: The exact location of the workpiece in the coordinates system is unknown. The
following program blocks enable a clear location of the workpiece in the
coordinates system:
N10 X0 Y0F1000 M80 The point at which the measuring probe/the tool
reaches the workpiece receives the coordinates X=0,
Y=0.
N20 X-1 Move the measuring probe or tool away from the
workpiece edge.
Programming Manual
Page 169
N30 Y-5 Position the measuring probe/tool under the
workpiece
Programming Manual
Page 170
N40 X5
N50 Y0 M80 The point at which the measuring probe/the tool
reaches the workpiece receives the coordinates X05,
Y00. The new coordinates origin is now positioned at
the left lower corner of the workpiece.
N60 ... Beginning of the actual NC program for the
processing of the workpiece.
The measuring probe (instead of a tool) is located at the point T. The first
program block N10 causes the measuring probe to be moved in a straight line
in the axes X and Y to the machine's zero point. However as soon as the
measuring probe reaches a tool edge (point P1 in the example), the travel
movement is stopped, the point P1 is assigned the destination point
coordinates X`= 0, Y`= 0, which have not actually been reached yet. Thus the
offsetting of the X-axis for the workpiece in relation to the machine's
coordinates system is performed.
This offset must also be determined for the Y-axis.
For this, first of all the measuring probe is moved away from the workpiece
edge by the program block N20 and then brought to a position underneath the
workpiece by the program blocks N30 and N40. Then by a travel movement in
the Y-axis alone, the offsetting of the Y-axis of the workpiece can now be
determined in relation to the Y-axis of the machine's coordinate system.
This happens in the program block N50. The measuring probe is driven linearly
in the Y-axis in the direction Y'= 0. When the workpiece edge is reached the
travel movement is stopped. The destination point coordinate Y``= 0 is
assigned to the point reached P2. The point P3 X``= 0, Y''= 0 is therefore the
origin of the coordinate system in which the workpiece can be clearly
positioned. It lies at the lower left-hand corner the workpiece.
Programming Manual
Page 171
Example 2 Delete remaining path using probe function under consideration of the measuring probe radius:
Here the exact location of the workpiece in the coordinates system is also
unknown. It is determined here with help of a measuring probe with the radius
10 mm.
...
N100 X-10 Y0 M80
N20 X-15
N30 Y-50
N40 X50
N50 Y-10 M80
T = tool with radius 10 mm X, Y Original coordinate system
Programming Manual
Page 172
X ", Y" Coordinates system after the part position offset
Programming Manual
Page 173
Explanations: N10 X-10 Y0 M80 The measuring probe T is positioned in the direction
of the point X-10, Y0. The point which the measuring
probe center reaches when the measuring probe
touches with the workpiece, is assigned the
coordinates X-10, Y0.
N20 X-15 Move the measuring probe away from the workpiece
edge
N30 Y-50 Position the measuring probe under the workpiece
N40 X50
N50 Y-10 M80 The tool is positioned in the direction of the point X50,
Y-10. The point which the measuring probe center
reaches when the measuring probe touches with the
workpiece, is assigned the coordinates X = 50 Y = -
10. The new coordinate origin lies at the lower left-
hand corner of the workpiece.
Note:
• The instruction "delete remaining path using probe function" may only be
programmed together with the instruction G01, G02, G03, G07, G12 or G13
• The function "delete remaining path using probe function" has a similar
effect to the instruction G92 "set axis value". In the case of G92, the
position at which the tool is located upon call of G92 is allocated the
coordinate values which were programmed in connection with G92.
• In the case of M80, the destination point coordinates programmed in the
M80-block are assigned to the point where the measuring probe or the tool
reaches a workpiece edge. Thus in both cases a part position offset occurs.
In the further course of the program the processes are based on the offset
zero point.
Programming Manual
Page 174
• With the function "delete remaining paths using probe function" reached
part position offsets correspond to axis values set with G92. These can be
cancelled with N.. G92 are. These values are retained during CONTROL
RESET
Programming Manual
Page 175
8 Influencing the program
8.1 M00 program interruption (unconditional stop)
Syntax: M00
Unless other arrangements have been made in the PLC-program, the
instruction M00 enables an NC program to be interrupted in order to carry out a
measurement, or similar. After processing an NC block in which the instruction
M00 was programmed the controller interrupts the program execution. All
modal values are preserved. Press the start-button afterwards to allow the
processing to continue.
8.2 M01 program interruption (conditional stop)
Syntax: M01
The instruction M01 has the same function as M00, presupposing that F10: AUTOMATIC --> F3: Program flow 2 --> F2: Optional halt (M01) was
selected before.
If, F10: AUTOMATIC --> F3: Program flow 2 --> F2: Optional halt (M01) is
only selected, after an NC block with the instruction M01 has been processed
and is already located in the dynamic block buffer, then the program is not
interrupted, even if the actual execution of the M01 - block has not yet begun.
Programming Manual
Page 176
8.3 M02, M30 End of program
Syntax: M02/M30
The end of the program is programmed with the instructions M02 or M30.
These two instructions have exactly the same effect, it is therefore not
important which one is used.
In contrast to M00 the instructions M02 and M30 have the effect that all modal
values are cancelled and the control is again reset in the home position.
M02 or M30 is to be entered in the last block of an NC program. The axes
remain at the position reached at the end of the program.
By using the start-key the program flow can be started again.
If a program repetition was programmed with L in an M02 or M30 block, then
M02 or M30 respectively first becomes active after the last repetition.
In subroutines M02 or M30 only marks the end of the subroutine, but not yet
the end of the main program. M02 or M30 in this case only cause a return to
the main program; the control is not reset to the home position. Each program
must contain M02 or M30 as an end label. If this is not the case, the error
message 32 appears.
Note:
• A offset of the coordinate zero point programmed with G92 is not reset by
M02/M30.
• Subroutine calls in a block with M02/M30 are not allowed. No error
message appears; however, the subroutine call is not executed.
Programming Manual
Page 177
• M02/M30 can be positioned anywhere in the last block; the instructions
which follow after it in the same block are still processed before M02/M30
becomes active.
8.4 G10, G11 Empty / fill dynamic block buffer
8.4.1 Summary
The PA controls are equipped with a block buffer for a certain number of NC
blocks.
This block buffer is filled by the interpreter process. From this block buffer the
interpolator process takes the NC blocks. For certain applications it is
necessary to prevent the interpolator process from taking blocks from the block
buffer. The withdrawal of blocks from the block buffer can be enabled or
disabled using the instruction G10 "Empty dynamic block buffer" or G11 "Fill
dynamic block buffer".
8.4.2 G10 Empty dynamic block buffer
Syntax: G10
Application: The instruction G10 is necessary for example, when a program must be
stopped at a certain position using M00, in order then to output messages to
the operator with the help of the interactive cycles.
After processing a G10-block, the block buffer is only refilled by the interpreter
process after all preceding blocks have left the block buffer.
Programming Manual
Page 178
Example: Tool change at unload position X=0, Y=0. The blocks marked with * are cycle
blocks. . . .
N100 Y0
N110 X0
N120 M0
N130 G10
N150 G4
(1)
N160 G10
N180 X200 Y200
. . .
(1) The dummy block N150, together with the instruction G10 in N160, has
the effect that the block N180 is only processed after the start button is
pressed.
8.4.3 G11 Fill dynamic block buffer
Syntax: G11
Application: The instruction G11 is useful when a fairly large number of very short blocks
has to be processed without down times at the block transitions.
Programming of G11 is recommendable, for example, before the activation of a
spline interpolation or the function "Look Ahead", where an optimum result can
only be achieved when a sufficient number of NC blocks is present in the
dynamic block buffer at the time of
If G11 is programmed in a block, then this instruction as well as the following
blocks are only processed in the interpolator process when the block buffer is
completely full or the complete program is contained in the block buffer.
Programming Manual
Page 179
8.5 G72, G73 interpolation with precision stop OFF or ON
Syntax: G72/G73...
With the program word G73 the instruction interpolation with precision stop
is activated, it is deactivated with the program word G72. Through the
interpolation with precision stop, contouring errors are removed right up to the
block end.
Contouring errors result from inevitable control deviations. The size of the
contouring error depends on the feed rate and the control loop-amplification
(KV FACTOR). Contouring errors can lead to slight rounding of the corners of
the workpiece, as shown in the figure. Depending on the type of processing,
contouring errors can also lead to twisting and misformation of the corners.
Contour with contouring error
A rounded contour corner due to contouring errors is not usually a negative
thing, since sharp edges are mainly undesirable.
Programming Manual
Page 180
If, however, contouring errors must be avoided (e.g. when turning special
edges for seals), this is possible with help of the instruction G73. For all types
of interpolation, this instruction has the effect that the following NC-block is only
activated once the axes have traveled to the destination of the block which is
currently in processing. In this way contouring errors, up to a preset amount,
can be removed to the block end.
If G73 is programmed, then it is to be taken into account, that the tool may lose
contact with the workpiece when stopping. Marks occur in the workpiece
contour, since the cutting pressure is suddenly reduced when the feed is
halted.
Contour processed with precision stop
Programming Manual
Page 181
8.6 G08, G09 Look Ahead OFF / ON
Syntax: G08/G09...
The function Look Ahead is switched on using the instruction G09 and switched
off using the instruction G08.
Note:
• The function "Look Ahead" is also deactivated by NC blocks using the G-
codes:
G73 interpolation with precision stop ON
G74 programmable homing
G95 feed rate as distance/rev
and during processing of an NC program by blocks.
G08 is activated automatically by these G-codes.
Method of operation of the function "Look Ahead": As standard, i.e. with G08 active, NC motion blocks are processed as follows.
At the beginning of the NC motion block, acceleration takes place from 0 up to
the feed rate. At the end the NC block braking takes place, so that the feed rate
is zero when the destination point of the motion block is reached and therefore
travel stops at exactly that point.
Processing of NC blocks with and without "Look Ahead"
Programming Manual
Page 182
The function "Look Ahead", however, has the following effect .
When "Look Ahead" is active the PA 8000 recognizes, several NC blocks in
advance, at which positions the axes have to be accelerated or braked. The
feed rate is automatically adjusted by acceleration or braking. The adjustment
is made under consideration of the following factors:
• the feed rate programmed in the individual NC blocks
• the path curve and the corners, taking the maximum admissible axis
acceleration values into consideration
• the maximum admissible axis speeds
Thus a uniform feed is guarantied for two or more NC blocks in advance This
leads to a more uniform and (in some cases – considerably) faster processing,
which, in turn results in higher surface quality and increased productivity
Programming Manual
Page 183
To guarantee this, the control must not only consider the current NC blocks, but
must also "look ahead" and take the course of the following NC blocks into
consideration.
Programming Manual
Page 184
To enable a constant feed rate over several blocks in advance, when "Look
Ahead" is active, the motion does not stop at the programmed block
destinations, but continues with the feed rate reached at the block end
If the feed rate must be reduced to 0 at the block end, e.g. because G09 was
deactivated, motion stops exactly at the last block destination before
deactivation of the function "Look Ahead".
With PA control a large number of NC blocks can be "looked" at in advance
with active G09 function. The number of NC blocks which can be Looked at in
advance by the PA 8000 depends on the available memory space in the
dynamic block buffer this is at least 4 blocks.
When processing several NC blocks with active "Look Ahead" function the feed
rate is limited so that a reduction of the feed rate to 0 is possible up to the last
block to be processed with active G09 and that in each block there is at least
one point of interpolation.
If a block without positioning instructions appears within a sequence of NC
blocks which are to be processed with active G09, then the feed rate is
reduced to 0 at the end of the preceding motion block.
If, when G09 is active, the minimum block execution times are not too short or
the maximum block preparation times not too long, then it is always guaranteed
that a new block in the geometry preparation is finished in time and the
interpolator process is available for the processing in time. This can always be
ensured by programming G11 ("Fill dynamic block buffer) or G04 ( "Dwell time),
for instance, before a critical program section.
With PA controls it is thus possible, if necessary, to accelerate or brake from
over several blocks away.
Programming Manual
Page 185
Note:
• When switching over from the processing of a NC program in next block
mode to the processing in single mode all G09 blocks are interpreted from
the instant of switching over as G08 blocks. If a switch-over is made from
processing in single mode to processing in the next block mode, then it can
occur that G09 blocks were already interpreted as G08 blocks up to the
instant of switching over and are therefore still processed as G08-blocks.
When processing NC blocks in the single mode the instruction G09 always
works like G08.
• When "Look Ahead" is active the spline interpolation with tangential
transitions should always be used. The other spline interpolation types are
of course also applicable; in which case one G08 block at the spline start
and one at the spline end must be tolerated however.
• To achieve an optimal method of operation of the function "Look Ahead", it
is recommendable to ensure that with servo processor systems after the
function "Look Ahead" is activated, the dynamic block buffer is filled before
the first motion block is executed with "Look Ahead". The filling of the
dynamic block buffer can be achieved, for example, by using the instruction
G11 ("Fill dynamic block buffer") or with a dwell time programmed with G04.
Example: . . .
N30 G9 (G09 must already be active before G04/G11 is
programmed)
N40 G4 F500 or N40 G11
N50 G1 X20 Y30
. . .
N200 M30
Programming Manual
Page 186
Note:
• When "Look Ahead" is active, it can be profitable, to limit the acceleration
using the instruction "programmable acceleration". This causes a level
setting of the acceleration when "Look Ahead" is active.
• The function "Look Ahead" is optional and not available in all PA systems.
8.7 G86 Corner acceleration, contour accuracy
In addition to the "Look Ahead"-function the instruction G86 is also available.
With this it is possible to program a corner acceleration (E) and a contour
accuracy (K).
Example: N20 G86 E0.9 K0.05
8.7.1 Corner acceleration:
Syntax: G86 E...
The axes of a machine tool have a maximum admissible acceleration. A corner
acceleration can be programmed by the instruction G86 together with an E
word. Depending on the value of the E word, the corner acceleration either
causes a short-term infringement of, or a reduction of, the maximum
acceleration of the axes when Look Ahead (G09) is active. The effect of
different E word values is to be taken from the following table:
Programming Manual
Page 187
Value of the E word Effect
1 Doubles the max. acceleration
0.5
(Preset value)
Halves the max. acceleration
0.25 Retains the max. acceleration
0.05 Reduces the max. acceleration by 10%
The E word programmed with G86 controls the sharp decrease in axis speed
between motion blocks.
Sharp decrease in speed between motion blocks dependent on the corner
acceleration
Programming Manual
Page 188
The size of this sharp decrease in speed depends on the size of the E word
value and the angle between the paths described in successive blocks. The
higher the E word value and the less the deviation of the angle from 180°, the
less the decrease in speed. On the basis of the contouring error the required
contour accuracy at the corner is therefore finally programmed via the E word.
Sharp decrease in speed between successive motion blocks. dependent on the
angle
Programming Manual
Page 189
Programming Manual
Page 190
Note:
• If no E word was programmed, the value preset by the machine tool
manufacturer applies.
• The function Look Ahead can be switched off with a very low E-value (e.g.
0.001), so that the processing is made in the same way as when G08 is
active.
8.7.2 Contour accuracy
Syntax: G86 K...
The desired contour accuracy during circular interpolation can be programmed
with the instruction G86 together with a K word.
During circular interpolations a circle radius reduction, therefore a contour
inaccuracy, appears depending on circle amplification (KV) and path velocity.
Circle reduction error when pulling out of a circle from standstill
Programming Manual
Page 191
During circular interpolation with programmed contour accuracy, the path
velocity is lowered so greatly that the programmed maximum circle radius
reduction is not exceeded. If no value is input for the circle accuracy, a high K
value can be programmed.
The K value is programmed in the same units as the axis positions.
Note:
• A programmed contour accuracy only influences the circular interpolation
(with G02/G03, G12/G13 and G07), and not the linear and spline
interpolation.
• If no K-value was programmed, the value preset by the machine tool
manufacturer is valid.
• Regardless of the programmed contour accuracy the feed rate of circular
interpolation is always limited by the machine protection element set by the
machine tool manufacturer, so that the permissible axis accelerations are
not exceeded during circle processing. Therefore, if no high axis
acceleration occurs during the program execution despite an increase of the
K word value, the reason for this may be the machine protection element.
• The programming of circular accuracy may be deactivated by a very high K-
value (e.g. 100). In this case the machine protection element comes into
effect.
• The function "G86, Corner Acceleration", Contour Accuracy" is optional and
not available in all PA systems.
Programming Manual
Page 192
8.8 G04 Dwell time
Syntax: G4 F...
The instruction Dwell time is programmed with the program word G04 together
with an F word. The dwell time in milliseconds is to be entered as sequence of
digits of the F word. However another unit can also be arranged for. The
maximum value is 99999.
A dwell time has the effect that the next NC block is not executed before expiry
of the dwell time.
Example: . . .
N50 X10
N60 G4 F500
N70 Y20
. . .
Explanation of the example given: The programmed dwell time in block N60 has the effect that after processing of
block N50 a waiting time is inserted (in this case 0.5 s) before the next block
(N70) is processed.
If dwell times longer than 100 seconds are necessary, G04 must be
programmed the required number of times in sequence.
Programming Manual
Page 193
8.9 Auxiliary functions (BCDs)
Auxiliary functions are program words which are used transfer information from
the NC program to the PLC program.
Up to four of these auxiliary functions can be preset in the PA 8000. Usually the
address letters M, S, U and T are used for auxiliary functions. The
corresponding program words are ignored in the NC program and transferred
as so-called BCDs to the PLC PROGRAM.
In general, the meaning of the BCDs is determined by the machine
manufacturer. (for further information about the BCDs please see the
documentation of the respective manufacturer.) The M-Codes which are listed
in the appendix however, are predefined. (although they can only be used if the
relevant function is also available.)
Only those M-Codes listed in the table which are marked by an asterisk (*) are
transferred to the PLC. Some of them (such as M02/M30) are only transferred
to the PLC when the corresponding function is actually executed. In the table
these are marked by ((*)). M02 and M30, for instance, are only transferred to
the PLC when they are at the end of a main program as this initiates
CONTROL RESET. They are not transferred to the PLC when they are
positioned at the end of a subroutine as this would just cause a jump back to
the main program.
Programming Manual
Page 194
9 Cycles
9.1 Drilling cycles
9.1.1 Introduction
The programming of drilling processes can be simplified with the drilling cycles.
The available selection of drilling cycles covers the most important standard
cases. The programmer only has to define a few parameters, in order to adapt
the drilling cycles to his particular application.
The drilling cycles are realized as independent subroutines in a protected area
of the NC part program memory with the program numbers P999981 to
P999989. Their call is made however in a simplified form through the G-codes
G81 to G89. The drilling cycles cannot be changed or cancelled.
The machine tool manufacturer can change the program sequence in the
individual drilling cycles if required. If this has been done in your case, please
refer to the machine manufacturer's documentation.
Call and set-up of the drilling cycles are modeled according to DIN 66025.
Note:
• G-Codes and program numbers for work cycles can be preset and thus
could have been changed by the machine tool manufacturer. For details
about this, if necessary, please refer to the machine tool manufacturer's
documentation. This description of the drilling cycles however is based on
the default values for G-codes (G80-G89) and program numbers (P999981-
P999989).
Programming Manual
Page 195
9.1.2 Use of the drilling cycles
A drilling cycle in an NC part program is always programmed in the following
steps:
• Allocate the parameters
• Select the desired drilling cycle
• Move to the drilling position in X and Y (once or repeatedly)
• Automatically call up and execute the selected drilling cycle after reaching
the drilling position
• Deselect the drilling cycle
These steps are individually explained in the following text.
9.1.2.1 Allocation of the parameters
Before a drilling cycle is selected, feed rate, spindle speed and the parameters
with the geometric data of the respective drilling cycle must be programmed.
Specific parameters are for example motion distances and dwell times. The
drilling cycles use the parameters P1 to P15. Please ensure that you always
allocate the correct parameters to the corresponding drilling cycle.
If not all parameters are allocated with values, no error message is output.
Within the drilling cycle all parameters which are necessary are used
unchecked. Error messages due to incorrect or non allocated parameters can
first appear during the execution.
In the drilling cycles listed in the following text, the terms reference plane, retract plane and final hole depth are used.
The reference plane lies at the safety clearance above the workpiece surface,
this means that above this plane it is possible to move vertically in the rapid
traverse. Below this plane, rapid traverse is only possible in the Z+ direction,
i.e. away from the workpiece. The feed movements start from the reference
plane.
Programming Manual
Page 196
The retract plane is the plane to which the spindle moves at the end of the
drilling cycle. The spindle is then at the free movement position.
The final hole depth is obtained from the measuring point of the tool. This is
the drill tip for a twist drill for example, or an arbitrary point on the top surface
for a machine reamer.
9.1.2.2 Selection the desired drilling cycle
By programming the G-codes G81 to G89 the corresponding subroutine is
selected. The cycle itself is first selected automatically after the positioning of
the X or Y axis (see below). The feed-in of the drilling cycles is always made in
the Z direction.
Programming Manual
Page 197
Note:
• After termination of the drilling cycle the G00-code (linear interpolation in
the rapid traverse) is always active, i.e., if destination point coordinates are
programmed in a following NC block without a G-Code, then a move to
these points is made in the rapid traverse.
9.1.2.3 Move to the drilling position in X and Y (once or repeatedly)
A drilling cycle independently called up after each positioning of the X or the Y
axis as long as it has been selected. This is true as long as one of the following
G-codes is modally effective:
G00 Linear interpolation in the rapid traverse
G01 Linear interpolation in the feed rate
G02 Circular or helical interpolation with specified center point in the
clockwise direction
G03 Circular and helical interpolation with specified center point in the
counter-clockwise direction
G07 Tangential circular interpolation
G12 Circular or helical interpolation with specified radius in the clockwise
direction
G13 Circular or helical interpolation with specified radius in the counter-
clockwise direction
G33 Thread cutting, constant rise
G34 Thread cutting, variable rise
Note:
• Drilling cycles cannot be used during modally effective G06 (spline
interpolation).
Programming Manual
Page 198
Example: N30 G1 F1000 S500
*N40 P2=500000, P3=420000
*N50 P10=600000, P4=1000
N60 G82
N70 X20 Y20
N80 X40 Y70
N90 G80
N100 ...
Explanation: The definitions of the parameters are created in the program blocks N40 and
N50. These definitions are used in the subsequent cycle (NC subroutine).
In N60 the drilling cycle G82 is activated (spot facing with dwell time). The
drilling cycle is first processed after the position programmed in N70 is
reached.
G00 (rapid traverse) is effective after the termination of the drilling cycle. The
following NC block causes a further processing of the drilling cycle at a new
X/Y position.
The cycle is deactivated again with the instruction G80.
Programming Manual
Page 199
9.1.2.4 Deselection of the drilling cycle
An activated drilling cycle is deselected either by the program word G80 or by
calling up another drilling cycle.
Note:
• As a consequence of programming drilling cycles as NC subroutines, the
execution of the drilling cycles is limited to one main and four subroutine
planes. Thus drilling cycles cannot be executed from the 4th subroutine
plane outwards. However, an execution from the main program plane or the
1st-3rd subroutine plane is possible. The execution (i.e. the implicit
subroutine call up) is made after the programmed positions have been
reached!
9.1.3 G80 Cancel the drilling cycle
Syntax: G80
The function "drilling cycles" is deselected with the program word G80. The
following positioning instructions therefore cause no more cycle call up.
Programming Manual
Page 200
9.1.4 G81 Drilling to final depth
Syntax: G81
The program word G81 selects the drilling cycle "drilling to final depth". The
feed values and rotational speeds defined in the NC program are used in the
drilling cycle. Three parameters must be defined before calling up:
P2 Reference plane, absolute Z coordinate
P3 Final hole depth, absolute Z coordinate
P10 Retract plane, absolute Z coordinate
Example: N30...
*N40 P2=400000, P3=60000
*N50 P10=520000
N60 G81
N70 X30 Y60
N80 G80
N90...
Programming Manual
Page 201
Programming Manual
Page 202
1. Rapid traverse in the Z direction to the reference plane (P2).
2. Drill to the final depth required (P3) using the current feed rate.
3. Pull out in rapid traverse to the retract plane (P10).
9.1.5 G82 spot facing with dwell time
Syntax: G82
The program word G82 selects the drilling cycle "spot facing with dwell time".
The feed values and rotational speeds defined in the NC program are used in
the drilling cycle. Four parameters must be defined before calling up:
P2 Reference plane, absolute Z coordinate
P3 Final hole depth, absolute Z coordinate
P4 Dwell time in ms
P10 Retract plane, absolute Z coordinate
Example: N30 ...
*N40 P2=400000, P3=60000
*N50 P4=1000, P10=520000
N60 G82
N70 X30 Y60
N80 G80
N90 ...
Programming Manual
Page 203
1. Rapid traverse in the Z direction to the reference plane (P2).
2. Drill to the final hole depth (P3) using the current feed rate.
3. Wait for the dwell time (P4) to elapse before breaking contact with
workpiece.
4. Pull out in rapid traverse to the retract plane (P10).
9.1.6 G83 Deep hole drilling
Syntax: G83
The program word G83 selects the drilling cycle "deep hole drilling with shaving
removal". The feed values and rotational speeds defined in the NC program
are taken over in the drilling cycle. Seven parameters must be defined before
calling up:
P1 First delivery, incremental value
P2 Reference plane, absolute Z coordinate
P3 Final hole depth, absolute Z coordinate
Programming Manual
Page 204
P4 Dwell time in ms
P5 Further feed-in, incremental value
P6 Safety clearance, incremental value
P10 Retract plane, absolute Z coordinate
Example: N30 ...
*N40 P1=130000, P2=530000
*N45 P3=70000, P4=1000
*N50 P5=120000, P6=50000
*N55 P10=660000
N60 G83
N70 X30 Y60
N80 G80
N90 ...
Programming Manual
Page 205
1. Rapid traverse in the Z direction to the reference plane (P2).
2. Drill using the current feed rate with the first feed-in value (P1) to the
depth 1.
3. Pull out in rapid traverse to the reference plane (P2).
4. To allow the drill bit to cool, the Z axis remains on the reference plane
(P2) during the dwell time (P4).
5. Move in rapid traverse to P1-P6 (first feed-in minus safety clearance) in
the hole.
6. Drill to the depth 2: P6+P5 (safety clearance plus feed-in) using the
current feed rate.
7. Pull out in rapid traverse to the reference plane (P2).
8. Move in rapid traverse to P1+P5-P6 (first feed-in plus further feed-in
minus safety clearance) in the hole
9. Move in rapid traverse to P1+P5-P6 (first feed-in plus further feed-in
minus safety clearance) in the hole
10. Pull out in rapid traverse to the retract plane (P10).
9.1.7 G84 Thread cutting with balanced chuck
Syntax: G84
The program word G84 selects the drilling cycle "thread cutting with balanced
chuck". The feed values and rotational speeds defined in the NC program are
taken over in the drilling cycle. Four parameters must be defined before calling
up:
P2 Reference plane, absolute Z coordinate
P3 Final hole depth, absolute Z coordinate
P4 Dwell time in ms
P10 Retract plane, absolute Z coordinate
Programming Manual
Page 206
Example: N30 ...
*N40 P2=400000, P3=60000
*N50 P4=1000, P10=520000
N60 G84
N70 X30 Y60
N80 G80
N90 ...
1. Rapid traverse in the Z direction to the reference plane (P2).
2. Drill using the current feed rate and clockwise rotating spindle (M03) to
the final hole depth (P3).
3. Reverse spindle, i.e. the direction of rotation changes; a pause is made
for the dwell time (P4).
4. Pull out using the current feed rate to the reference plane (P2).
5. Reverse spindle, i.e. spindle's direction of rotation is again clockwise.
6. Move in rapid traverse to the retract plane (P10).
Programming Manual
Page 207
9.1.8 G85 Reaming
Syntax: G85
The program word G85 selects the drilling cycle "reaming". The feed values
and rotational speeds defined in the NC program are taken over in the drilling
cycle. Four parameters must be defined before calling up:
P2 Reference plane, absolute Z coordinate
P3 Final hole depth, absolute Z coordinate
P4 Dwell time in ms
P10 Retract plane, absolute Z coordinate
Example: N30 ...
*N40 P2=400000, P3=60000
*N50 P4=1000, P10=520000
N60 G85
N70 X30 Y60
N80 G80
N90 ...
Programming Manual
Page 208
Programming Manual
Page 209
1. Rapid traverse in the Z direction on the reference plane (P2).
2. Drill using the current feed rate to the final hole depth (P3).
3. Wait for the dwell time (P4) to elapse.
4. Pull out using the current feed rate to the reference plane (P2).
5. Move in rapid traverse to the retract plane (P10).
9.1.9 G86 Bore out
Syntax: G86
The program word G86 selects the drilling cycle "bore out". The boring out is
followed by an orientated spindle retraction which is offset in the X , Y direction.
This prevents the inner contour of soft materials from being damaged when the
boring bar is pulled out. The expansion level S-Analog with feedback is a
prerequisite for this function. The feed values and rotational speeds defined in
the NC program are taken over in the drilling cycle. Six parameters must be
defined before calling up:
P2 Reference plane, absolute Z coordinate
P3 Final hole depth, absolute Z coordinate
P4 Dwell time in ms
P8 Incremental lift distance in the X axis, sign dependent
P9 Incremental lift distance in the Y axis, sign dependent
P10 Retract plane, absolute Z coordinate
Programming Manual
Page 210
Example: N30 ...
*N40 P2=400000, P3=60000
*N50 P4=1000, P8=1500
*N55 P9=1500, P10=520000
N60 G86
N70 X30 Y60
N80 G80
N90 ...
1. Rapid traverse in the Z direction to the reference plane (P2).
2. Bore to the final hole depth (P3) using the current feed rate.
3. Wait for the dwell time (P4) to elapse.
4. Move away 0.1 mm using the current feed rate.
5. Spindle is orientated to 0 degrees (M19).
6. Spindle is moved in the X or Y axis by the lift distance (P8 or P9).
7. Pull out to the retract plane (P10) in rapid traverse.
Programming Manual
Page 211
Programming Manual
Page 212
9.1.10 G87 Reaming with measuring stop
Syntax: G87
The program word G87 selects the drilling cycle "reaming with measuring
stop". Take note that the area of the retract plane must guarantee sufficient
space for measuring. Seven parameters must be defined before calling up this
drilling cycle:
P2 Reference plane, absolute Z coordinate
P3 Final hole depth, absolute Z coordinate
P4 Dwell time in ms
P10 Retract plane, absolute Z coordinate
P11 Processing feed rate
P12 Retract feed rate
P13 First reamed depth, absolute Z coordinate
Example: N30 ...
*N40 P2=400000, P3=60000
*N45 P4=0, P10=520000
*N50 P11=600, P12=400
*N55 P13=250000
N60 G87
N70 X30 Y60
N80 G80
N90 ...
Programming Manual
Page 213
1. Rapid traverse in the Z direction to the reference plane (P2).
2. Ream with the processing feed rate (P11) to the first reamed depth (P13).
3. Pull out to the retract plane (P10) with the retract feed rate (P12).
4. Halt feed rate to allow measuring of the hole, press START to continue
with the processing.
5. Rapid traverse to the reference plane (P2).
6. Ream with the processing feed rate (P11) to the final hole depth (P3).
7. Wait for the dwell time (P4) to elapse.
8. Pull out with the retract feed rate (P12) to the reference plane (P2).
9. Move to the retract plane (P10) in rapid traverse.
Attention:
• After leaving the drilling cycle G87 the retract feed rate is active!
Programming Manual
Page 214
9.1.11 G88 Bore out with spindle halt
Syntax: G88
The program word G88 selects the drilling cycle "bore out with spindle halt".
The feed values and rotational speeds defined in the NC program are taken
over in the drilling cycle. Four parameters must be defined before calling up:
P2 Reference plane, absolute Z coordinate
P3 Final hole depth, absolute Z coordinate
P4 Dwell time in ms
P10 Retract plane, absolute Z coordinate
Example: N30 ...
*N40 P2=400000, P3=60000
*N50 P4=1500, P10=520000
N60 G88
N70 X30 Y60
N80 G80
N90 ...
Programming Manual
Page 215
Programming Manual
Page 216
1. Rapid traverse in the Z direction to the reference plane (P2).
2. Bore to the final hole depth (P3) using the current feed rate.
3. Wait for the dwell time (P4) to elapse, after that the spindle stops.
4. Pull out to the retract plane (P10) in rapid traverse with stopped spindle.
9.1.12 G89 Bore out with intermediate halt
Syntax: G89
The program word G89 selects the drilling cycle "bore out with intermediate
halt". The feed values and rotational speeds defined in the NC program are
used in the drilling cycle. Six parameters must be defined before calling up:
P2 Reference plane, absolute Z coordinate
P3 Final hole depth, absolute Z coordinate
P4 Dwell time in ms
P10 Retract plane, absolute Z coordinate
P13 First drilling depth, absolute Z coordinate
P15 Second drilling plane, absolute Z coordinate
Example: N30 ...
*N40 P2=530000, P3=110000
*N50 P4=1000, P10=650000
*N55 P13=320000, P15=250000
N60 G89
N70 X30 Y60
N80 G80
N90 ...
Programming Manual
Page 217
1. Rapid traverse in the Z direction to the reference plane (P2).
2. Bore to the first drilling depth (P13) using the current feed rate.
3. Rapid traverse in the Z direction to the second drilling plane (P15).
4. Bore to the final hole depth (P3) using the current feed rate.
5. Wait for the dwell time (P4) to elapse.
6. Pull out in rapid traverse to the retract plane (P10).
Programming Manual
Page 218
9.1.13 Example: Base plate
A base plate with four threaded holes is used here as an example. The drilling
cycles can be used to processing this panel, making the NC program
considerably shorter and clearer.
Example: Base plate
The following program is used for the processing of the four threaded holes in
the base plate displayed above:
N10 (BASE PLATE)
N20 G00 X0 Y0 Z400 Positioning instruction
N30 F200 M03 S1000 Technological data
* N40 P2=20000, P3=3000 Parameter definitions
* N50 P10=30000
N60G81 Cycle call up: Drill to final depth
Programming Manual
Page 219
N70X10 Y10 Drilled hole 1
N80X40 Drilled hole 2
Programming Manual
Page 220
N90Y30 Drilled hole 3
N100 X10 Drilled hole 4
N110 M0 Unconditional halt
N120 M5 Spindle halt, tool change
N130 F150 S300 Technological data
* N140 P3=5000, P4=1000 Parameter definitions
N150 G84 Cycle call up: Thread cutting with balanced
chuck
N160 Y10 Threaded hole 1
N170 X40 Threaded hole 2
N180 Y30 Threaded hole 3
N190 X10 Threaded hole 4
N200 G80 Deactivate the function drilling cycle
N210 Z400 Positioning instruction
N220 X00 Y00
N230 M30 Program end
Explanation: The drilling cycles G81 (Drill to final depth) and G84 (Thread cutting with
balanced chuck) are used in the NC program.
Before calling up the respective drilling cycle, the specific parameters were
defined. Note that the value of the final hole depth P3 is different in the two
drilling cycles.
A reduction of the feed rate and the cutting speed was likewise programmed
before the cycle "thread cutting".
The values of the reference plane and the retract plane do not need to be
redefined before calling up G84. They were already assigned to the
corresponding parameters before the first cycle call up and remain unchanged.
Programming Manual
Page 221
Sequence of the processing:
1. Move to the coordinate X10 Y10 in rapid traverse.
2. Rapid traverse in the Z direction to the reference plane (P2).
3. Drill to the final hole depth (P3) using the current feed rate.
4. Pull out to the retract plane (P10) in rapid traverse.
5. Move to the coordinate X40 Y10 in rapid traverse.
6. Repeat the steps 2 to 4.
7. Move to the coordinate X40 Y30 in rapid traverse
8. Repeat the steps 2 to 4.
9. Move to the coordinate X10 Y30 in rapid traverse
10. Repeat the steps 2 to 4.
11. Interrupt program (unconditional halt) and halt spindle for tool change;
continue the program by pressing the START button.
12 Move to the coordinate X10 Y10 in rapid traverse.
13. Rapid traverse to the reference plane (P2) in the Z direction.
14. Drill using the current feed rate and clockwise rotating spindle (M03) to
the new final hole depth (P3).
15. Reverse spindle, i.e. the direction of rotation changes; a pause for the
dwell time (P4) is made.
16. Pull out to the reference plane (P2) using the current feed rate.
17. Reverse spindle, i.e. spindle has clockwise direction of rotation.
18. Reverse spindle, i.e. spindle has clockwise direction of rotation.
19. Repeat the steps 12 to 17 at the other three drilling positions.
Programming Manual
Page 222
9.2 Turning Cycles
9.2.1 General
The stock removal cycles provide an easy way of roughly turning. The CNC
programmer only has to program the desired shape. The CNC then creates a
multiple repetitive cycle for stock removal and roughly turning of the shape.
The programmed tool path can also be used for the finishing cut with the help
of the finishing cycle G270.
9.2.2 G271 Stock removal in turning
9.2.2.1 Syntax
G271 U... R...
The cycle for stock removal in turning is prepared by the optional Block G271
U... R...
U The U value gives the depth of cut for stock removal. The direction of
cut is designated by the sign of the W value in the activating block.
R The R value gives the escaping amount. Both values have to be
programmed without sign and values are taken as radius programmed.
Both values are modal and if one of them or the whole preparing block is
omitted, the applicated values in the machine parameters TurningDepthOfCut
and TurningEscapeAmount are taken for the turning cycle.
G271 P... Q... U... W...
The cycle is activated by the Block G271 P... Q... U... W...
P The P value gives the number of the first block for the finishing
shape.
Programming Manual
Page 223
Q The Q value gives the number of the last block for the finishing
shape. The blocks in between are replaced by the multiple
repetitive cycle.
U The U value gives the finishing allowance in radial direction (X).
The sign of this value gives the direction of the allowance relative
to the shape. The sign also designates the direction in which the
levels of stock removal are changed. In the case of diameter
programming the value is to be specified in diameter dimension.
W The W value gives size and direction of finishing allowance in
longitudinal direction (Z).
If a finishing allowance of zero is desired for U or W (or both), the sign has to
be programmed together with the zero (for ex- ample: W+0 or W-0) in order to
define the direction in which the levels of stock removal are changed. If a zero
is programmed without sign, it is assumed as “positive”.
9.2.2.2 Example
N50 G0 X45 Z0
N60 G271 U10 R5
N61 G271 P100 Q200 U.5 W1 S1200 F.8 M4
N100 G1 X10
N110 Z-30
N120 X30 Z-50
N130 X40
N140 Z-80
N200 X45 Z-80
Programming Manual
Page 224
Z
X
d(G0)(G1)
u
w
e
e: escape amountu: radial finishingw: longitudinal finishing
d: depth of cut
Programcommand
The turning cycle starts with the actual position before the block N100, i.e. with
X45 Z0. The programmed allowances in positive X- and Z-direction, U.5 and
W1, are added to the programmed positions.
For this roughly cutting shape three stock removal cycles on the X-levels 35.5,
25.5 and 15.5 are computed. First the tool moves to the start position X45.5 Z1.
The three cycles for stock removal are processed and then the shape for
roughly cutting is processed with the positions X10.5 Z1; X10.5 Z-29; X30.5 Z-
49; X40.5 Z-49; X40.5 Z-79; X45.5 Z-79.
The cycle ends at the starting position, i.e. the position before the block N100.
Programming Manual
Page 225
9.2.2.3 Direction of allowance
u>0 w>0 u>0 w<0
u<0 w>0 u<0 w<0
Z
X
9.2.2.4 Effective G-codes
When G271 is active, only the programmed radial (X) and longitudinal (Z)
position and the interpolation types G00, G01, G02, G03, G12 and G13 are
taken into account.
All other programmed values, such as feed- or spindle speed values and all
programmed G-codes are ineffective in stock removal.
Feed and spindle speed are constant with the before the first cycle block active
rate.
If a finishing cycle is turned with the same blocks, no other G-codes than the
ones for the interpolation type should be activated between the first cycle block
and the finishing cycle G270. Else the shape could be destroyed.
In the blocks of the stock removal cycle, cycle programming *N... and
subprograms are forbidden.
Programming Manual
Page 226
9.2.3 G272 Stock removal in facing
9.2.3.1 Syntax
G272 W... R...
The cycle for stock removal in facing is prepared by the optional Block G272
W... R...
W The W value gives the depth of cut for stock removal. The direction of
cut is designated by the sign of the U value in the activating block.
R The R value gives the escaping amount. Both values have to be
programmed without sign and values are taken as radius programmed.
Both values are modal and if one of them or the whole preparing block is
omitted, the applicated values in the machine parameters FacingDepthOfCut
and FacingEscapeAmount are taken for the turning cycle.
The cycle is activated by the Block G272 P... Q... U... W...
The cycle is activated by the Block G272 P... Q... U... W...
P The P value gives the number of the first block for the finishing shape.
Q The Q value gives the number of the last block for the finishing shape.
The blocks in between are replaced by the multiple repetitive cycle.
U The U value gives the finishing allowance in radial direction (X). The
sign of this value gives the direction of the allowance relative to the
shape. The sign also designates the direction in which the levels of
stock removal are changed. In the case of diameter programming the
value is to specified in diameter dimension.
Programming Manual
Page 227
W The W value gives size and direction of finishing allowance in
longitudinal direction (Z).
If a finishing allowance of zero is desired for U or W (or both), the sign has to
be programmed together with the zero (for ex- ample: W+0 or W-0) in order to
define the direction in which the levels of stock removal are changed. If a zero
is programmed without sign, it is assumed as “positive”.
When G272 is active only the programmed radial (X) and longitudinal (Z)
position and the interpolation types are taken into account. All other
programmed values, such as feed- or spindle speed values are ineffective.
9.2.3.2 Example
...
N50 G0 X0 Z45
N60 G272 P100 Q200 U-.8 W1.3 S1100 F1 M3
N100 G1 Z10
N110 X30
N120 X50Z20
N200 X50 Z45
Programming Manual
Page 228
de
e: escape amountu: radial finishingw: longitudinal finishing
X
Z
w
u
d: depth of cut
Programcommand
The stock removal cycle starts at the actual position before block N100. Then
three stock removal cycles are turned and afterwards the roughing shape is
turned.
The cycle ends at the starting position.
9.2.3.3 Direction of allowance
u>0 w>0u>0 w<0
u<0 w>0u<0 w<0
Z
X
Programming Manual
Page 229
9.2.3.4 Effective G-codes
When G271 is active, only the programmed radial (X) and longitudinal (Z)
position and the interpolation types G00, G01, G02, G03, G12 and G13 are
taken into account.
All other programmed values, such as feed- or spindle speed values and all
programmed G-codes are ineffective in stock removal.
Feed and spindle speed are constant with the before the first cycle block active
rate.
If a finishing cycle is turned with the same blocks, no other G-codes than the
ones for the interpolation type should be activated between the first cycle block
and the finishing cycle G270. Else the shape could be destroyed.
In the blocks of the stock removal cycle, cycle programming *N... and
subprograms are forbidden.
9.2.4 G270 Finishing Cycle
After roughly turning the programmed blocks can be used for a finishing cut.
9.2.4.1 Syntax
G270 P... Q...
P The P value gives the first block for the finishing cut.
Q The Q value gives the last block for the finishing cut.
Programming Manual
Page 230
For an exact finishing cut after a stock removal cycle, the numbers of first and
last block in G270 and G271/G272 must be identical. The start position of the
finishing block must be identical to the position before the first block in stock
removal. This can be achieved by programming G270 directly after the last
block of stock removal.
All G-codes and other instructions in the finishing cycle blocks are effective.
9.2.4.2 Example
...
N50 G0 X45 Z0
N61 G271 P100 Q200 U.5 W1 S1200 F.8 M4
N100 G1 X10
N110 Z-30 F1
N120 X30 Z-50 F1.5
N130 X40
N140 Z-80
N200 X45 Z-80
N210 G270 P100 Q200
N220...
...
After the stock removal cycle G271, the exact finishing shape is turned, i.e. the
CNC moves from the start point (X45 Z0) to the positions in the blocks N100 to
N200. Then it returns to the start point of the cycle (X45 Z0) and then continues
with the next block (N220).
Programming Manual
Page 231
9.2.5 G274 End phase peck drilling cycle
9.2.5.1 Syntax
G274 R...
The cycle for stock removal in turning is prepared by the optional Block G274
R...
R Return amount
This value is modal and if this block is omitted, the preset value in the
machine parameter TurningReturnAmount is taken.
G274 X... Z... U... V... R ...
The cycle is activated by the block G274 X... Z... U... V... R ... F ...
X The X- value gives the end point in in radial direction (X).
Z The Z value gives the end point in longitudinal direction (Z).
U The U value gives the movement amount in radial direction (X). No
sign is allowed
V The V value gives the movement amount in longitudinal direction (Z).
R The R value gives the escaping amount.
This is normally given by the relief amount of the tool at the cutting
bottom. The sign is given by the direction of the movement to X.
However, if X and P are omitted, the relief direction can be specified by
the desired sign.
Programming Manual
Page 232
Note
• While both, the escaping amount and the return amount are programmed
by code R, the meanings of them are determined by the presence of
address X
• The cycle machining is performed by G274 with X specification.
The following picture shows how the programmed values result in the
machining procedure.
Z
X
X : programmed Endp
Startpoint
0 < V1 <= V 0 < R1 <= R
Z: programmed Endpoint
V V1
R
R1
R (return amount)
9.2.5.2 Effective G-codes
When G274 is active, only the programmed radial (X) and longitudinal (Z)
position are taken into account.
Feed and spindle speed are constant with the before the first cycle block active
rate.
Programming Manual
Page 233
9.2.6 G275 Outer diameter/internal diameter drilling cycle
9.2.6.1 Syntax
The following command permits operation as shown in the figure below. This is
equivalent to G274 except that X is replaced by Z.
Chip reaking is possible in this cycle, and grooving in X axis and peck drilling in
X axis (in this case Z and Q are omitted) are possible.
G275 R...
G275 X... Z... U... V... R...
Z
0 < V1 <= V 0 < R1 <= R
V V1
R
R1
9.2.6.2 Effective G-codes
When G275 is active, only the programmed radial (X) and longitudinal (Z)
position are taken into account.
Feed and spindle speed are constant with the before the first cycle block active
rate.
Programming Manual
Page 234
9.2.7 G276 Multiple thread cutting cycle
Syntax G276 P(m)..(a).. V... R...
m: Repetitive count in finishing (1 to 99).
a: Angle of tool tip
One of six kinds of angle, 0°, 60°, 55°, 30° and 29° can be selected
and specified by 2-digit number.
This designation is modal and is not changed until the other value is
Designated.
When no value is programmed, the Machine parameter
TurningTooltipAngle is taken.
P M and a are specified by address P at the same time.
When m = 2 and a = 60°, specify as shown below:
P 02 60
M a
V The V value gives the minimum cutting depth.
When the cutting depth of one cycle operation becomes smaller than
this limit, the cutting depth is clamped at this value.
This designation is modal and is not changed until an other value is
programmed.
When no value is programmed, the Machine parameter
TurningMinimumCuttingDepth is taken.
R R gives the finishing allowance.
This designation is modal and is not changed until an other value is
programmed.
Programming Manual
Page 235
When no value is programmed, the Machine parameter
TurningFinishingAllowance is taken.
G276 X... Z... I... U... V... K... J...
I I difference of thread radius in X – direction per lead.
If I = 0, ordinary straight thread cutting can be made.
The absolute difference in X from the beginning to the end of the
thread is given by ∆X = I * γ with γ = Z / K.
U height of thread. This value is specified by the radius value in X axis
direction.
V depth of cut in first cut (radius value).
J Chamfering amount.
This designation is modal and is not changed until the other value is
Programmed.
K lead of thread.
Note
• The meanings of the data specified by address U, V and R are determined
by the presence of X and Z.
• The cycle machining is performed by G276 with X and Z specification.
• By using this cycle, one edge cutting is performed and the load on the tool
tip is reduced.
• Making the cutting depth d for the first path and d*sqrt(n) for the n-th path, cutting amount per one cycle is held constant.
Programming Manual
Page 236
Z
X
U (thread heightJI*k
The difference of the thread radius is given by the amount of leads k multiplied
by I.
How the different cuts depend from m, P and a shows the following picture:
V height of f
1st
2nd
3rd
nth
V * sqrt(n) = P
Tool tip
Programming Manual
Page 237
9.2.8 Error messages
315 Machine parameter TurningGCodeAppl faulty
The function Turning Cycles is not available in the system. Please
contact your machine builder
708 Turning Cycles: Parameter wrong
If depth of Cut <= 0 or escape amount < 0. If U- or W-value is not
programmed in the activating block G271/G272.
709 Turning Cycles: Block number wrong
If P or Q in the activating block G271/G272 is not programmed.
710 Turning Cycles: Block not found
If there exists no block with the in P or Q programmed number.
711 Turning Cycles: Cycle programming *N not allowed
No Cycle programming *N... is allowed in the turning cycles.
712 TurningCycle: Circular level not allowed
713 The activated plane (G17, G18, G19) includes other axes than X and Z
(the applicated radial and longitudinal axes).
830 The programmed return amount for drilling cycle G274 or G275 is
missing or below 0.
831 The programmed MovementAmountRadial for drilling cycle G274 or
G275 is missing or below 0.
Programming Manual
Page 238
9.2.9 Part program display
The part program display is modified while turning cycles are active in order to
clarify the progress of the turning cycles to the user. On principle the following
is valid:
Line 1: shows the block which has caused the actual turning cycle.
Line 2: The second line shows the block which defines the contour element
which is actually processed.
Line 3: This line shows the element or block which is to be processed after
the actual contour element.
At entering turning cycles, the block with G271 (or G272) is displayed a second
time. At this time the CNC moves to the start point with additional finishing
allowance.
At the end of turning cycles (G271 or G272) the block with G271 (or G272) is
displayed again. With this block active, the CNC moves back to the start point.
When finishing is active (G270) the block with G270 appears a second time at
the end of the finishing cycle. With this block active the CNC moves to the point
from which turning cycles were started.
Blocks which define contour-elements parallel to the tool moving axes are not
displayed.
Programming Manual
Page 239
9.3 User Cycles
9.3.1 Kinds of User G-Cycles
In the PA 8000 three kinds of cycles are realised:
• G- Code Working cycles:
A working cycle must be selected with a defined G-Code and deselected
with a G-Code.
• G-Code User cycles
A user cycle is starts an applied NC-Program with a defined G-Code.
• User cycles with free define Code
This user cycle starts an applied NC-Program with a free defined letter-
code. (e.g.: M)
9.3.2 G- Code Working cycles
The parameter WorkCycleGCode define the first of a group of 10 successive
G-codes which should be used for working cycles.
The first G-Code is used for deselecting work cycles. The following G-codes
are used for selecting the working cycle.
Example: WorkCycleGCode = 050H = 80 decimal.
With G81, the first working cycle is selected.
With G82, the second working cycle is selected a.s.o.
With G80, working cycles are deselected.
The parameter WorkCycleProgNo define the program numbers which should
be executed when activating the working cycles. The Index of the parameter
corresponds to the defined G-Code in WorkCycleGCode
Programming Manual
Page 240
Example: WorkCycleProgNo (1)= 899981
WorkCycleProgNo (2)= 899982
WorkCycleProgNo (9)= 899989
With G81 the working cycle defined in P899981 is activated
With G82 the working cycle defined in P899982 is activated
With G89 the working cycle defined in P899989 is activated
With G80 the working cycles are deactivated.
Example: Drilling cycle
N30
...
N60 G81 Selection the desired drilling cycle
N70 X10 Y10 The drilling cycle is processed after the position
programmed in N70 ... N90 is reached
N80 X40 Y60
N90 X200 Y-40
N100 G80 Deselection of the drilling cycle
...
N9999 M2
Programming Manual
Page 241
9.3.3 G-Code User Cycles
The parameter CycleGCodeStart defines the first of a group of 8 successive G-
codes which should be used for user cycles.
Example: CycleGCodeStart = 200 decimal.
With G200 the first user cycle is selected.
With G201 the second user cycle is selected and so on.
CycleGCodeStart = 0 the user cycles are not set up.
Default: CycleGCodeStart = 0 .
The parameter CycleProgNo define the program numbers which should be
executed when activating the user cycles. The Index of the parameter
corresponds to the defined G-Code in CycleGCodeStart.
Example: CycleProgNo (1)= 900001
CycleProgNo (2)= 900002
CycleProgNo (8)= 900008
With G200 the user cycle defined in P900001 is activated
With G201 the user cycle defined in P900002 is activated
With G207 the user cycle defined in P900008 is activated
Note:
• If one of 8 user cycle G-codes is programmed, the complete CNC-address
buffer has been written to the reserved cycle parameters. (see reserved
cycle parameters parameter ResevedParameterIndex)
Programming Manual
Page 242
Example: ResevedParameterIndex =100 N30
...
N60 G200 A123 L456 P124 is load with 123, P135 is load with 456
Than the user cycle is processed.
N70 X10 Y10 move to X10 Y10
N80 G200 A78.4 L23.45 P124 is load with 78.4, P135 is load with
23.45. Than the user cycle is processed.
N90 X40 Y60 move to X40 Y60
N100 G200 A0 L45 P124 is load with 0, P135 is load with 45.
Than the user cycle is processed.
...
N9999 M2
9.3.4 User cycles with free define Code
The parameter CycleCodeLetter define the letter for activating the user cycles
The parameter CycleCodeStart defines the first of a group of 8 successive
codes which should be used for user cycles.
Example: CycleCodeLetter = 12
CycleCodeStart = 210 decimal.
With M210 the first user cycle is activated
With M211 the second user cycle is activated
CycleCodeStart = 0 the user cycles are not set up.
Default: CycleCodeStart = 0 .
Programming Manual
Page 243
The parameter CycleCodeProgramNumber defines the program numbers
which should be executed when activating the user cycles. The Index of the
parameter corresponds to the defined code in CycleCodeStart.
Example: CycleCodeProgramNumber (1)= 900101
CycleCodeProgramNumber (2)= 900102
CycleCodeProgramNumber (8)= 900108
With M210 the user cycle defined in P900101 is activated
With M211 the user cycle defined in P900102 is activated
With M217 the user cycle defined in P900108 is activated
Note:
• If one of 8 user cycle G-codes is programmed, the complete CNC-address
buffer has been written to the reserved cycle parameters. (see reserved
cycle parameters parameter ResevedParameterIndex)
Example: ResevedParameterIndex =100 N30
...
N60 M210 A123 L456 P124 is load with 123, P135 is load with 456
Than the user cycle is processed.
N70 X10 Y10 move to X10 Y10
N80 M211 A78.4 L23.45 P124 is load with 78.4, P135 is load with
23.45. Than the user cycle is processed.
N90 X40 Y60 move to X40 Y60
Programming Manual
Page 244
N100 M212 A0 L45 P124 is load with 0, P135 is load with 45. Than the
user cycle is processed.
...
N9999 M2
9.3.5 reserved cycle parameters
Index for the reserved parameter area. When using this parameter, a size of 49
parameters is reserved for special CNC states .
The following list contains the assignment of the reserved parameters:
P(ReservedParameterIndex + 1) internal use
P(ReservedParameterIndex + 2) start parameter number for SEL80
P(ReservedParameterIndex + 3) internal use
P(ReservedParameterIndex + 4) internal use
P(ReservedParameterIndex + 5) internal use
P(ReservedParameterIndex + 6) internal use
P(ReservedParameterIndex + 7) 0, if Control Reset was triggered
P(ReservedParameterIndex + 8) 0, if operating mode DATA
P(ReservedParameterIndex + 9) 0, if Control Reset was triggered manually
P(ReservedParameterIndex + 10) internal use
P(ReservedParameterIndex + 11) up to
P(ReservedParameterIndex + 18)
Analogous value read in (SEL61 - SLE68)
P(ReservedParameterIndex + 21 up to
P(ReservedParameterIndex + 23)
Analogous value output (SEL71 - SEL73)
P(ReservedParameterIndex + 24) up to
P(ReservedParameterIndex + 49)
User Cycles: A -> P(..+24),
B-> P(..+25) ... Z-> P(..+49)
Note:
• The 49 reserved parameters should not be used for other purposes.
Start up guide
page 245
10 General cycle programming
10.1 Introduction
10.1.1 Application
Program blocks for the PA 8000, in which program instructions which are not
assigned in DIN 66025 are used, are designated as cycle blocks.
By the use of these, the application spectrum of the PA 8000 is considerably
extended, ensuring a clear separation between the DIN programming and the
cycle programming. Cycle blocks allow the machine tool manufacturer and
CNC users to simplify constantly recurring setting-up procedures and quality
improvement measures during production and in many cases even to automate
such processes.
Above all, technology-adapted operator controls and data inputs can be
realized and work cycles for standard processes such as, cutting, drilling etc.
can be provided. It is also possible to generate NC programs with cycle blocks,
e.g. by Teach In.
To enable calculation functions to be executed, all current calculation
operations (basic calculations, root, trig. functions etc.) are available.
10.1.2 Combining cycle blocks in a NC program
The handling of cycle block differs from the handling of "normal" DIN program
blocks only in that the character * is placed before the block number.
Start up guide
page 246
Example: N30 G1 X...
N40 G2 X...
*N50..
*N60...
N70...
Thus DIN program blocks and cycle blocks can be mixed at will: the PA 8000
recognizes a cycle block by the preceding asterisks.
During the processing of cycle blocks, the cycle interpreter is activated.
Note:
• Parameters can be programmed, apart from in cycle blocks in the form
"=Pxxx" in the NC program, with nearly all types of program words instead
of the digit string:
*N100 P20=85000
N110 G0 X=P20
instead of
N110 G0 X85
This presupposes, however, that the parameters used at the relevant point
in time have the correct value (P20=85000 based on a presetting of 3
decimal places for the X axis).
• The allocation of values to parameters can be made either during setting up
in the operating mode "DATA" (function field F1: Data selection --> F3:
Parameters) or by using cycle blocks in the NC program.
Start up guide
page 247
10.1.3 Comments
Cycle blocks can be explained by attaching comments - this is especially
important for long-term program documentation. Comments are recognized by
the cycle interpreters of the PA 8000 by the character /. Everything positioned
to the right of this character in the relevant cycle block is not interpreted for the
program processing.
Example: *N50....... /this is a comment
10.1.4 Instructions
During the programming of cycle blocks the following instructions, addresses
and operations can be used:
• Access on table values AVa Axis set position
MVa Axis actual position
Ax ASCII parameters, x=1...19
Dx Path compensation, x=1... 128 *)
DWx Wear-offset to the path compensation, x=1... 128 *)
Gxa Part position offset, x=54... 59, a = axis identification
Hxa Length compensation, x=1...128, a = axis identification *)
HWxa Wear-offset to the length compensation, x=1... 128 *),
a = axis identification*)
IBx Input bit, x=1... 8
OBx Output bit, x=1... 8
Px Parameters, x=1... 1000 *)
xxxxxxxx.xxxxxxxx constant
*) Number of compensations and parameters depending on
expansion levels!
Start up guide
page 248
• Calculation operations and functions = Allocation; e.g. of a numerical value to a parameter
- Minus sign
+, -, *,: Basic calculations
<, >, = Comparison operations
ABS Absolute value
ATN Arc tangent
COS Cosine
DGR Conversion to degrees
INT Conversion to integer
MOD Modulus function
RAD Conversion to radians
SIN Sine
SQT Root
• General programming instructions
DO Execute instruction, in connect on with IF
GO Jump instruction to block number
IF Conditional instruction
/TEXT Comments
• Memory edit instructions
CPY Copy
DEL Delete
EDT Edit
MMOF Cancel memory
MMON Select memory
NCOF NC-Cancel
NCON NC-Select
SEL Select, additional functions
Start up guide
page 249
10.2 Basic instructions
10.2.1 Basic rules for the processing of instructions
The PA 8000 processes NC program blocks fundamentally via block buffers. If
the NC program contains cycle blocks for which the complete execution of the
preceding positioning instructions must be guaranteed, then dummy blocks or
G10 blocks must be inserted.
A NC block first of all passes through two block buffers in the interpreter
process. From the first block buffer, the cycle interpreter is activated as soon as
a cycle block is recognized. The NC blocks arrive in the dynamic block buffer of
the servo processor from the second block buffer onwards.
Start up guide
page 250
If a G10 code is programmed, this is recognized in the first block buffer. The
transition from the second block buffer to the dynamic block buffer is then
blocked. The transition is again enabled when there are no more blocks in
processing in the interpreter process.
Example: N120 G1 X100 F100
N130 G4 dummy blocks
N135 G4
N140 G10
N160 G4 F10000
N170 G4
N175 G4
N180 G10
N200 X0 M30
Explanation: One dummy block and one G10 block are necessary so that the blocks N160
and N180 are not processed in the first block buffer until all NC blocks in the
interpolator process (incl. N120 and/or 160) are finished.
Note:
• The same measures are necessary if axis values are to be read, e.g. in
*N10 P1=MVX ...
...
Start up guide
page 251
10.2.2 Numbers and variables
Numbers and variables in different forms can be used within cycle blocks.
The following are admissible as numbers:
• Whole numbers between -99999999 and 99999999
• Floating point numbers with a maximum of 8 positions before and after the
decimal point, whereby only the first 7 of the positions entered are
significant.
Note:
• Leading zeros may be written with numbers. When there are no digits after
the decimal point, it can be omitted.
• Variables can be used in the form of free and fixed parameters. Free
parameters are the P-parameters (P1, P2,...). These can be used to store
any numbers and to form calculation formulae. Fixed parameters are the
CNC parameters (H, D, G,...), with which control-specific and machine-
specific data can be accessed.
• Numbers and variables can be combined with calculation operations, it
must be ensured here that the individual number formats used are
compatible (for further information please see examples in the following
chapters).
• The P-parameters can be used in "normal" NC blocks instead of numbers.
When allocating numbers to parameters using cycle blocks, it must be
ensured that the digit string matches the preset number of decimal places of
the relevant NC address.
Start up guide
page 252
Example: *N50 P1=50000,P2=1000, P3=100
N60 G1 X=P1 Y=P2 F=P3
Explanation: The N60 block above has the same effect as N60 G1 X50 Y1 F100, when 3
decimal places are preset for the axis values and 0 decimal places for the feed
rates.
ASCII parameters A1, A2, ..., A20 The 20 ASCII parameters are used in a similar way to the P-parameters. The
ASCII codes 0 to 255 can be allocated to the individual parameters as values.
(It is not recognized if the value range is exceeded.) ASCII parameters can be
indexed by P-parameters.
Example: *N100 A1=65, A2=66, A3=67
Explanation: The addresses A, B, and C are allocated as ASCII values to the ASCII
parameters A1, A2 and A3.
Example: *N100 A1=65, P1=2
*N110 A2=A1+P1
Explanation: A1 takes the ASCII value of the address A, P1 the numerical value 2. A2 takes
the ASCII value of A1 which has been increased by 2, i.e. the ASCII value of
the address C.
Start up guide
page 253
Example: *N200 IF A1=A2 D0 P30=0
Explanation: If the ASCII values of A1 and A2 are the same, set the parameter P30 to 0.
10.2.3 Calculation operations and functions
The calculation operations applicable to the parameter cycles are compiled in
the following list. Take note that here, the parameters Px, Py and Pz, where
they stand to the right of the equals sign, are used to represent arbitrary
constants and variables. Px = Py Allocation Px receives the value of Py
Px= Py+Pz Addition Px = sum of Py and Pz
Px= Py-Pz Subtraction Px = difference of Py and Pz
Px= Py * Pz Multiplication Px = product of Py and Pz
Px= Py: Pz Division Px = quotient of Py and Pz
Px= SQT Py Square root Px = root from Py
Px= SIN Py Sine Px = sine of Py
Px= COS Cosine Px = Cosine of Py
Px= ATN Py Arc tangent Px = Arc tangent of Py
Px= ABS Py Absolute value Px = absolute value of Py
Px= INT Py Integer value Px = Integer value
Px RAD Px Radians Px is converted from degrees to radians
Px= DGR Px Degrees Px is converted from radians to degrees
Px= Py MOD Pz Modulus function Px = remainder of the division Py: Pz
Note:
• The angle data for SIN, COS, ATN is given in radians. With an expression
with several calculation operations the processing is done from left to right,
whereby any preceding negative signs are always associated with the
concerned number or variable and are not seen as calculation operations..
• Brackets are not allowed.
Start up guide
page 254
• Several expressions can be written in a program block, if they are
separated by a comma.
Example: N10 P1=5, P2=2
*N20 P3=P1+P2
Explanation: In N10 the value 5 is assigned to P1 and the value 2 to P2. In N20 the sum of
P1 and P2 is formed and assigned to P3. The value 7 is therefore stored in P3.
Example: *N10 P1=4
*N20 P1=SQT P1
Explanation: In N10 the value 4 is assigned to the parameter P1. In N20 the square root of 4
is calculated, and P1 receives the answer, 2.
Example: *N10 P1=3.141593
*N20 P1=cos P1
Explanation: In N10 the value 3.141593 is assigned to the parameter P1. In N20 the cosine
of P1 is calculated, and P1 receives the answer, -1.
Example: *N10 P1=90
*N20 P2=RAD P1
*N30 P2=SIN P2
Start up guide
page 255
Explanation: The value 90 is assigned to the parameter P1 in N10 and in N20 is converted
into radians, so that N30 supplies the result P2=1.
Example: *N10 P1=1
*N20 P2=ATN P1
*N30 P2=DGR P2
Explanation: In N20 P2 has the value 0.7853982 (Radians). In N30 this value is converted to
degrees. The result is that: P2=45.
Example: *N10 P1=60
*N20 P1=RAD P1
*N30 P1=SIN P1 : COS P1
*N40 P1=ATN P1
*N50 P1=DGR P1
Explanation: In N10 a value is assigned to P1. This value is converted in N20 to radians, in
N30 the tangent (sine/cosine) is calculated, in N40 the arc tangent of this is
calculated and in N50 this result is converted to degrees, so that P1 receives
the value 60 again.
Example: *N10 P1= -12.9
*N20 P1=ABS P1
Start up guide
page 256
Explanation: In N10 the value -12.9 is assigned to P1. In N20 the absolute value is formed
from this value, i.e. P1=12.9.
Example: * N10 P1=1.495, P2=3.55, P3=-3.5
* N20 P1=INT P1, P2=INT P2, P3=INT P3
Explanation: In N10 the value 1.495 is assigned to P1, the value 3.55 to P2 and the value –
3.5 to P3. In N20 P1 has the value 1, P2 has the value 3 and P3 has the value
-3. The operation INT converts a floating point number to an integer number.
Example: *N10 P1=13
*N20 P2=5
*N30 P3=P1 MOD P2
Explanation: The result is 3, since P1:P2 = 13:5 = 2 remainder 3.
Example: P1= -13
P2=5
P3=P1 MOD P2
Explanation: The result is 2, since MOD calculates the positive remainder to the next
smallest whole multiple of P2.
Start up guide
page 257
Example: P1 = 5
P2 = 7
P3 = 3
P4 = P1 + P2 MOD P3
Result: P4 = 0
Operation sequence During calculation operations, attention must be paid the sequence of the
individual operations. The processing is done from left to right. Using the
following examples the existing rules are explained.
In the following examples these values are used:
P1 =30, P2=100, P3=RAD P1, P4=2, P5=4, P6=3
Example: *N20 P10=P1*-P2
Explanation: In usual notation:
P10 = P1 * (-P2) = -3000
Example: *N30 P10=-P1*-SIN P3+-12
Explanation: In usual notation:
P10= -P1 *(-SIN P3)+(-12)= -30*(-SlN 0.524)-12=3
Start up guide
page 258
Example: *N40 P10=P1+P2+SIN P3
Explanation: In usual notation:
P10 = 30 + 100 + SIN 0.524 = 130.5
Example: *N50 P10=SIN P3
Explanation: In usual notation:
P10 = SIN(RAD P1) = SIN 0.524 = 0.5
Example: *N60 P10=12+P1
Explanation: In usual notation:
P10 = 12+ 30=42
Example: *N70 P10=P1+P2*SIN P3-18.3
Explanation: In usual notation:
P10 = (P1 + P2) * SIN P3 - 18.3 = 46.7
Start up guide
page 259
Example: *N80 P10=P1+P2*P4+SQT P5*P6
Explanation: In usual notation:
P10 = ((P1 + P2) * P4 + SQT (P5)) * P6
= ((30 +100) * 2+ SQT(4)) * 3 = 786
Example: *N90 P3=4, P3=SQT P3+P3+2
*N95 P3=4, P3=SQT P3, P3=P3+2
Explanation: The calculation in N90 gives P3=8, the calculation in N95 gives P3=4.
Reason: Result variables are only changed at the end of each complete
calculation operation.
Possible errors:
• Division by zero
• Root of a negative number
• Overflow: Number > 99999999
• Spelling errors (e.g. P1=SON P1)
• Index too large (e.g. P1=600, PP1=3 and only 200 parameters set up)
Start up guide
page 260
10.2.4 Use of P-parameters
In the standard equipment 200 P-parameters (P1, P2,..., P200) are available.
The number of the available P-parameters can be increased to 1000. If a
numerical value is assigned to a parameter during the execution of a cycle
program, then this value is retained until a new value is assigned to this
parameter - this value also remains stored when the controller is switched off.
P-Parameters can be programmed in NC blocks instead of numerical values.
The current numerical value, which is momentarily stored under the respective
parameter number is first assigned to the parameter during processing - when
the relevant NC block is processed. It is possible to change the parameter
values during installation in the operating mode "DATA" or in the NC program
through cycle blocks.
P-Parameters can be combined with all available calculation operations (see
examples in the previous chapter).
If technological values are stored in P-parameters, e.g. axis coordinates
(lengths or angles), feed rates or rotational speeds, then it is to be considered
that here the numerical values also fundamentally contain the preset fixed
decimal places. The number of decimal places is determined by the machine
tool manufacturer via the machine parameters.
Example: The resolution for linear movement is one thousandth of a millimeter (3 decimal
places).
*N70 P12=50500, P13=1000
N80 G1 X=P12 Y=P13 F=P13
The line N80 is equivalent to:
N80 G1 X50.5 Y1 F1000
Start up guide
page 261
P-Parameters can be indexed The indexed parameter is recognized by the notation double-P. PPx designates
the parameter whose number is positioned in Px.
Example: *N10 P1=5, PP1=7
Explanation: The cycle block produces P5=7.
Note:
• When using indexed parameters it must be ensured that the index
parameter (e.g. P1 with PP1) contains a meaningful value, otherwise the
error message 262 is output. A parameter used as an index may not be
indexed itself (indexing of indexes is not possible).
Reserved parameter In the table of P-parameters a coherent block of 49 parameters is reserved for
special functions. The location of this reserved parameter block can be preset;
for further information about this please refer Reserved cycle parameter.
On the grounds of safety, the 49 reserved parameters should not be used for
other purposes.
Start up guide
page 262
10.2.5 Use of CNC parameters
When programming parameter cycles, refer to a list of fixed CNC parameters if
necessary.
Summary of the CNC parameters Hxa Length compensation, x = compensation number (1-128),
a = axis letter
Hwxa Wear-offset to the length compensation,
x = compensation number (1-128), a = axis letter
Dx Path compensation, x = compensation number (1-128)
DWx Wear-offset to the path compensation,
x = compensation number (1-128)
Gxa Part position offset, x = 54, 55,..., 59 a = axis letter
lBx Input bit from PLC, x = 1,..., 8
OBx Output bit to the PLC, x = 1,..., 8
a or. Read current axis position,
AVa a = axis letter
Note
• The number of available H and D compensations depends on whether the
corresponding expansion level is available.
• The allocation of values to these CNC parameters (e.g. * N200 H1X=12)
causes a table entry to be made in the length compensation 1 for the X-
axis. Thus an already existing entry, which could have come from the
machine setter for instance, is overwritten (the above value corresponds to
0.012 mm for example). Numerical values within the CNC parameters can
also be replaced by P-parameters (albeit without indexing).
Start up guide
page 263
Example: *N300 P1=5
*N310 HP1X=22
Explanation: HP1X is equivalent here to H5X.
In the following text further descriptions of the individual CNC-parameters can
be found.
Length compensation Hxa Up to 128 (standard: 32) H-compensations can be set or read with the
parameters Hxa. If only one compensation axis is available, then the
parameters are H1, H2,... H128. If there are two compensation axes, the
parameters are H1X, H2X and H1Y, H2Y etc., depending on, which axes are
set up.
Example: *N10 H1=P1
Explanation: Entry of a H-compensation, if H-compensation is only possible for one axis.
The H-compensation 1 takes the value of P1.
Example: *N10 H1Y=P1
Explanation: Entry of the H-compensation for the Y-axis, if H-compensation is possible for 2
axes.
Start up guide
page 264
Example: *N10 P2=1
*N20 HP2X=12
Explanation: Allocation of the value 12 (increments) to the H-compensation 1 of the X axis.
Wear-offset Hwxa Up to 128 (standard: 32) H-wear-offsets can be set or read with the parameters
HWxa. If only one compensation axis is available, then the parameters are
HW1, HW2,... HW128. If there are two compensation axes, the parameters are
HW1X, HW2X and HW1Y, HW2Y etc., depending on, which axes are set up.
Example: * N10 HW1=P1
Explanation: Entry of a H-wear-offset, if H-compensation is only possible for one axis. The
H-wear-offset 1 takes the value of P1.
Example: * N10 HW1Y=P1
Explanation: Entry of the H-wear-offset for the Y-axis, if H-compensation is possible for 2
axes.
Start up guide
page 265
Example: * N10 P2=1
* N20 HWP2X=12
Explanation: Allocation of the value 12 (increments) to the H-wear-offset 1 of the X axis.
Path compensation Dx Up to 128 (standard: 32) D-compensations (D1,...D128) can be set or read with
the parameters Dx.
Example: *N10 P1=D12
*N20 D120=P20
Explanation: Storage of the compensation value D12 in the parameter P1 (N10) and
assignment of the compensation value D120 with the content of the parameter
P20 (N20).
Example: *N30 P1=5
*N40 DP1=18400
Explanation: The result of the indexing in N40 is DP1 (= D5) = 18 400.
The compensation value stored in D5 is 18.4 mm.
Start up guide
page 266
Wear-offset DWx Up to 128 (standard: 32) D-wear-offsets (DW1,...DW128) can be set or read
with the parameters DWx
Example: * N10 P1=DW12
* N20 DW120=P20
Explanation: Storage of the wear-offset value DW12 in the parameter P1 (N10) and
assignment of the wear-offset value DW120 with the content of the parameter
P20 (N20).
Example: *N30 P1=9
*N40 DWP1=18400
Explanation: The result of the indexing in N40 is DWP1 (= DW9) = 18 400.The
compensation value stored in DW9 is 18.4 mm.
Part position offset Gxa Six part position offsets (G54-G59) are available per axis. The axis address
(e.g. X, Y, Z) must always be indicated here. The compensation number can
also be given here via the P-parameter.
Example: *N100 G54Z=53000, G54X=0, G54Y=0, P1=54
N110 G=P1
Start up guide
page 267
Explanation: N100: Table entry
N110: Activate offset about Z = 53 mm.
Input/output bits (cycle byte) OBx, Ibx For the programming of parameter cycles a standard interface of 2 times 8 bits
is available for the communication with the PLC of the machine. The following
notation is used:
• IB1-IB8 stands for: read input bit 1-8 in the CNC.
• OB1-OB8 stands for: write output bit 1-8 in the PLC.
The bit number can also be given via parameters (e.g. IBPX). Upon execution,
a test is made on the value stored in the parameter. For values smaller than 1
or larger than 8 the error message 262 appears
Note:
• Ibx is only admissible in expressions after IF (e.g. IF IB1=1 GO 50); direct
allocation to parameters (e.g. P1=IB1) is not possible! In the latter case the
error message 261 appears.
• The output bits 1-8 are set to 0 at CONTROL RESET. It can however be set
that the output bits retain their values at CONTROL RESET. Should the
occasion arise please refer to the machine tool manufacturer's
documentation for further information about this.
Example: 0B3=1
Explanation: The output bit 3 is set to 1.
Start up guide
page 268
Example: IF IB2=0 DO ...
Explanation: The input bit 2 is scanned to see if it contains 0.
Example:
P5=P2 MOD 8+1, OBP5=0
Explanation: A value is assigned to the parameter P5 between 1 and 8, then the
corresponding output bit is set to 0.
Example: The following cycle block causes the execution to wait until the bit 3 in the PLC
interface is set to 0 by the PLC:
*N230 IF IB3 >0 GO 230
*N240.. /here the PLC has set the bit 3 to zero
Note:
• Input bits and output bits can only have the values 0 or 1. Values not equal
to 1 are treated as 0 during the allocation. Reading and describing the PLC
interface is meaningful for some applications e.g. :
Using measuring probes and other measuring devices
Scanning the page at part tables
Overwriting the feedrate by PLC
Start up guide
page 269
Current position of axes The current positions of the set axes can be directly assigned to parameters
using the axis letter.
Example: *N250 P1=X, P2=Y
Explanation: The current set position of the X axis (without following error of the position
control) is stored in the parameter P1, the current set position of the Y axis is
stored in parameter P2.
10.2.6 Conditional instructions and jump instructions
As with many other programming languages conditional codes can also be
programmed for the parameter cycles. This entails the use of the IF question
to test for a state and the execution of a following action based on the result of
the question (via the DO instruction or GO instruction).
10.2.6.1 IF question
Function: Conditional instruction
Syntax: IF < comparison > < action >
Description: A question is made up of two operands, between which a comparison
operator is positioned. P-parameters, CNC parameters or numbers can
represent operands. If the comparison is satisfied, the programmed action
is executed. In the question two operands (parameters, input bits or
constants) are combined with a comparison operator
Start up guide
page 270
Possible comparison operators = : equal to
> : greater than
< : less than
Possible measures GO- instruction, [instruction],...
DO- instruction, [instruction],...
Example: * N10 IF P1 > P2 GO 100
Explanation: If the parameter P1 contains a value larger than P2, jump to block
N100.
Example: * N20 IF P1=P2 DO P1=10
Explanation: If the parameter P1 contains the same value as P2, set P1=10.
Example: It is desired to execute the calculation P2=P1 * 2 if P1=5:
* N10 IF P1=5 DO P2=P1 *2
Question the condition Action state
If the condition is satisfied, the subsequent instruction from "DO" to the end of
the block is executed.
If the condition is not satisfied, all instructions located between "DO" and the
end of the block are jumped over.
Start up guide
page 271
10.2.6.2 DO Instruction
Function: "Execute!"
Syntax: DO < instruction >
Description: The relevant instruction is to be executed. Use is only meaningful
together with IF instruction.
Example: * N60 IF P1=0 DO P1=10, P2=1
Explanation:
If the parameter P1 contains the value 0, set it to the new value 10.
Parameter P2 is then set (independently) to 1
10.2.6.3 Jumps
Function: Jump to the block number
Syntax: GO < block-no. >
Description: The processing of the NC program is to be continued at the block number
indicated. Use together with IF instruction as a conditional jump or without
IF as an unconditional jump.
Example: * N50 GO 210
Explanation: Jump to program block N210.
Start up guide
page 272
Note:
• If block-by-block loading is activated, no jumps may be programmed. If the
jump destination is not found, error message 69 is given.
• The jump instruction GO block number causes the program to jump to the
NC block with the corresponding block number. It operates as a conditional
instruction (with IF) and as an unconditional instruction (without IF). If the
NC block which is programmed as a jump destination is not found, the error
message 69 appears.
Example: *N10 GO 200
Explanation: This is an unconditional instruction. It causes the program processing to be
continued at block N200.
Example: *N10 IF P1=30 GO P1
Explanation: This is a conditional instruction. If the parameter P1 has the value 30, a jump is
executed to N30.The block number can be given either as an absolute number
or via parameters.
Start up guide
page 273
Example: *N10 GO 200
or
*N10 P1=200
*N20 GO P1
or
*N10 P1=200
*N20 P2=1
*N30 GO PP2
Explanation: All three examples result in a jump being made to block N200.
For this function it is important that block numbering in ascending order is kept
or is guaranteed by the editor. It is possible to jump to either a higher or a lower
block.
10.2.6.4 Loops
Loops can be programmed using the IF instruction together with GO. The
number of loop passes can be determined by a P-parameter.
Example: *N50 P1=10
N60
N70...
N80...
N90...
*N140 ...
*N150 P1=P1-1, IF P1 > 0 GO 60
Start up guide
page 274
Explanation: N50: 10 loop passes are defined
N60-N140: This program part is to be repeatedly executed.
N150: Jump to block N60, if P1 is greater than or equal to 0.
The programming becomes even more flexible by the use of indexed
parameters together with loops (see next example).
Example: All parameters from P1 to P800 are to be set to zero.
*N100 P1=800
*N110 PP1=0, P1-P1 - 1, IF P1 > 0 GO 110
*N120 P1=0
...
Explanation: P1 is used as an index. The line N110 is repeated 799 times.
10.2.7 Possible errors
The most important error messages which can appear during the cycle
programming are listed below together with notes on causes of error and their
removal.
Error message No. 260: Cycle error in block No. ....., Key word incorrect
Error recognition:
• By the syntax-test
• after editing a block
• by running in test mode
Start up guide
page 275
Possible causes of error:
• Non-admissible operator or start of key word
• Point used where it is not allowed
• Too many digits before or after the decimal point
• Index too large
• False axis address
Error removal: Correct the cycle block
Example: HXP1 instead of HP1X
Error message No. 261: Cycle error in block No. ...., Instruction incorrect
Error recognition:
• By the syntax-test
• after editing a block
• by running in test mode
Possible causes of error:
• The composition of key words does not produce a cycle block.
Error removal:
• Correct the cycle block.
Example: * N20 P1=IB1 instead of * N20 IF IB1=P1 DO...
Start up guide
page 276
Error message No. 262: Cycle error in block No. ...., Index too large/small
Error recognition:
• By execution when using a parameter as index.
Possible causes of error:
• Index too large or too small
Error removal:
• Index as number (not as parameter): check syntax.
• Index as parameter: examine parameter value.
Error message No. 263: Cycle error in block No. ...., Parameter content incorrect
Error recognition:
• By execution
Possible causes of error:
• Division by zero
• Root of a negative number
• Integer overflow
• Integer underflow
Error removal:
• Examine parameter value
• Correct program
Start up guide
page 277
10.3 Memory edit instructions
10.3.1 General notes
The tasks of the memory edit instructions can be summed up as follows:
• Selection and deselection of the operating mode "DATA"
• Creation, change, storage and deletion of compensation and NC blocks
• Generation of NC programs
• Storage of programs once created, e.g. with current parameter contents
10.3.2 Instructions for editing the memory
MMON Selects the NC program memory and enables the access to it.
MMOF Deselects the NC program memory.
NCOF Causes the CNC not to process any NC blocks. It can thus be
ensured for instance, that newly created NC blocks are not
immediately processed.
NCON The CNC is reactivated.
SEL Enables selection of NC programs, NC blocks parameters as a
requirement for the following edit instructions. The special form
SEL:nn activates a number of additional functions.
EDT The writing processes in the NC program memory are triggered
with this.
CPY Enables the copying of NC programs and NC blocks within the NC
program memory.
DEL Allows the deletion of NC programs, NC blocks and parameters.
The application of the memory edit instructions is normally performed
according to the following diagram:
*N100 NCOF Deselect CNC
*N110 MMON Select memory
*N120 SEL...
*N...
Start up guide
page 278
*N..... EDT.... Edit instructions
*N... CPY...
*N... DEL...
*N...
*N... MMOF Deselect memory
*N... NCON Select CNC
The effect and application of the individual instructions are comprehensively
described on the following pages.
10.3.3 CPY Copy instruction
Instruction: CPY:Qnn < :xx > CPY:Nnn < :xx >
Function: COPY
Description: With this instruction NC programs or NC blocks can be copied.
Parameters: Q NC programs are to be copied to a target program.
N NC blocks are to be copied to another location within a target
program.
nn, xx Block numbers or program numbers; nn or xx are
parameterizable.
Example: Copy an NC program to an NC program which is not yet available.
* N90 MMON
* N100 CPY:Q777:800
* N110 MMOF
...
Start up guide
page 279
Explanation: The NC program P777 is duplicated. The new NC program receives the
number P800.
Example: Copy an NC program to an already existing NC program.
* N90 MMON
* N100 SEL:Q1 OLD
* N110 SEL:N80
* N120 SEL:S5
* N130 CPY:Q2
* N140 MMOF
Explanation: First of all, in N100 and N110 the position is selected to which the
program is to be copied, namely in the existing NC program P1 at the
block number N80. In N120 the desired block number stepwidth for the
program to be inserted is determined. In N130 the NC program P2 is
instructed to be copied to the previously defined position, i.e. the first
block of P2 is inserted as block N80 in P1, the second block as N85 etc
Note:
• The space to which an NC program or NC blocks is to be copied must be
large enough to be able to take the program or the NC block to be copied. If
an attempt is made to overwrite an existing block, the error message 259 is
output.
Start up guide
page 280
Example: Copying NC blocks
* N90 MMON
* N100 SEL:Q300 OLD
* N110 SEL:N80
* N120 SEL:S10
* N130 CPY:N40:80
* N140 MMOF
...
Explanation: The NC blocks N40 to N80 of the NC program P300 are copied
within this NC program to the blocks N80 to N120.
10.3.4 DEL Delete instruction
Instruction: DEL: Qnn < (NEW)/(OLD) > DEL: Nnn < :xx > DEL: Pnn < :xx > DEL: Knn < :xx >
Function: DELETE,
Description: NC programs, NC blocks, parameter values or compensation values
can be deleted with this function.
Start up guide
page 281
Parameters: Q NC programs are to be deleted
NEW new program (Default)
OLD existing program
N NC blocks are to be deleted
P Parameters are to be deleted
K H = delete length compensation
D = delete path compensation
G = delete part position offset
HW = delete length wear-offsets
DW = delete path wear-offset
nn, xx Numbers
Example: Deletion of an NC program
* N90 MMON
* N100 DEL: Q250 OLD
* N110 MMOF
...
Explanation: The NC program P250 is deleted.
Note
• An NC program is taken as being NEW until the edit process is terminated
by MMOF after the editing by SEL: Qnn NEW.
• The NC program (main program or subroutine) which is just executed or a
still active program may not be deleted.
Start up guide
page 282
Example: Deletion of NC blocks
* N90 MMON
* N100 SEL:Q250 OLD
* N110 DEL:N160:180
* N120 MMOF
...
Explanation: The NC blocks N160 to N180 of NC program P250 are deleted.
Example: Delete parameters (set to zero)
* N90 MMON
* N100 DEL: P1:20
* N110 MMOF
...
Explanation: The parameters P1 to P20 receive the value 0.
Example: Set compensation values to zero
* N90 MMON
* N100 DEL: H1:5, DEL: D1: 10, DEL: G54
* N110 MMOF
...
Explanation: The following compensations take the value 0:
• Length compensations H1 to H5
• Path compensations D1 to D10
• Part position offsets G54
Start up guide
page 283
Note:
• With length compensations and part position offsets the values for all axes
are always deleted.
10.3.5 EDT EDIT-instruction
Instruction: EDT: (NC code, NC code,...) EDT: (* cycle code, cycle code,...) EDT: Pnn < :xx > EDT: Knn < :xx >
Function: EDIT
Description: Edit NC blocks, cycle blocks, parameters or compensation values.
Parameters: () Begin and end of the edit instruction
P Parameter
K H = length compensation
D = path compensation
G = part position offset (G54-G59)
HW = length wear-offsets
DW = path wear-offset
nn: Number of the first table position to edit
xx: Number of the last table position to edit
Start up guide
page 284
Example: Editing NC blocks
* N90 MMON
* N100 SEL: Q250 OLD
* N110 SEL: N80
* N120 SEL: S10
* N130 EDT: (G0, X2, Z5)
* N140 EDT: (M30)
* N150 MMOF
Explanation: After processing of the cycle blocks N90-N150 in the NC program
P250, the following is positioned after block N80
N80 G0 X2 Z5
N90 M30
Note:
• An NC block is produced per EDT-instruction. The next NC block is
automatically selected after each EDT-instruction. If NC blocks are already
positioned at the positions selected with SEL in the NC program, then they
are overwritten. If still no program was selected or newly opened, the
instruction is ignored.
Start up guide
page 285
Example: Editing cycle blocks
* N90 MMON
* N100 SEL: Q250 OLD
* N110 SEL: N150
* N120 SEL: S5
* N130 EDT: (* P1=P2+P3, P4=P2 * P3)
* N140 EDT: (* MMOF)
* N150 MMOF
...
Explanation: * N150 P1=P2+P3, P4=P2 * P3
* N155 MMOF
is now positioned in the NC program P250
Note:
• It is not possible to change a cycle block which already exists.
Example: Editing parameters
* N100 EDT: P1:20
...
Explanation: Cycle blocks are entered in the NC program which assign the
current contents of the parameters P1 to P20 to these parameters. If
it is assumed that the parameters P1 to P20 contain the values 101-
120, then the edited NC program reads:
Start up guide
page 286
* N... P1=101
...
...
* N... P20=120
Example: Editing compensation values
* N90 MMON
* N100 EDT: H1:5
* N110 EDT: D1:5
* N120 EDT: G54
* N130 MMOF...
Explanation: Cycle blocks are entered in the NC program which assign the
current contents of the length compensation value memories (H1 to
H5), the path compensation value memories (D1 to D5) as well as
the part position offsets (G54) to these compensation value
memories or part position offsets respectively.
After this, the edited NC program contains the following blocks:
*N... H1X=..., H1Y=...
...
*N... H5X=..., H5Y=...
*N... D1=...
...
*N... D5=...
*N... G54X=..., G54Y=..., G54Z=...
Start up guide
page 287
10.3.6 MMON MMOF Memory selection Memory deselection
Instruction: MMON MMOF
Function: Memory selection, memory deselection
Description: MMON enables access to the program memory of the PA 8000 with
the edit instructions SEL, EDT, CPY and DEL. With MMOF further
access to the program memory is blocked. All NC blocks between
MMON and MMOF are both executed and inserted in this program
as soon as a program is selected or newly opened. This does not
apply to cycle blocks, which are only executed.
Parameters: none
Example: *N100 MMON
*N110 ...
*N120 ...
.
*N180 MMOF
...
Explanation: In the block N100, the program memory is selected. After that follow
the edit instructions for processing the memory content. The
program memory is deselected again in the block N180. Any
following memory edit instructions are not executed.
Start up guide
page 288
Example: Insert NC blocks in the selected program:
*N10 MMON
*N20 SEL: Q1
*N30 SEL: N10
*N40 SEL: S5
*N50 G1 X5 Y5 F100
N60 X0 Y0
*N70 EDT: (M30)
*N80 MMOF
N90 M30
...
Explanation: The blocks N50 and N60 are inserted as blocks N10 and N15 in the
newly opened program P1. Following this, M30 is written as block
N20 in P1. This is done with the EDT instruction, since otherwise the
command M30 would be contained in the above program twice. The
blocks N50 and N60 are also immediately executed during the
processing of the above program. If this is not desired, i.e. if the
blocks are only to be inserted in the edited program, either the
instruction EDT must be used or the direct processing must be
suppressed with NCOF (see NCOF).
Start up guide
page 289
10.3.7 NCON NCOF CNC selection CNC deselection
Instruction: NCOF NCON
Function: CNC deselection, CNC selection
Description: NCOF has the effect that the following NC blocks are not transmitted
to the CNC for execution. This prevents the CNC from processing an
NC block and the cycle program simultaneously. The CNC is
reactivated again by NCON, so that it can execute the following
blocks of the NC program. This is useful if NC blocks are to be
inserted in the selected program but not immediately processed.
Parameters: none
Example: *N100 NCOF
*N110 ...
*N120 ...
.
.
.
*N180 NCON
...
Explanation: The instruction NCOF in the block N100 has the effect that the
blocks from N110 onwards do not arrive at the CNC for execution.
The CNC is reactivated for the processing of instructions in the block
N180.
Start up guide
page 290
Example: *N100 MMON
*N110 SEL: Q1
*N120 NCOF
N130 G1 X12 Y1 F100
N140 X0 Y0
*N150 EDT: (M30)
*N160 NCON
*N170 MMOF
N180 M30
...
Explanation: The cycle program generates the program P1 with the following
contents:
N10 G1 X12 Y1 F100
N20 X0 Y0
N30 M30
The instruction NCOF in block N120 has the effect that the blocks
N130 and N140 are not immediately executed during the processing
of the cycle program, but are only inserted in the program P1.
Start up guide
page 291
10.3.8 SEL Selection
Instruction: Qnn < (NEW/OLD) > SEL: Nnn SEL: Snn
Function: SELECT
Description: Select an NC program or an NC block, choose the block number
stepwidth.
Parameters: Q NC programs
N NC blocks
S Block numbers stepwidth
NEW Open a new NC program (does not need to be
programmed - presetting)
OLD Open an already existing NC program
nn Number; without designation letters:
Example: Program choice and block selection
*N100 MMON
*N110 SEL: Q1
*N120 SEL: N80
*N130 SEL: S2
.
.
*N170 MMOF
...
Start up guide
page 292
Explanation: In N100, the program memory is opened. In N110 and N120, the NC
program P1 and the block number N80 in it are selected. In N130
the block number stepwidth is set to 2, i.e. the blocks N80, N82,
N84... are addressed by the following operations. If no block number
stepwidth is selected, then the block number stepwidth 10 is used.
10.3.9 SEL: nn
Function: Additional functions
Description: Various special functions can be activated with this instruction.
Parameter: nn identifies the special function
SEL: 0 Deselection of all SEL-special functions
SEL: 10 Parameter transformation OFF
SEL: 11 Parameter transformation ON
SEL: 61-68 Read in analog values via channel 0,...,7 of the AD-
board to the parameters P111 to P118
SEL: 70 Switch off DA-Output
SEL: 71 Request for DA-output for channel 0 of the DA-board
SEL: 72 Request for DA-output for channel 1 of the DA-board
SEL: 73 Request for DA-output for channel 2 of the DA-board
SEL: 80 The active G-codes of the 15 G-Code groups are
copied to 15 parameters. The number of the first of the
15 parameters used for this is placed in the reserved
parameter area at P (x+2).
Start up guide
page 293
Example: SEL: 10/SEL: 11
*N100 MMON
*N110 SEL: Q1
*N120 SEL: 11
N130 G1 X=P1 Y=P2 F100
*N140 SEL: 10
N150 X=P3 Y=P4
*N160 MMOF
...
Explanation: The instruction SEL: 11 in the block 120 has the effect that the
parameters in the following NC blocks, which were written in the
selected program, are replaced by their contents. If the parameter
P1 contains the value 5 and the parameter P2 the value 10, the
block
N... G1 X5 Y10 F100
is produced. The instruction SEL: 10 in block 140 turns off this
parameter transformation, so that the block 150 is inserted
unchanged into the selected program.
Start up guide
page 294
Example: SEL: 80
*N110 P192=10
*N120 SEL: 80
...
Explanation: It is assumed that the reserved parameter area starts at parameter
190. In block 120 the active G-codes of the 15 groups are written in
the parameter table, starting from the parameter number determined
by the allocation in block 110. In this case the parameters P10 to
P24 are used.
Start up guide
page 295
11 Program optimization
11.1 Hints for rational program creation
11.1.1 Subroutines
If the same contour element frequently appears in a contour, then it should be
programmed in a subroutine. The subroutine can then be called up at each
position of the main program at which the contour element is required.
11.1.2 Modally effective instructions
Modally effective instructions should not be programmed again, as a matter of
principle, if they are already active. Following this recommendation gives the
following advantages:
• less memory space required
• shorter program processing time
• shorter program transfer time
11.1.3 Value allocation to NC addresses using parameters
If certain values (e.g. feed rate or spindle speed) repeatedly change during the
processing of an NC program, then it is recommendable to assign parameters
to these values instead of programming them with firm values in the program.
These parameters can then be allocated with values at the start of the
program. This has the advantage, that when these values are altered later in
the program, all the program positions at which the concerned size was
programmed do not have to be looked for. Instead only the corresponding
parameters at the start of the program have to be assigned with the new
values.
Start up guide
page 296
Example: N... P1=1000
N... P2= 500
N... ...
N... ... F=P1
N... ...
N... ... F=P2
N... ...
11.1.4 Rapid traverse using F word
Since only one G-Code can be programmed in each NC block, an exchange is
not possible between G00 and G01 in NC blocks in which a G-Code has
already been programmed. To avoid exchanges between G00 and G01, it is
often recommendable to universally program G01.
The rapid feed rate can then be reached at a given position simply by
programming a correspondingly high F word. The F word can also be
programmed in a block, which already contains a G-Code.
11.2 Hints for processing programs
11.2.1 Look Ahead
The function "Look Ahead" should always be activated by programming G09 at
the beginning of an NC program, as long as on technological grounds there is
nothing against processing the program with "Look Ahead" (see also point
"Activation of special functions using a subroutine").
Start up guide
page 297
11.2.2 Programmable acceleration at Look Ahead
When "Look Ahead" is active the PA 8000 recognizes, over several NC blocks
away, when the axes must be slowed down or sped up.
The acceleration with active Look Ahead is made so that the maximum velocity
at the start of the block is reached as quickly as possible. If the NC block
currently to be executed is followed by a block in which a lower path velocity
has been programmed, then the braking is not made the at the beginning of the
following block, but during the execution of the preceding one. This can result
in rapidly successive acceleration and braking processes.
The function "programmable acceleration" can be used with active "Look
Ahead" to obtain a leveling of the axis accelerations. This puts the machine tool
under less stress and increases the processing accuracy.
11.2.3 Activation of special functions using a subroutine
It is recommendable to always program the real contour geometry description
as the main program. By comparison, functions necessary for the processing,
e.g. PA 8000-specific functions such as Look Ahead, spline interpolation, part
position offsets, should be stored in a resident subroutine, at the end of which a
conditional hold is programmed with M01.
This gives the following advantages:
• PA 8000-specific functions (e.g. Look Ahead) can be quickly and easily
activated in standard programs using a subroutine call up.
• After aborting a program (e.g. due to tool breakage) the possibility exists
that all the necessary presettings for the program continuation are
activated, the main program only is reprocessed up to the conditional halt in
the subroutine, it is then interrupted and, using a manual block selection,
continued at the desired position.
Start up guide
page 298
11.3 Hints for avoiding errors
11.3.1 Protection of subroutines against being called up as main program
In order to avoid processing subroutines as main programs by mistake, when
the subroutines are not intended for this, no F word should be programmed in
these subroutines. If a subroutine without F word is selected as main program,
the error message 199 appears and the subroutine is not processed.
11.3.2 Functions, which are not automatically reset at the program end
If modally effective functions which are not automatically reset at the end (e.g.
G92, G81, G100 and other transformations instructions) are used in programs,
then the instructions which deactivate these functions should be programmed
at the program start. In this way it is ensured that these functions are no longer
unintentionally effective after a program restart, for example after having to
abort because of tool breakage.
11.3.3 Circular interpolation
If three decimal places are set up in the PA 8000 and programs are read in by
a post processor, which only considers two decimal places, then this can lead
to the output of error messages during circular interpolation.
The PA 8000 always checks at circular interpolation, that the distance from the
circle start point to the circle center point corresponds exactly to the distance
from the circle end point to the circle center point. The PA 8000 outputs an
error message if this is not the case. Since the post processor rounds values
up or down, it can occur that these distances do not exactly correspond to each
other.
Start up guide
page 299
Such problems can be avoided by using the instructions G12/G13 (circular
interpolation with specified radius) instead of the instructions G02/G03 (circular
interpolation with specified center point).
11.3.4 Avoid dummy blocks at subroutine call up
Subroutine call ups -at least those within closed contours- should be
programmed in the last motion block before the desired subroutine processing
and not in separate NC blocks.
Example: ...
N50 X70 Y80
N60 Y90 Q100
...
instead of:
N50 X70 Y80
N60 Y90
N70 Q100
11.3.5 Avoid dummy blocks at the subroutine end
The end of program instructions M02 or M30 in subroutines should be
incorporated in the last motion block of the subroutine instead of being
programmed in separate NC blocks. In this way a continuous processing is
obtained at subroutine repetitions of the individual subroutine loops and a
standstill at the end of each subroutine loop thus avoided.
Start up guide
page 300
Example: helix with 10 winds)
Main program:
...
N20 G9
N30 G90
N40 G1 X. . Y. .
N50 G91 Z-10 Q17 L9
N60 Z30
...
Position over workpiece
Feed-in to workpiece-upper edge, call up
subroutine, 9 repetitions
Subroutine P17:
N1 G2 I5 Z-2 M30
If the M30 in the subroutine was programmed in a separate block instead, then
the helix would not be processed continuously; M30 would be interpreted as a
dummy-block, this would result in a standstill after each revolution of the helix.
11.3.6 Avoid dummy blocks at path compensation
Path compensations are normally activated with the instructions G41-G44 and
deselected with the instruction G40. If the selection or deselection of a path
compensation is to be made simultaneously with a change of the interpolation
type (e.g. exchange G01 <-> G02), then two NC blocks would have to be
programmed for the change of the interpolation type and the selection or
deselection of the path compensation. This is because two G-codes must not
be contained in the same NC block. The G40-G44-blocks would be dummy-
blocks in this case however.
Start up guide
page 301
Dummy-blocks can be avoided in such cases however as follows:
• The instruction for the activation of the path compensation is already
programmed in a block, together with D0 or the address of an empty
compensation value memory, before the change of the interpolation type. In
the block in which the path compensation is to be active, only the D word of
the compensation value memory which contains the desired compensation
value is programmed.
• The path compensation can be deselected in an analog way by not
programming G40 in a separate block, but instead by programming D0 or D
together with the address of an empty compensation value memory in the
first motion block which should be processed without path compensation.
Example: N90 G1 X0 Y0 F1000
N100 Y10
N110 G43 D1 Activate the path compensation (dummy-block)
N120 G2 X10 I5 block, which should be processed with path
compensation
N130 G40 Deselection of the path compensation
(dummy-block)
N140 G1 Y0
better: ...
N90 G1 X0 Y0 F1000
N100 Y10 G43 D0 Activate the path compensation with
compensation value 0
N120 G2 X10 I5 D1 Activate compensation value the compensation value
memories 1
N130 G1 Y0 D0 Activate compensation value 0
Start up guide
page 302
11.3.7 Collision free movement
To ensure collision free movement to a point, it is recommendable to use the
instructions of the cycle level II, which enable the current axis values to be
read.
11.3.8 Contour accuracy (G86)
When Look Ahead is active, a contour accuracy which has been programmed
with G86 together with a K word is only effective with circular interpolation
(using G02/G03, G12/G13 or G07) and not however with linear and spline
interpolation.
Start up guide
page 303
Appendix 1 Table of G-Functions
G-Function Meaning Group Effectivity Active after
reset
G00 * Linear interpolation with maximum speed 1 modal
G01 * Linear interpolation with programmed speed 1 modal yes
G02 * Circle or helical interpolation with definition
of center of circle (clockwise)
1 modal
G03 * Circle or helical interpolation with definition
of center of circle (counter clockwise)
1 modal
G04 *² Dwell time blockwise
G05 *² Definition of spline blockwise
G06 * Activation of spline 1 modal
G07 * Tangential arc interpolation 1 modal
G08 * Look Ahead OFF 7 modal yes
G09 * Look Ahead ON 7 modal
G10 * Clean dynamical buffer blockwise
G11 * Fill up dynamical buffer blockwise
G12 * Arc interpolation with definition of radius
(clockwise)
1 modal
G13 * Arc interpolation with definition of radius
(counter clockwise)
1 modal
G14 * Polar coordinate programming absolute 3 modal
G15 * Polar coordinate programming incremental 3 modal
G16 *² Definition of coordinate system blockwise
G17 * Plane select X/Y 12 modal yes
G18 * Plane select Z/X 12 modal
G19 * Plane select Y/Z 12 modal
G20 * Plane select programmable 12 modal
G24 * Work area limit lower boundary blockwise
G25 * Work area limit upper boundary blockwise
G26 * Work area limit OFF 9 modal
G27 * Work area limit ON 9 modal
G33 * Thread cutting, constant pitch modal
G34 * Thread cutting, variable pitch modal
G35 * Oscillation blockwise
Start up guide
page 304
G-Function Meaning Group Effectivity Active after
reset
G38 *² Programmable mirroring ON 10 modal
G39 * Programmable mirroring OFF 10 modal yes
G40 * Tool radius correction OF 4 modal yes
G41 * Tool radius correction to the left 4 modal
G42 * Tool radius correction to the right 4 modal
G43 * Tool radius correction to the left with
modified activation
4 modal
G44 * Tool radius correction to the right with
modified activation
4 modal
G50 * Scaling modal
G51 Partrotation degree modal
G52 Partrotation radiant modal
G53 * Zero point shifting OFF 11 modal yes
G54 Zero point shifting 1 ON 11 modal
G55 * Zero point shifting 2 ON 11 modal
G56 * Zero point shifting 3 ON 11 modal
G57 * Zero point shifting 4 ON 11 modal
G58 * Zero point shifting 5 ON 11 modal
G59 * Zero point shifting 6 ON 11 modal
G63 * Feed/Spindle override ON 8 modal yes
G66 * Feed/Spindle override OFF 8 modal
G70 * Programming in inch 2 modal yes
G71 * Programming in metric format 2 modal
G72 * Interpolation without exact position 6 modal yes
G73 * Interpolation with exact position 6 modal
G74 *² Programmable homing blockwise
G78 * Tangential direction 2D control ON modal
G79 * Tangential direction 2D control OFF modal
G86 * Acceleration corners/accuracy of arc
interpolation
blockwise
G90 * Absolut programming 3 modal yes
G91 * Incremental programming 3 modal
G92 *² Zero point setting, maximum spindle speed blockwise
G94 * Feed in mm/min 5 modal yes
Start up guide
page 305
G-Function Meaning Group Effectivity Active after
reset
G95 * Feed in mm/resolution 5 modal
G96 * Constant cutting speed ON 15 modal
G97 * Constant cutting speed OFF 15 modal yes
G100 *² Polar/Cylindrical transformation OFF modal
G101 *² Polar transformation ON modal
G102 *² Cylindrical transformation ON modal
G105 *² Polar transformation on alternative axes
address
modal
G106 *² Cylindrical transformation on alternative
axes address
modal
G110 *² Axes chaise laser power control blockwise
G111 * Definition of voltage 1 (V1), speed 1 (F1),
time 1 (T1)
blockwise
G112 * Definition of voltage 2 (V2), speed 2 (F2),
time 2 (T2)
blockwise
G113 * Definition of voltage 3 (V3), speed 3 (F3),
time 3 (T3)
blockwise
G114 * Definition of time 4 (T4) blockwise
G115 * Definition of time 5 (T5) blockwise
G116 * Definition of time 6 (T6) blockwise
G117 * Definition of time 7 (T7) blockwise
* : In the same block axis information is programmable
*²: There is no axis information allowed with the same block.
Note:
• The currently active G-codes can be displayed via INFO in the G-codes
window.
• The above list also contains G-codes, which are only available in certain
(e.g. application specific) versions of the PA 8000
Start up guide
page 306
• If no change was made on the part of the machine tool manufacturer, then
at CONTROL RESET the correspondingly marked G-codes in table 2-1 are
active; For another possible default setting see the documentation of the
machine tool manufacturer or the G-codes window by entering F12: INFORMATION after selection of CONTROL RESET.
Appendix 2 Table of M-Functions
M-Command Meaning
M00 * Unconditional Stop
M01 *² Conditional Stop
M02 *² End of program
M03 * Spindle clockwise
M04 * Spindle counter clockwise
M05 * Spindle Stop
M19 * Spindle orientation
M20 * Oscillation ON, punching/nibbling ON
M21 * Oscillation OFF
M22 * Nibbling ON
M25 * Punching with/without dwell time ON
M30 *² End of Program
M40 * Automatically gear selection
M41 * Transmission Step 1
M42 * Transmission Step 2
M43 * Transmission Step 3
M44 * Transmission Step 4
M45 * Transmission Step 5
M46 * Transmission Step 6
M70 * Spline, beginning and end curve 0
M71 * Spline, beginning tangential, end curve 0
M72 * Spline, beginning curve 0, end tangential
M73 * Spline, beginning and end tangential
M80 * Delete rest of distance via probing function
Start up guide
page 307
M-Command Meaning
M101 *³ Delete bit 1
... *³
M108 *³ Delete bit 8
M109 *³ Delete all bits
M111 *³ Set bit 1
... *³
M118 *³ Set bit 8
M121 *³ Pulsate bit 1
... *³
M128 Pulsate bit 8
* : M-Code will be transmitted as BCD to PLC
*² : M-Code will only be transmitted to PLC if the function will be
executed relay
*³ : M-Code will not be transmitted as BCD to PLC
For further M-Codes available in programming please refer to the
documentation of the machine tool manufacturer.
Note:
• The above list also contains M-Codes, which are only available in
certain (e.g. application specific) versions of the PA 8000.