Vous êtes sur la page 1sur 228

Typ1 osa / CC 220

Programming Instructions
DIN

102
Version
Typ1 osa / CC 220

Programming Instructions
DIN
1070 073 661-102 (93.05) GB

(Z25 NJ)

E 1993

by Robert Bosch GmbH,


All rights reserved, including applications for protective rights.
Reproduction or handing over to third parties are subject to our written permission.

Discretionary charge 30. DM


CC 220/320 M
Contents
Flexible Automation Programming Instructions

Contents
Safety instructions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Safety 1

Preliminary remark . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Prelim. 1

Abbreviations used . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 0 1

1 General

General notes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1
Definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 2
Program structure . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 6
Characters used . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 10
Files . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 11
Operation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 13
Leader programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 14
Prompt programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 15
Standard programming formats . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 17

2 G functions

G Codes .................................................................. 21
G0 Linear interpolation with rapid traverse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 5
G1 Linear interpolation with feedrate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 6
G2/G3 Circular interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 7
Helical motion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 11
Cylinder surface milling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 12
G4, G104 Dwell time . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 14
G5 Circular interpolation with tangential entry . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 15
G6, G7 Acceleration programming ON/OFF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 16
G8, G9 Path slope ON/OFF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 17
G10 G13 Polar coordinate programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 18
G14, G15 KV programming ON/OFF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 29
G16 KV measurement (lag measurement) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 30
G17 G19 Plane selection X/Y, Z/X, Y/Z plane . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 31
G20 Plane selection of 2 out of 6 axes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 32
G22 Subroutine call P, K, V level . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 33
without G22 Subroutine call via P/Q address . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 34
G23 Conditional jump . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 35
G24 Unconditional jump . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 36
G25, G26 Permitted working area minimum values/maximum values . . . . . . . . . . . . 2 37
G125, G126 Forbidden working area minimum values/maximum values . . . . . . . . . . . 2 37
G27 Cancellation of the working area limitation . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 37
G28, G128, G29 Corner deceleration ON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 41
Corner deceleration/acceleration OFF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 42
G33 Thread cutting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 43
G37 G39 Programmable mirror image . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 55
G37 G39 Coordinate rotation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 60
G38 G39 Scaling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 65

Cont. 1
CC 220/320 M
Contents
Flexible Automation Programming Instructions

G40, G41, G42 Cutter path compensation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 70


G140, ()43, ()44 Paraxial compensation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 71
G43, G44 Spatial tool offset . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 74
G53 Zero offsets (ZO) OFF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 78
G()54G()59 Zero offsets (ZO) ON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 78
G60, G67 Programmed zero offset (ZO) ON/OFF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 80
G160, G167 External zero offset (ZO) ON/OFF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 81
G61, G62 In position programming ON/OFF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 83
G63, G66 Set 100 % feedrate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 84
G64, G65 Feedrate override . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 85
G68, G69 Contour transitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 87
G70 Inch programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 88
G71 Metric programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 88
G73 Linear interpolation with IN POSITION PROGRAMMING . . . . . . . . . . . . . . . . 2 89
G74 Traversing to reference point . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 90
G174 Traversing to reference point via intermediate position . . . . . . . . . . . . . . . . . . 2 91
G274 Withdrawal from reference point via intermediate position . . . . . . . . . . . . . . 2 91
G75 Measuring probe input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 93
G76 Traverse to fixed machine axis position . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 94
G78, G79 Drilling axis switchover . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 96
G80 G86 Drilling cycles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 99
G81 Drilling 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 103
G82 Drilling 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 103
G83 Deep hole drilling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 104
G84 Tapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 105
G85 Boring out 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 106
G86 Boring out 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 106
G90 Dimensioning system absolute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 110
G91 Dimensioning system incremental . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 110
G92 Set actual value . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 111
G192, G292 Spindle speed limitation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 112
G892, G992 Laser power control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 113
G93 Time programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 115
G94 Feedrate mm/min . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 116
G95 Feedrate mm/rev . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 117
G98 Fast retract ON . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 118
G99 Fast retract OFF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 118
G130/G131/G132 Tangential tool guidance . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 119
G()45/G146 External tool compensation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 122
G993/G994 Asynchronous reciprocating axis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 125
G32 Exact tapping . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 127
G101, G102 Spline interpolation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 129
G114, G115 Feed forward control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 132
G8, G108, G109,
G110 Contourdependent feedrate override . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 134
G51, G52 Workpiece zero shift . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 145
G995 Linking of axes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 147

Cont. 2
CC 220/320 M
Contents
Flexible Automation Programming Instructions

3 Auxiliary and supplementary functions

Address F Feedrate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Address S Spindle speed . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Address M Mcodes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
Programmable spindle orientation (M19) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Address T Tool selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38

4 Tool compensation

Length compensation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 2
Compensation sign for length compensation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 3
Radius compensation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 4
Tool table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 5
Start point, start of contour . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 7
Contour entry with various start points . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 8
Contour transitions with G68 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 9
Contour transitions with G69 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 10
Examples . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 11
End point, deactivation of compensation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 12
Outside corners . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 14

5 Special functions

Rotary axis programming (ROTARY/ENDLESS axis type) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 1


Positioning axes (Hirth axes) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 4
Read monitoring (E code) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5
Quadrant programming . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 8
Directiondependent feedrate override . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 10

6 Annex

Machine error and status display (MZA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1


Structure of an MZA file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2
Example of a part program (P file group) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 4
Example of a zero offset table (V file group) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 5
Example of a tool compensation table (K file group) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 6
Structure of a tool table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 7
Printout of an entire tool table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 9
ZO values entered in the ZO table at the start of the part program . . . . . . . . . . . . . . . . . . . . . . . . . 6 10
Leadscrew error table (L file group) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 11
Tables ASCII character set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 12
Punched tape code (ISO) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 13
Punched tape code (EIA) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 14

Cont. 3
CC 220/320 M
Contents
Flexible Automation Programming Instructions

Cont. 4
CC 220/320 M
Safety instructions
Flexible Automation Programming Instructions

Safety instructions
The following labels, intended to draw your attention to certain features, may be
attached to the control components:

Warning of hazardous electrical voltage!

Warning of danger from batteries!

Components subject to electrostatic induction!

Remove mains plug before opening!

Bolt to be used for connection of protective (PE)


conductor only!

To be used for the connection of a shielding


conductor only!

Symbols used in the manual:

To draw your attention to certain matters:

NOTE!
(This item will give you supplementing explanations, recommendations, informa
tion and tips)

To draw your attention to certain safetyrelevant matters or instructions:

CAUTION!
(Nonobservance of instructions may result in material damage! E.g. deletion of
files or damage to assemblies)

CAUTION!
(Nonobservance of instructions may result in material damage or even bodily
! injury)
CC 220/320 M
Safety instructions
Flexible Automation Programming Instructions
CC 220/320 M
Preliminary remark
Flexible Automation Programming Instructions

Preliminary remark
The present manual refers to the "Z25 NJ" software version of the CC 220/320 M
control.

NOTE!
Information on the current software version of your control can be found in the
DIAGNOSTIC group operating mode after pressing the DIAGNOSTIC CONTROL
and SOFTWARE VERSION softkeys.

It contains with regard to the manual title the information required for the
proper operation of the control. For reasons of clarity, however, it does not contain
all details of all possible function combinations. Likewise, since the control is as a
rule a part of larger installations or systems, it is not possible to cover any
imaginable case of integration or operation.
If, however, you should wish to get further, more detailed informtion, or in case if
special problems occur in the operation of the control which are not, or not detailed
enough, covered in this manual, please address your questions to your local
Bosch service department or to our customer consultation department.

The present description does only apply to DIN programming of the CNC. For CPL
programming, a separate manual is available. For programming the machinetool
manufacturer cycles, please observe the corresponding description of the
machinetool manufacturer.

Programming the control allows you to influence the axis movements (e.g.
positions etc.), machining technology (e.g. feed, rpm, etc.), machining sequence
(e.g. tool change, compensation, helpfunction output, etc.), and even the
interaction between CNC and drives (e.g. KV programming). All this requires
general programming knowledge on the one hand (e.g. for the logic program
sequence, the description of the contour, etc.), and on the other hand knowledge of
the technology of CNC latheturning/milling (e.g. for the selection of the correct
feedrate for machining a certain material).

Therefore, programming must only be performed by correspondingly trained


personnel.

CAUTION!
Programming by insufficiently or even untrained, or unexperienced, personnel
! may result in severe damage to machines, drives, tools, workpieces or even bodily
injury!

Test the programs first without axis movement! The control provides for such tests
! the TEST ON softkey in the AUTOMATIC (NC) group operating mode. If this softkey
is displayed in inverse video, no movements directly initiated by a part program will
be performed.

BOSCH excludes any liability for subsequent damage resulting from processing
! an NC or CPL program or of an individual block, or from manual traverse of the
axes! And neither will BOSCH be liable for subsequent damage which could have
been avoided by appropriate PLC programming!

Please note in this context our extensive training offer. An seminar overview can be
found on the inside of the manuals cover sheet. For details, please contact our
training center (Telephone: 6062/78258).

Prelim. 1
CC 220/320 M
Preliminary remark
Flexible Automation Programming Instructions

Prelim. 2
CC 220/320 M
Abbreviations
Flexible Automation Programming Instructions

ABBREVIATIONS USED:

MTB = Machine tool builder

CNC = Computerized Numerical Control

SK = Softkey

GOM = Group operating mode

MP = Machine parameter

ASCII = American Standard Code for Information Interchange

CPL = Customer Programming Language

DFS = Define storage

IF = Interface

UP = Subroutine

MZA = Machine error and status display

CLM = Clear memory

EIA = Electronic Industries Association

ISO = International Standards Organization

CS = Communication store

CR = Carriage Return = Endofblock character (EIA)

LF = Line Feed = Endofblock character (ISO)

STX = Start of Text

ETX = End of Text

NOTE!
1. The programming examples should be understood as symbolic only.

2. For reasons of clarity, <CR> <LF> (endofblock character) is omitted in


the program explanations. It will only appear where it is required for a better
understanding.

3. Machinetypical and machinedepending programmings have to be


observed (refer to machinetool manufacturers instructions).

01
CC 220/320 M
Abbreviations
Flexible Automation Programming Instructions

02
CC 220/320 M
General
Flexible Automation Programming Instructions

General notes
1. The G functions G900 to G990 can be optionally assigned by the customer.

2. The W tables W999999001 to W999999999 are internally assigned.

3. The program numbers P999999000 to P999999999 should not be used; they


are reserved for NC internal programs such as:

Drilling cycles (P999999081 ... 086)

Measurement cycles (P999999901 ... 937)

Machineerror and status display (P999999999)

CPL / dialog callup (P999999000 ... 003)

The machinetool builder should place M6, M60 and other programs in the
range between P 899 999 000 and P 899 999 999.

4. An axis shut down via "Drive on" (IF signal) must not be programmed.

5. Programs can be tested in fastrun mode via "Program test" or "Go Block".

11
CC 220/320 M
General
Flexible Automation Programming Instructions

Definitions

System of coordinates
The explanations contained in these instructions follow DIN 66217. This standard
standardizes the direction and arrangement of the coordinate axes.
The coordinate system used is a righthanded, rightangled system with X, Y and
Z axis.

+Z
+X
+Y

Axis identification
The coordinate system is correlated in relation to the working spindle to which the Z
axis runs in parallel. Positive axis direction runs from the workpiece to the tool.
The X axis is parallel to the tool clamping surface and horizontal. X and Z define the
location of the Y axis.
Further independently controlled axes, arranged in parallel to the main axes, are
referred to as U, V, W. Rotary movements performed by machine components
around the main axes (e.g. rotary axis) are referred to as A, B, C.

+Y

+V

+B

+A

+C +X
+U

+W
+Z

Axis commands
To uniform the explanation of all programmed movements, the workpiece is as
sumed to be stationary, with only the tool moving (relative tool movement). All
movements are referred to the assigned coordinate system.

12
CC 220/320 M
General
Flexible Automation Programming Instructions

Zero points
The basis is a clockwise Cartesian coordinate system.
The Z axis is parallel to the tool, +Z extends from the tool tip into the spindle.

+Z

+Y +X

The zero point of the coordinate system can be freely selected by the programmer.
In the following, this point will be referred to as workpiece zero point (W) and iden
tified as follows:
W

The transformation of this coordinate system to the machinetool coordinate sys


tem by the program is performed using G92 (set actual value) or G154G159,
G254G259 (zero offset). In the following, the zero point of the machine coordi
nates is referred to as machine zero point (M) and identified as follows:
M

The machine zero point is defined by the machine manufacturer.

13
CC 220/320 M
General
Flexible Automation Programming Instructions

After powerup, the CNC requires an electric signal indicating the accurate posi
tion of each axis. This signal is provided by adjustable cam switches. The indicated
position is referred to as reference point (R) and identified as follows:
R

The position of the reference point of each axis is measured exactly from the ma
chine zero point, and its position is memorized in the CNC.

In these instructions, all axis movements are represented as a relative movement of


the tool.
In this context, the diameter and length of the tool are generally not considered. The
position of the tool on the programmed path corresponds to the
tool set point (N) and is identified as follows:
N

Examples

Each program is started and ended in the program zero point (P) located outside
the workpiece to ensure a safe workpiece change. The program zero point is iden
tified as follows:
P

14
CC 220/320 M
General
Flexible Automation Programming Instructions

Fundamentals
Essentially, programming CNC controls defines the following processes:
Workpiece machining

Tool selection and change

Workpiece change

Workpiece and tool measurement.

For these definitions the CC 220/320 M features two programming options:


According to DIN 66025

CPL

Except for the drilling cycles, this manual covers programming according to DIN
66025 only. Machining is its major subject. Tool and pallet changes are machine
dependent cycles, and are not discussed here.

Part programs can be created as follows:


Directly on the panel of the machine via the standard arithmetic keypad or
optional ASCII keyboard

In officebased programming stations

15
CC 220/320 M
General
Flexible Automation Programming Instructions

Program structure
The program represents a sequence of machining steps and is divided into
blocks.
These blocks contain preparatory functions, path information, auxiliary and
supplementary functions. They provide information on:
the position

the technology

the program sequence

The number of programs is only limited by the available memory space.

Program start
During reading in, the first character of a program has to be an endofblock
character. This allows the control to recognize the start of a program. The pro
gramming code (EIA/ISO) will be determined as a function of the parity of this first
endofblock character:
Even parity = ISO code (8 bits incl. even parity)

Odd parity = EIA code (8 bits incl. odd parity)

ISO and EIA code tables can be found in the annex to these instructions.

NOTE!
All characters programmed before the first endofblock character will be ig
nored by the control during data in.

Program sequence
Without corresponding program instructions the program blocks will be executed
one after the other. However, it is possible to influence the program sequence using
the following options:

Subroutine calls

Repeat instructions

Jump instructions

"Block slash" function

End of program
The end of program is identified by

M30 and endofblock character or

M02 and endofblock character or

M2 and endofblock character.

The effects of M02, M2 and M30 are absolutely identical.


Apart from M02, M2 or M30, no other information may be contained in the last pro
gram block. M02/M2/M30 always sets powerup state except in the case of
G14/G15 and G70/G71.

At the end of subroutines, M02/M2/M30 causes only a return to the calling pro
gram.

16
CC 220/320 M
General
Flexible Automation Programming Instructions

Program block
A block is made up of the block address, one or more words, and the endof
block character.

The endofblock character must always be written (ISO code: LF, EIA code:
CR), but will not be displayed. The blocks may be of different length, but are limited
to 128 characters per block. The block address forms the beginning of the block.
As a principle, more than one G or M words are allowed within one block. The block
address and the words may be preceded by "BLANK" and "TAB" special charac
ters. However, programming "BLANKs" and "TABs" requires a lot of memory space
and furthermore prolongs the block cycle time.
If a slash is programmed ahead of the block address (e.g. "/N100"), this block may
be skipped during the program sequence. For this purpose the "/BLOCK SLASH"
function in the "NC" group operating mode or the related interface signal must be
activated (also see CC 220/320 Operating instructions, chapter 6: "Programse
quence interventions" and Interface conditions, chapter 5.1.: "Inputs of the con
trol").

Example:

/ N100 G1 X255.3 Y3240 Z20.78 F600 LF

ID
Block address
Words
Endofblock character

The block numbers should be programmed in ascending sequence. It is recom


mended to avoid gaps in this sequence.
When editing the program later, up to 99 additional blocks can be inserted between
two individual blocks.

Example:

N1
N1.1
.
. may be inserted
.
N1.99
N2

NOTE!
When omitting the block address the programs readability and flexibility (jump
commands) becomes worse, but the block cycle time is slightly improved.

17
CC 220/320 M
General
Flexible Automation Programming Instructions

Program word
A word is made up of the address letter, the sign and a numerical string. A posi
tive sign can be omitted during input. Depending on the format (integer/real), the
numerical string may contain a decimal point. Within the defined limits, words of
any length can be programmed. It will, however, suffice to indicate only those nu
merals actually containing information.

Example
Numerical string as word contents
Numerical string without information can be omitted

R 2 3 8 . 2 0 0
Decimal point
Sign
Address letter

Program code
Part programs programmed in EIA code (e.g. existing programs on punched tape)
can be easily taken over into the CC 220/320. Output of programs (on punched
tape, cassette or diskette) is only possible in ISO code.

18
CC 220/320 M
General
Flexible Automation Programming Instructions

Character Meaning

* NUL SPROCKET
* STX START OF THE 1ST PART PROGRAM
* CR
LF
FILE HEADER DFS IDENTIFICATION
CR
LF

.
.
DATA NC BLOCKS
.
.

CR
LF
* ETX END OF PART PROGRAM
* NUL SPROCKET

* will be generated by the system during program output.

NOTE!
At the program start, STX has the same meaning as Line Feed (LF) and sets
the parity to ISO. All characters following STX will be evaluated (during data
in). STX is output in addition to <LF> in order to facilitate the recognition of
the start of useful data for connected data storage devices.

At the program end, ETX has the same meaning as M2 <LF> / M30 <LF>
(endofprogram identification during data in). ETX is output in addition to
M30 <LF> in order to facilitate the recognition of the end of useful data for
connected data storage devices.

Ahead of each file, between the leader and the 1st LF, an STX is generated
(during output).

When outputting programs / tables, the CNC will output M30 <LF> and ETX.

During output, the CNC will automatically create Carriage Return (CR) which
will be ignored during data in.

To increase the reliability of reading in data from external media into the
CNCs program memory, the "E CODE" option (read monitoring) option is
available. (see page 56: Read monitoring).

19
CC 220/320 M
General
Flexible Automation Programming Instructions

Characters used

A .... Z
26 uppercase letters

0 .... 9
10 numerals

Minus sign
If the value of an input is negative, a negative sign has to be placed between the
address letter and the numerical string.

+ Plus sign
Positive signs may, but do not have to be written.

Endofblock
ISO code LF, EIA code CR. The endofblock character is an operating signal for
the control and has to be located at the end of the block. The first endofblock
character read in by the control will be identified as program start.

( ) Open brackets, close brackets


Activates special logic in context with DFS and MSG (may also be used for com
ment purposes).

, Comma
Special character according to MSG and DFS. Processed as a punctuation charac
ter within a prompt.

. Decimal point
Used for value input.
Within text, it is merely processed as a punctuation mark.

/ Slash
If "/" is programmed ahead of a block number, the corresponding block can be
skipped during program execution using the "/BLOCK SLASH" function and a cor
responding interface signal.

MSG, note (see pages 116)

DFS identification (see pages 111)

RWED file protection

ECode read monitoring (see pages 56)

1 10
CC 220/320 M
General
Flexible Automation Programming Instructions

Files
The systems contains several file groups:

P: Part programs, CPL, dialog programs

K: Compensation tables

V: Zero offset tables

W: Communication store tables

G: Graphic files (presently not used)

D: Diagnostic programs

L: System files

S: PLC programs (PIC 200)

For workpiece programming (application), the first 5 of the file groups mentioned
are of relevance.
With regard to the file groups, the system does not distinguish between main pro
grams and subroutines or cycles, respectively. All 3 program types are identified by
the P file group. It is thus possible to call up an existing main program as a subrou
tine.

NOTE!
The display of individual blocks of subroutines can be suppressed in the "EXECU
TION" operating mode. To do so, the read protection (cancel R) has to be activated
using a softkey.
The D, L, S file groups are special files and subject to special rules.
If a file with the T identification is being read in, the CNC will display its contents only
on the screen. The file will not be taken over into the part program memory.

File header
Each file has to contain a defined file header, the socalled DFS identification. This
makes it, i.a., possible to protect files from unauthorized access. The file header
has to be preceded by an endofblock character or STX.

Format of the DFS identification:


(DFS, P 123456789, TEXT, R W E D)
File protection
File name (30 characters max.)
File number (9 characters max.)
File group identification

Comma, ")" and LF are not allowed in the file name. File name and file protection do
not have to be specified. If the file protection is missing in the DFS identification,
standard "RWED" will be defaulted.

1 11
CC 220/320 M
General
Flexible Automation Programming Instructions

File protection
"RWED" signifies:
R ( = Read): Read access

W ( = Write): Write access

E ( = Execute): Execute (use) access

D ( = Delete): Delete access

Additional indications:
L ( = Linked): Link table present

A ( = Active): e.g. program file currently active

P ( = Permanent): Permanent file protection

Notes on files

Leadscrew error compensation


The values determined by a laser interferometer are a function of the machine or
axis, and can be permanently stored in the CNC system (EEPROM).
The data is stored in the L files L100 to L108 (1st to 8th axis).

Machine parameters
For editing machine parameters, an L file, L444, is created in the part program
memory; however, after editing, this file will be deleted again (refer to the "CC 320
Machine Parameters" manual, P.No. 4180).

E code
The "E code" option can be used to increase the reliability of reading in data from
external media into the program memory (for a description, please refer to pages
56).

End of file
After M30/M2/M02, an endofblock character must always be programmed.

1 12
CC 220/320 M
General
Flexible Automation Programming Instructions

OPERATION

Program selection
When selecting a program manually or externally, a linkage run is started, and a
link table is created. This link table is used to perform jump addresses to various
subroutines, calculations, etc., which are no longer to be executed during the ex
ecution of the program.
This speeds up the program run.
The link tables are listed under "GOM AUTOMATIC" (ref. to the CC 220/320 M oper
ating manual, P.No. 4181).
Link tables are assigned to the L1 to L99 range. They can be deleted or permanent
ly stored (in this case the linkage run prior to program execution will be omitted).
It is furthermore possible to create link tables in advance. In this case, the linked
program will not be selected after the end of linkage (background linkage).

Automatic deletion
of programs and
tables
Using the CLM command it is possible to automatically delete part programs, zero
offset tables or compensation tables prior to reading in new programs.
(CLM, P...) Delete part program
(CLM, V...) Delete zero offset table
(CLM, K...) Delete compensation table
The LF (Line Feed) character has to precede the bracket expression. More than
one CLM commands can be programmed in series.

Example 1:
.
.
. Sprocket hole track
.
.
<CR> <LF>
(CLM,P60) <CR> <LF>
(DFS,P60, M5 gearbox, RWED) <CR> <LF>
N1 G0
N2
N3
.

Example 2: (clear memory location)


.
.
. Sprocket hole track
.
.
<CR> <LF>
(CLM,P1505) <CR> <LF>
(DFS,P11) <CR> <LF>

1 13
CC 220/320 M
General
Flexible Automation Programming Instructions

Leader programming
An identification text (e.g. in the case of punched tape) can be programmed as a
leader for the actual part program.

The leader text may be of any length. No endofblock character must be pro
grammed (within the leader). In this way the text will be ignored by the CNC and will
not be displayed.

The first endofblock character (LF) makes the CNC automatically recognize the
code format (EIA/ISO). LF or STX sets the code format to ISO. Subsequently, a DFS
identification is expected from the CNC.

Programming
TEST PROGRAM 15, DATED 12.12.90, CC 320 M <CR> <LF>

(DFS,P123456789, MOTOR BLOCK V.21, RWED) <CR> <LF>


N1 ....
N2 ....
N3 ....
.
.
.

1 14
CC 220/320 M
General
Flexible Automation Programming Instructions

Prompt programming (Prompts before readin of the program)

Applications
Prompts for the operator, before one or more programs are read in. In the case of
more than one program stored on one and the same storage medium, in order to
permit a table of contents to be displayed.

If only a single text is to be displayed, the leader of the file containing the text has to
be written as follows:

(DFS, T) <CR> <LF>


.
.
. Text
.
.
<CR> <LF>
M30 <CR> <LF>

Alternatively, T can be programmed with a number (e.g. DFS, T10) in order to dis
tinguish between several "text files" on one and the same storage medium.

18 lines with 64 characters each are available on the screen for text. Individual lines
are automatically separated after 64 characters (even within one word) or at a point
defined by the endofblock character (LF).

If M30 is detected, readingin is stopped, and the programmed text (e.g. with op
erating instructions for a part program) is displayed. The text will not be taken over
into the program memory of the CNC.

Readingin of the actual program can be restarted using a softkey. The display
appears only in the programmemory mode. It will be deleted in case of a mode
change and will not appear again, even if the same operating mode is selected
again.

NOTE!
The combination of the M30 and endofblock characters must not occur within
the text. A programmed endofblock character will not cause any display.
A gap of 110 <NUL> characters must be between the text and the following file.

1 15
CC 220/320 M
General
Flexible Automation Programming Instructions

Prompt programming (Prompts during readin of the program)


If text is to be displayed during program execution, it has to be written as follows at
the corresponding place within the program:

N.....(MSG, Text .....)

A maximum of 64 characters is available for text. The display will appear in the AU
TOMATIC group operating mode.

Applications
Prompts for the operator. When correspondingly programmed (e.g. M0), the pro
gram can only be further executed after acknowledgement of the prompt (CYCLE
START).

NOTE!
All characters apart from the endofblock character and ")" are permitted within
the prompt.
<CR> and <TAB> will be ignored during data in.
The block number need not be programmed, but contributes to clarity.

1 16
CC 220/320 M
General
Flexible Automation Programming Instructions

Standard programming formats


for metric programming and 0.001 mm resolution

The standard format applies to metric input and a measurement system resolution
of 0.001 mm. Addresses related to G33, thread cutting, are not contained in the
table.
A partial modification of the standard formats can be performed via the MP file.

Preparatory Standard
Addresses functions format Signification Unit

Position indications
variable e.g. G1, G2 +
4.3 mm or
e.g. X,Y,Z Cartesian axis position degrees
variable e.g. G11, G12 +
4.3 Polar axis position,
e.g. U,V,W vector length mm
A vector angle dgr.
I,J,K G2, G3 +
4.3 Circle parameter mm
R +
5.3 Circle radius mm

Technology information
D G41/G42 3 Cutter radius compens.
F G93 6.1 Corner deceleration
F G94 6.1 Feedrate mm/min
F G95 4.3 Feedrate mm/rev
F G28 2 Constant feed reduct. %
F G4 5.2 Dwell time sec
F G104 7.0 Dwell time rev
H 3 Tool length compens.
K G28 4.3 Distance to corner mm
S 5.1 Spindle speed rev/min
T 8 Tool

Program information
L 5 Block repetition
L G23 5.2 Conditional jump
L G24 5.2 Unconditional jump

N (block no.) 5.2 N1, N2, N2.1, etc., block address

P,K,V 9 Program, compens., zerooffset ad


P,K,V G22 dress
Subroutine, compens. + zerooffset
Q call
Subroutine call

G 3 G function

M 3 Supplementary machine function

1 17
CC 220/320 M
General
Flexible Automation Programming Instructions

1 18
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Only one word per block may be written from each group of the G functions. Otherwise
the last programmed word of this group will apply.
G Interpolation functions

0/10 Linear interpolation with rapid traverse/polar coordinates S Group 2


1/11 Linear interpolation with feedrate/polar coordinates S
2/12 Circular interpolation with feedrate, CW polar coordinates S
3/13 Circular interpolation with feedrate, CCW polar coordinates S
5 Circular interpolation with tangential entry S

32 Exact tapping O

33 Thread cutting O

73 Linear interpolation with in position programming S

Blockwise operative functions

4 Dwell time (with F word) in sec.. S Group 1


104 Dwell time (with F word) in rev. S

16 KV measurement/compensation O
22 Subroutine, compensation, zerooffset call S

23 Conditional jump (with L word) S


24 Unconditional jump (with L word) S

128 Corner deceleration/acceleration O


74 Automatic traversing to reference point S

174 Traversing to reference point via intermediate position S


274 Withdrawal from reference point via intermediate position S

75 Activate measuring probe input S


76 Traverse to fixed machine axis position S

92 Set actual value S


192 Minimum limit speed S
292 Maximum limit speed S

892 Upper limit value laser power control O


992 Lower limit value laser power control O

O = Option bold = Powerup state


S = Standard * = Powerup state / can be
changed via MPP
(ref. to MP manual)

Powerup state is established by M2/M30, Control reset or Clear logic.


This does not apply to G14/G15 and G70/G71.

21
CC 220/320 M
G functions
Flexible Automation Programming Instructions

On/Off functions (modal)

6 Acceleration programming ON O Group 9


7 Acceleration programming OFF O

8 Path slope ON* S Group 11


9 Path slope OFF

14 KV programming ON O Group 13
15 KV programming OFF

28 Corner deceleration ON O Group 14


29 Corner deceleration OFF

60 Programmed zero offset ON S Group 21


67 Programmed zero offset OFF

160 External zero offset ON O Group 30


167 External zero offset OFF*

61 In position programming ON S Group 23


62 In position programming OFF*

63 Set 100% feedrate S Group 5


66 Cancel G63*

78 Compensation and drilling cycles ON O Group 15


79 Compensation and drilling cycles OFF O

98 Rapid retract ON S Group 27


99 Rapid retract OFF

114 Feed forward control ON O Group 29


115 Feed forward control OFF*

145 External tool compensation ON* O Group 28


146 External tool compensation OFF

993 Asynchronous reciprocating axis ON O Group 31


994 Asynchronous reciprocating axis OFF

101 Spline interpolation ON O


102 Spline interpolation OFF

22
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Switchover functions (modal)

17 Plane selection X Y* S Group 10


18 Plane selection Z X S
19 Plane selection Y Z S

20 Selection of 2 out of 6 axes S


25/26 Permitted working area O Group 12
125/126 Forbidden working area O
27 Deletion of workingarea limitation*

37 Pole for mirror image and rotation O Group 22


38 Programmable mirror image, rotation and scaling O
39 Deletion of G37/G38 O

64 Feedrate override (cutter engagement point) S Group 25


65 Feedrate override * (cutter center point)

68 Outside corners as a radius* S Group 26


69 Outside corners as an intersection S

70 Inch programming S Group 3


71 Metric programming* S

90 Absolute input* S Group 4


91 Relative input S

93 Time programming S Group 7


94 Feedrate in mm/min* S
95 Feedrate in mm/rev. O

108 Contourdepending feedrate influencing O Group 11


109
110

23
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Switchover/on/off functions (modal)

40 Cutter path compensation or spatial tool offset OFF Group 8


41 Cutter path compensation (tool to left of contour) S
42 Cutter path compensation (tool to right of contour) S
43 Spatial tool offset O
44 Spatial tool offset O

140 Compensation parallel to axis OFF O Group 6


()43 Compensation parallel to axis POSITIVE O
()44 Compensation parallel to axis NEGATIVE O
() Number in brackets corresponds to axis number

51 Workpiece zero shift OFF O Group 18


52 Workpiece zero shift ON O
53 Zero offset OFF
54
.
. Call zero offsets S
.
59

153 1st additive zero offset OFF (or 2nd absolute) Group 19
154
.
. Call 1st additive zero offset (or 2nd absolute) S
.
159

253 2nd additive zero offset (or 3rd absolute) Group 20


254
.
. Call 2nd additive zero offset (or 3rd absolute) S
.
259

80 Work cycles OFF Group 16


81 Drilling cycles
.
. Call work cycles S
.
86
89 Freely available

130 Tangential tool guidance OFF


131 Tangential tool guidance ON (normal tool) O Group 17
132 Tangential tool guidance ON (symmetrical tool)

24
CC 220/320 M
G functions
Flexible Automation Programming Instructions

LINEAR INTERPOLATION WITH RAPID TRAVERSE G0

Definition
The programmed position is traversed to at maximum possible speed by interpolation
in a straight line.

Feedrate
No feedrate value is to be programmed
(machinespecific constant is activated).

Interactions
Latches until a new movement mode is selected.
G0 cancels G1, 2, 3, 5, G33, G73, (G10, G11, G12, G13) movement modes.

The next block will only be started if all axes are "IN POSITION". The "IN POSITION"
range is defined by machine parameters.

Programming
G0 X..... Y..... Z.....
Programmable with or without axis addresses.

Path
The traverse movement is straight, even in the case of different distances or different
rapidtraverse rates of the axes.
Depending on the machine, the override potentiometer can be deactivated with G0
via softkey.

Example
Initial position: X100 Y100
N10 G0 X500 Y300
Resulting traverse movement with different path lengths.

+Y

300 B

200

100
A
W
+X
100 200 300 400 500

Traversing speeds
The axis with the longest traverse time travels at maximum speed.
The speeds of additional axes are adjusted in such a way that they reach the destina
tion point simultaneously.

25
CC 220/320 M
G functions
Flexible Automation Programming Instructions

LINEAR INTERPOLATION WITH FEEDRATE G1

Definition
The programmed point is approached with the active feedrate (F word) on a straight
line.
The movement is coordinated in such a way that all axes involved reach the pro
grammed end point simultaneously.

Feed
The programmed feed value (F) acts as the path feedrate; this means that in the case
of movement of several axes, the portion of each axis is smaller than F.

The rate can be influenced using the feedrate potentiometer.

Interactions
G1 cancels G0, 2, 3, 5, G10, G11, G12, G13, G33, G73 and acts modally.

Programming
G1 X..... Y..... Z..... F....

Programmable with or without path information.


Must be programmed with F word if an F word is not yet active.

Once programmed, a feedrate will remain active until it is overwritten by a new one,
even if the control is switched off.

Example:
Initial position: X50 Y30

N100 G1 X30 Y20 F100

+Y

30 A

20 B
10

W
+X
10 20 30 40 50

26
CC 220/320 M
G functions
Flexible Automation Programming Instructions

CIRCULAR INTERPOLATION G2,G3

Definition
The programmed point is traversed to with the active feedrate (F word) on a circular
path.
The movement is coordinated in such a way that all axes involved reach the pro
grammed end point simultaneously.

Action
G2, G3 latch and cancel the G functions in group 2 or are cancelled by them. The ma
chine traverses at the programmed feedrate in a circular path in the chosen plane,
clockwise in the case of G2 and counterclockwise in the case of G3. A feedrate value
has to be active.

G17, XY plane G18, ZX plane

+Z +Y +Z +Y

G2 G2

G3
G3
+X +X

G19, YZ plane

+Y
+Z G2
G3

+X

Programming
In addition to the position values for the circle end point (X, Y, Z), for determining the
arc the interpolation parameters (I, J, K) or the radius (R) must be specified.
Using G20, plane selection of 2 out of 6 axes, circular interpolation can be performed
with any two synchronous axes.
In addition to fullcircle programming (radius and center programming), quadrant
programming is available. It can be activated via an interface signal instead of full
circle programming. For details, please refer to the "SPECIAL FUNCTIONS" chapter.

27
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Radius programming N... G17 G3 X... Y... R+/... F... S... M...

Assuming the current position as the starting point, a circular movement is deter
mined by the end point of the arc and its radius.
The values of the starting point, end point and radius are used to determine the center
of the circle. This results in two intersections to the left and right of the line between the
starting point and the end point.

A= Starting point
E= End point
R= Radius
ML = Center point left
MR = Center point right

ML
E E
R

R
A A

MR

The positions of the starting point and the end point can be entered as absolute values
or in increments, the radius has to be input in increments.

The appropriate one of the two centers is determined by the sign of the radius value:
A positive radius value determines that the center of the circle is to the left of the
starting/end point line

A negative radius value determines that the center of the circle is to the right of
the starting/end point line.

The sense of rotation of the arc is already determined by G2 or G3.

G2
+R
E
G2 R
A

A
G3

As shown in the diagrams, the radius has to be at least half as large as the distance
between the starting point and the end point, since otherwise no intersection will be
obtained. If the radius is exactly half the distance between the starting point and the
end point, the special case of only one intersection will occur. This is only possible in a
semicircle. The sign of the radius value is then optional (preferably positive, since a
positive sign does not have to be programmed. Full circles cannot be produced using
radius programming.
The smallest possible arc depends on the selected machine parameters of the control
(approx. 10 increments).

28
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Center programming
Assuming the current position as the starting point, a circular movement is deter
mined by the end point of the arc and its center.

Interpolation parameters
Socalled interpolation parameters are assigned to the axes involved in the circular
interpolation. They run in parallel to the axes and have a plus or minus sign corre
sponding to their direction, irrespective of whether the machine is in the negative or
positive range of an axis.

+Z +Y

+K

+J

K
J
I
+I
+X

The plane selection determines which axes are involved in the circular interpolation. In
the case of G17, these are the X and Y axes including the related I and J interpolation
parameters.
The interpolation parameters define the distance between the starting point of the
circle and its center.

Examples
N... G90 G17 G2 X350 Y250 I200 J50 F... S... M...

250 E

A
100
J M
50
X
100 300 350 400
200
+I

N... G90 G17 G3 X350 Y200 I50 J200 F... S... M...

250
M
200 E
+J

50
A
X
100 150 200 350

29
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Determination of the interpolation parameters:

I = M (X) A (X)
J = M (Y) A (Y) independent of G90/G91
K = M (Z) A (Z)

with I, J, K as interpolation parameters

X, Y, Z axis portion of the corresponding coordinate,


M for the center point of the circle and
A for the starting point of the circle.

Special cases Quarter circle as a quadrant

Example N... G17 G2 X... Y... J... F... S... M...

Y Feature: One of the interpolation parameters is al


ways zero and can be omitted during programming.
A
In the example, I is omitted.
J
M
E

Semicircle from two quadrants

Example N... G17 G3 X... I... F... S... M...


Y Features: The coordinates of the starting point and
the end point are identical on one axis.
The axis portion can be omitted as destination infor
A M E mation. The interpolation parameter related to this
axis is zero and can also be omitted.
In the example, Y and J are omitted.

X
I

Full circle

Example N... G17 G2 I... F... S... M...


Y Features: The coordinates of the starting point and the
end point are identical.
M Both axis portions can be omitted as destination data.
A E If the starting point and the end point lie precisely in a
quadrant transition, one of the interpolation parame
ters is zero and thus need not be programmed.
In the example, X, Y and J are omitted.
X
I

Note!
If interpolation parameters and the circle radius are programmed within one and the
same block, only the radius will be used.
The CNC calculates the circle radius from the distances between starting point center
and center end point. Should differences occur, the larger radius will always be used
and the center coordinates are recalculated using this radius.

2 10
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Helical motion

Definition
If a third axis is programmed for circular interpolation of two axes, this axis will traverse
linearly. The resulting movement of all three axis produces a helix.
The cutter path compensation acts on the circular plane which can be selected as re
quired using G17, G18, G19 or G20. The F feedrate corresponds to the path rate at the
programmed circle. The circular interpolation is a latching function.

There are the following programming options:

G90, absolute input or G91, incremental input

Interpolation parameters

Rotaryaxis programming will be discussed in chapter 5.

For simple programming, G91 with I, J, K is recommended.

Example 5 threads by block repetition, e.g.


N... G17 G2 X... Y... Z... I... J... F... S... M... L4

Female thread Male thread

Helix

2 11
CC 220/320 M
G functions
Flexible Automation Programming Instructions

CYLINDER SURFACE MILLING

Definition
The term of cylinder surface milling refers to machining of a cylinder surface with a
constant radius. This requires interpolation (linear and circular) between a linear axis
and a rotary axis. Only "ROTARY" is permitted as the rotary axis type.

Action
On a cylinder surface with any radius size, straight lines and circles can be pro
grammed in conjunction with cutter path compensation (G41/G42).
The positions of the rotary axis are defined in degrees.
The machining radius (RA) is programmed directly in mm.
On the basis of the programmed radius, the control reorganizes the corresponding
peripheral dimensions.
The standard radius (RE), for which no conversion is required, is 57.296 mm (RE =
360_ / 2 * p).
The programmed feedrate is observed on the contour.
In terms of controlling and programming, the cylinder surface is treated like a plane,
i.e. it is described with the cylinder surface "unrolled".

It is furthermore possible to include a further axis (e.g. Z axis) in the interpolation; in the
case of circles on the cylinder surface, this will involve helical interpolation. This type of
interpolation produces contour errors, which can, however, be negligible if the infeed
movements per block are kept small.

Programming
Cylinder surface milling is called by selecting the machining plane via G20 and defin
ing an R value.

Example Calling cylinder surface milling

N100 G20 Y0 B0 R value

Working radius
Plane definition
Call

The call has to be written as a separate block in the part program and does not pro
duce axis movement.
The blocks to be programmed after a call are programmed normally (DIN, CPL).

Cylinder surface milling is cancelled by

Control reset

M2/M30

Clear logic

Programming R0 (in conjunction with G20)

Selection of a different plane

Programming a new R value will cause the old one to be overwritten. In this case the
entire call block has to be reprogrammed.

2 12
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Example

60 RA= 57.296
R2=10
50

R1=20 60
40 50

20 40
20

0
X 30 50
60 110
30 50 60 110

N100 G90 G53...


N110 G20 B0 Y0 R57.296 Activate cylinder surface milling;
Main axis B, secondary axis Y
N120 G1 G42 B0 Y20 F500 Cutter radius compensation ON;
traverse to B0/Y20
N130 Z20 Plunge cutter
N140 B30
N150 G3 B50 Y40 R20
N160 G1 Y50
N170 G2 B60 Y60 R10
N180 G1 B110
N190 Z0
N200 G40
N210 G17 X0 Y0 Z0 Deactivate cylinder surface milling;
traverse to X0/Y0/Z0

In this example, the standard radius is specified as the working radius. This dispenses
with the need for conversion between degrees and mm.
Thus, with regard to length, the radius value R1 = 20 mm or R2 = 10 mm corresponds
precisely to the circumferential distance between 30_ and 50_ or 50_ and 60_, respec
tively.
If a different working radius is programmed, one has to take into account that, for
instance, the circumferential distance between 30_ and 50_ may no longer corre
spond to a distance of 20 mm (possible error message: "Invalid circle value").
The degree positions required for programming can be calculated according to the
following formula:

Distance [mm] 180_


X_ = @
Working radius [mm] p
With a working radius of RA = 250 mm and constant radii R1 and R2 the values of
the program example will change as follows:
N100 G90 G53...
N110 G20 B0 Y0 R250
N120 G1 G42 B0 Y20 F500
N130 Z20
N140 B30
N150 G3 B34. 586 Y40 R20
N160 G1 Y50
N170 G2 B36.879 Y60 R10
N180 G1 B110
N190 Z0
N200 G40
N210 G17 X0 Y0 Z0

2 13
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Display
The current radius value can be displayed by depressing the following softkeys (refer
to operating instructions):

GOM Correction

SK Special tables

SK Program parameter Display

Display: G20 Y0 B0 R value (ref. to G78/G79)

DWELL TIME G4, G104

G4, G104 operates in blocks and is programmed with an F word for the dwell time in a
separate block without path information. Only auxiliary and supplementary functions
are permitted in the dwell time block.

N... G4 F... Dwell time in seconds (format 5.2)

N ... G104 F ... Dwell time in spindle revolutions (format 7.0).

The F word programmed in conjunction with G4 or G104 operates in blocks, i.e. the G
code including the F word has to be written again in subsequent blocks for the same
dwell time.

The actual number of spindle revolutions is relevant for the G104 function. The dwell
time is started when the dwell time block has been completely conditioned by the
CNC. The program will be stopped throughout the dwell time. All movements are con
tinued up to the destination point (tool change, lag, etc.). The spindle, however, is not
stopped.

2 14
CC 220/320 M
G functions
Flexible Automation Programming Instructions

CIRCULAR INTERPOLATION WITH TANGENTIAL ENTRY G5

Programming

G5 X..... Y.....

Entry into the circle segment


When programming G5, the control calculates a tangential circle entry. The radius is
not programmed. Only those transitions which do not involve a directional change are
considered as tangential. The control calculates the size and location of the resulting
arc according to the following constructions:

When chaining several G5 movements, the 1st entry tangent influences all subse
quent contour elements with G5.

Influence of the end point

+Y +Y M +Y

E3
E2 120 M2
100
T1 A T1 A T1 A
70 70 70

40 P1
10 W M E1 W W M1
+X +X +X
50 110 50 130 15 50 90

G1 X20 Y70 F200 G1 X20 Y70 F200 G1 X15 Y40 F200


X50 X50 G3 X50 Y70 R60
G5 X110 Y10 G5 X130 Y100 G5 X90 Y120

Influence of the tangent

+Y +Y +Y
M2
T4
T2
A A
70 70 T3 70 A

M1 E
30 E 30 E 30
W W M W
+X +X +X
50 110 50 110 15 50 110

G1 X50 Y70 F200 G1 X50 Y70 F200 G1 X15 Y80 F200


G5 X110 Y30 G5 X110 Y30 G3 X50 Y70 R32.882
G5 X110 Y30

Restrictions No plane switchover is permitted during G5.


No G5 is permitted following G92.
Programming G5 in manual input and as 1st block within the program is not possible,
since no tangent can be calculated.

Tn = Tangent A = Start of circle segment


Mn = Center E = End of circle segment

2 15
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Acceleration programming ON G6
Acceleration programming OFF G7

Definition
The G6 G function is used to program the acceleration values for the respective
axes. The new values are only valid for path operation. Asynchronous axes move
ments continue to be performed with the acceleration values fixed as machine pa
rameters.
Acceleration values cannot be programmed in combination with traversing data.
Other information is permitted.

Action
G6 causes the acceleration values to be stored for the programmed axes. The val
ues are to be programmed as a function of the currently selected system of units
(G70/G71).
Input unit: inch/sec2 or m/sec2.
Format 1.2 or 1.3, respectively.

Examples:
G6 X1.0 (separate block)
A new acceleration value is accepted for the X axis. Acceleration of the Y axis re
mains unchanged. P1002 or P1020 becomes ineffective for the X axis.

G7 X100 Y100 F20


The acceleration values defined as machine parameters for all axes become effec
tive. Subsequently, the point (X100, Y100) is traversed to with F20.
The G6 function is a latching function, it is deselected by G7, M2/M30 or a control
reset, with the result that the values of the machine parameters become effective
again.
G7 can be programmed in conjunction with traversing information.
The programmed acceleration values of each axis have to be within the accelera
tion limits defined as machine parameters; otherwise a corresponding error mes
sage will be displayed.

NOTE!
G6 influences the slope acceleration which might be effective with G114 (P1002 or
1020)!

Example:
N10 G6 X1.0 XSlope = 1.0m/s2,4Slope = P1002[Y]
N20 G114 XSlope = 1.0m/s2,4Slope = P1020[Y]
N30 F1000 S500
N40 G1 X1800 Y800
.
N100 G7 XSlope = P1020[X],YSlope = P1020[Y]
N110 X600 Y1200
.
N200 G115 XSlope = P1002[X],YSlope = P1002[Y]
.

2 16
CC 220/320 M
G functions
Flexible Automation Programming Instructions

PATH SLOPE ON G8
PATH SLOPE OFF G9

Definition
The path slope is used to render the feedrate as constant as possible while machi
ning contours. In contrast to positioning procedures, where one complete "up and
down slope" is performed, this slope, in path operation, operates only to the extent
required for turning around a corner.
Action
The path slope can be switched off using G8 or G9. The function operates modally.
The path slope is only effective for machining axes.
The powerup state is set by M2/M30 and Control reset.
Example: G8
N010 G8 F8000
P0 > P1: N020 X100
P1 > P2: N030 X200
P2 > P3: N040 X300
P3 > P4: N050 X200
P4 > P5: N060 X100
P5 > P6: N070 X0
P6 > P7: N080 X100 F4000
P7 > P8: N090 X200
P8 > P9: N100 X0 M30

+V P1 P2

P7

P3 P6 P8 P9
P0
t

V m/min P4 P5

Example: G9
N010 G1 F8000
P0 > P1: N020 G9 X100
P1 > P2: N030 X200
P2 > P3: N040 X300
P3 > P4: N050 X200
P4 > P5: N060 X100
P5 > P6: N070 X0
P6 > P7: N080 X100 F4000
P7 > P8: N090 X200
P8 > P9: N100 X0 M30

+V
m/min
P7

P1 P2 P3 P6 P8 P9
P0
P4 P5 t

2 17
CC 220/320 M
G functions
Flexible Automation Programming Instructions

POLAR COORDINATE PROGRAMMING G10, G11, G12, G13

Function The polar coordinate function allows the determination of points in a freely selectable
plane by means of the radius and angle, and starting from a freely selectable pole.
The points can be joined in rapid feed with linear or circular interpolation.

Polar coordinate programming operates modally in conjunction with the following


G functions:
G10 = G00 linear interpolation in rapid, with determination of the end
point by means of the radius and angle

G11 = G01 linear interpolation with feedrate, with determination of the end
point by means of the radius and angle

G12 = G02 clockwise circular interpolation with feedrate, with determina


tion of the end point by means of the radius and angle

G13 = G03 counterclockwise circular interpolation with feedrate, with


determination of the end point by means of the radius and angle

G17 = Plane selection for polar plane = X / Y


Pole definition X = 0 (main axis)
Y = 0 (secondary axis)

G18 = Plane selection for polar plane = Z / X


Pole definition Z = 0 (main axis)
X = 0 (secondary axis)

G19 = Plane selection for polar plane = Y / Z


Pole definition Y = 0 (main axis)
Z = 0 (secondary axis)

G20 = Plane selection of 2 out of 6 axes


Polar plane corresponding to programmed axes
Pole definition: xx = programmed value (main axis)
yy = programmed value (secondary axis)

2 18
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Definitions (also see sketches on the following pages)

Polar plane The plane in which polar coordinate programming (POLPROG) is active.
The polar plane is selected by the definition of the main and secondary axis (e.g. main
axis: X; secondary axis: Y).

Pole Coordinate origin of the polar coordinate system.

Radius axis The axis of the polar plane (e.g. X axis, Y axis) assigned to the radius. The positive
orientation of the radius axis corresponds to the angle A = 0 degree.

Angle Angle referred to the positive direction of the programmed radius axis. When defining
the pole or the polar plane, the angle is set to zero. Machine parameter 9909 can be
used to set the angle address (angle name).

Note!
The G00, G01, G02, G03, G05, G10, G11, G12, G13, G33, G73 functions operate mod
ally and overwrite themselves mutually.

For G17, G18, G19, G20, please refer to the respective descriptions.

2 19
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Plane selection of 2 out of 6 axes


The polar plane and the position of the pole on this plane are selected absolutely by
programming G20 and two axis information items.

Example:

N150 G20 X100 Y75 corresponds to:


Polar plane = X/Y
Pole position = X = 100 / Y = 75
Main axis =X
Secondary axis = Y

Polar plane

100

Pole

100 100
Z X

The main and secondary axis are assigned according to the following schematic
(M = main axis; S = secondary axis)

Possible addresses

X U A M S

Valid if the selected axis


Y V B S M addresses are not in one
and the same line.

Z W C S M

M S
Valid if the selected axis
M S addresses are in one and
the same line

S M

Example:

X in 1st line; B in 2nd line ! right table: B


X
G20 X_B_ X= Main axis, B: Secondary axis

Z and W in one line ! bottom table: W


Z
G20 Z_W_ Z: Main axis; W: Secondary axis

U in 1st line; W in 3rd line ! right table: U


W
G20 U_W_ W: Main axis; U: Secondary axis

2 20
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Programmed axes outside the polar plane are traversed in linear mode (G00, G01).

Simultaneously, the selected plane also defines the pertinent center coordinates
which have to be programmed for circular interpolation.

The following assignment applies:

X U A I

Y V B J

Z W C K

I J K

If the selected axes are within one line, the lower assignment of the center parameters
applies. In all other cases the right column applies, i.e. the right column has priority.

In the case of circular interpolation the control checks whether the programmed pa
rameters correspond to the parameters determined by the active plane. If this is not
the case, a corresponding error message will be output. This applies both to the
coordinates of the end point as well as to the center values.

The definition of the pole point is always absolute, i.e. independent of G90/G91.

Scaling of the pole depends on the system of units (G70, G71) active during program
ming of G20. When switching over to a different system of units, the pole remains fixed
at the programmed location, i.e. it is not shifted.
The modal radius has to be converted.

In the case of active zero offset G54 ... G60, the pole is referred to the currently active
(offset) coordinate system.

2 21
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Plane selection with "2 out of 6 axes" module inactive


If the "2 out of 6 axes" module is inactive, POLPROG is effective in the plane selected
by G17, G18 and G19. In this case the pole always corresponds to the origin of the
coordinates.
Y

100
Plane G19 Plane G17

Pole=coordinates origin

100 100
Z Plane G18 X

The plane selection determines the plane in which circles or arcs are described for
circular interpolation and angles are defined for polar coordinate programming.

For the X/Y, the Z/X and the Y/Z plane, fixed G codes are available:

G code Main axis Secondary axis

G17 X Y
G18 Z X
G19 Y Z

G20 Axis 1 Axis 2

With regard to G17, G18 and G19, it is also possible to program axis information; this
information, however, will not be interpreted as pole coordinates.
In the case of G20, precisely two coordinates have to be specified. Otherwise an error
message will appear.
The axis values are used to determine the active plane and the pole point.

The selected plane operates modally. Control reset activates the powerup state.

When selecting the same plane again, or a different one, the modal radius and the
modal angle are set to zero.
In order to be able to traverse with polar coordinates, the radius axis has to be pro
grammed to define the angle reference to the main or secondary axis.

2 22
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Defining a point in the polar plane (G90 absolute)


If polar coordinate programming is active, all positioning movements within the po
lar plane are defined by programming the A angle and the radius (radius axis and
magnitude).
Selection of the radius axis defines the location of the angle in terms of degrees.
If, for instance, the X axis is used as radius axis, all angle data relates to the X+ di
rection.

Example 1:
Radius axis = X:
N150 G20 X100 Y75 Definition of the pole
N160 G10 X50 A75.5 Determination of the end point, starting from the
positive direction of the main axis

Y
P1
120
X50
100
A75.5
75
POLE
50

POLAR PLANE
X
50 100 150 170

Example 2:
Radius axis = Y:
N170 G20 X100 Y75 Definition of the pole
N180 G10 Y50 A75.5 Determination of the end point, starting from the
positive direction of the secondary axis

120
A75.5
100
P1

75
POLE
50 Y50

POLAR PLANE
X
50 100 150 170

2 23
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Describing contours by polar coordinate programming (G90)


The selection codes for polar coordinate programming (G10 ... G13) contain all
modes of of interpolation:

G11 = G01+POLPROG = Linear interpolation


G12 = G02+POLPROG = Circular interpolation, clockwise
G13 = G03+POLPROG = Circular interpolation, counterclockwise

The selection of the G code (G10 ... G13) determines the mode of interpolation to
be used to link the points defined by POLPROG.

Example:
.
.
N200 G20 X100 Y75 Definition of the pole point (POLE)
N210 G10 X50 A75.5 Traversing to the P0 start point in rapid (P0)
N220 G12 X41 A37 R25 Radius, rotating clockwise; center (P1)
to right of line P0P1
N230 G11 X36 A26 Straight line P1P2 (P2)
N240 G13 X44 A351 R25 Radius, rotating counterclockwise; center (P3)
to left of line P2P3
.
.

A1 = 75.5
Y A2 = 37
P0 A3 = 26
A4 = 351 =9

X1 = 50
X2 = 41
X3 = 36
X1 P1 X4 = 44

X2 P2

X3
A2
A3 A1
X+ = 0 degrees
A4 POLE
X4

P3

NOTE!
The above NC block N240 can also be programmed with a negative value A9.

2 24
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Polar coordinate programming with incremental input (G91)


The radius will only be processed as an incremental value if the main or secondary
axis have been programmed, i.e., if this was not the case, the old angle and the old
reference axis of the angle will still be active.

The angle will only be processed as an incremental value if it has been programmed.
Otherwise, the angle is retained modally.

Example: Linear interpolation G11 (row of holes), rapid G10

If, with active G91 (incremental input), polar coordinate programming is used, the
angle and the radius will be incremental in rapid and in the case of linear interpolation
(application: rows of holes etc.). If drilling cycles are used here, one has to make sure
that polar coordinate programming is cancelled at the end of the drilling cycle! G10
must be reprogrammed with each new positioning!

Example without drilling cycle

N290 G90 G0 X100 Y75 Z0 N290 G90 G0 X100 Y75 Z0


N300 G91 F1000 N300 G91 F1000
N305 G20 X100 Y75 N305 G20 X100 Y75
N310 G81 [100, 80] N310 G10 X30 A38
N320 G10 X30 A38 N320 X30
N330 G10 X30 N330 X40
N340 G10 X40 N340 G.....
N350 G80

+Y

150 P3
P2
100 P1
Pole
50
Polar plane
W
+X
50 100 150 200 250

2 25
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Example: Incremental processing of the angle

If polar coordinate programming is used with active G91 (incremental input), the angle
will be incremental, too.

N10 G90 G00 X0 Y0 Traversing to an absolute position


N20 G17 X/Y plane selection
N30 G11 X200 A0 Linear interpolation P1
N40 G91 Y200 A30 Incremental traversing P2
N50 A60 L4 Incremental traversing P3 ... P7
with 4fold block repetition
N60 G90 X0 Return to zero
N70 M30 End of program

+Y
A60
P3
P2
A60

A30

P4 POLE
+X
P0/8 P1/7
A60

A60
P5
A60 P6

2 26
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Programming formats
All geometric data is input in "REAL" numeric format.

POLE  Numeric range, even outside the traversing range


Radius  Numeric range, even outside the traversing range

Angle  Numeric range [degrees]

End point must be within the traversing range

Unchanging information does not have to be written.

Exception:

2 axis information items must always be written in conjunction with G20.

Axes outside the polar plane


Axes outside the polar plane can be programmed in the same block as polar coordi
nate programming.
With active G10, G11, any number of axes can be programmed outside the polar
plane, which are then traversed with G00(G10) or G01(G11), respectively. With active
G12, G13, only one axis can be programmed outside the polar plane, if helical motion
is part of the application.
Helical motion involves the superimposition of a circular interpolation and a linear in
terpolation. Both movement modes are performed synchronously, i.e. the move
ments of the individual axes are interdependent.
As is the case with circular interpolation (center programming or radius program
ming), programming is performed including the indication of the end point on the cir
cular path as well as of the radius axis and the angle plus an additional specification of
the end point of the linear movement outside the polar plane.

Example: (Center programming)

G12, X value, Z value, A value, I value, J value.

With plane selection G17 (XY plane) and G90 (absolute), X will be the end point with
respect to the pole (X0, Y0), and A will be the angle relative to the main axis X.
Circular interpolation will the performed to the resulting end point in the Cartesian X/Y
plane.
Z is used to specify the linear end point.

2 27
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Operativeness POLPROG is operative in the automatic, singleblock and manual input modes. Path
compensation and mirror image remain active as usual. All other compensations refer
to the Cartesian coordinates.

Drilling cycles The G81 to G86 drilling cycles operate modally. They can be programmed in conjunc
tion with polar coordinates.

Interface The POLPROG option does not require any additional interface signals.

Powerup condition POLPROG is not active after switching on following Clear logic or a Control reset.
M02, M30 will cancel POLPROG.

Display The axisrelated values will appear under "end point", "actual path" and "distance to
go".
The active G codes can be viewed under the "Diagnostic" GOM.

2 28
CC 220/320 M
G functions
Flexible Automation Programming Instructions

KV programming ON G14
KV programming OFF G15

Definition
The "KV programming ON" function permits to change within a specific range the
KV value determined during commissioning and stored in the machine parame
ters.

Action
This function produces a shortterm increase of the machine accuracy, e.g. mill
ing bore H7.
m
[ min ]
KV =
S [mm]

V = max. path feedrate


S = Lag at max. path feedrate

Format: 1.2 or 1.3

Programming
G14 X1.20 Y1.20 Z1.20 (separate block)

Accepting a new KV value for the X/Y/Z axis.


P1001 or P1021 become ineffective.

Error message if G14 has been programmed without axis information.

G15 X200 Y300 Z150 (traversing movement in X, Y, Z)

The KV values fixed as machine parameters become again active for all axes.

Programming G15 is also possible without axis information.

The programmed KV values for each individual axis have to lie within the KV limits
defined as machine parameters, otherwise a corresponding error message will oc
cur.

NOTES!
G14 has to be deselected by programming G15.
M2/M30 or Control reset have no effect on G14.
G14 influences the KV value possibly active with G114 (P1001 or P1021)!

Example:
N10 G14 X1.20 XKV = 1,20m,YKV = P1001[Y]
N20 G114 XKV = 1,20m,YKV = P1021[Y]
.
.
N100 G15 XKV = P1021[X],YKV = P1021[Y]
.
.
N200 G115 XKV = P1001[X],YKV = P1001[Y]
.
.

2 29
CC 220/320 M
G functions
Flexible Automation Programming Instructions

KV MEASUREMENT (LAG MEASUREMENT) G16

Definition
KV measurements are used to compensate for possible differences in KV factors or
individual axes which may be caused by inaccuracies in the axis system, e.g. as a
result of temperature, offset, component tolerances, tear and wear, etc.
This facility increases machining reliability and quality.

For this purpose, the axes are traversed by the program by a freely selectable di
stance which is adequate for measurement.

Programming
N100 G16 X300 Y300 F500

Operativeness
If this block is programmed, KV measurement is performed, and the offset factor is
stored upon stabilization of the lag. The offset factor will then become effective by
programming G14 in the corresponding axes.

G16 acts block by block

The feedrate potentiometer is inactive in the G16 block

If no feedrate is specified, the last active F value will be used

The determined KV compensation values will be deleted when the CNC is


switched off or by Clear logic.

2 30
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Plane selection G17 X/Y plane


G18 Z/X plane
G19 Y/Z plane

Definition
These G codes determine the working plane.
The effects of G2/G3/G5, G12, G13 as well as the tool radius compensation are
coupled to these codes.

Interactions G17, 18, 19 are latching and mutually cancel each other.
A pole selection using G20 will also result in a plane selection.

+Y

G18
G2
+X
+Z
+Y

+Y G2

G41
G2 +Z
+X

+X
G19

G17

+Z

Programming
A change of plane has to be programmed prior to the first circular movement (G2, G3).
If M30 is recognized, powerup state (> MP) is automatically selected.
A plane change must not be programmed during an active tool radius compensation
(G41, G42).

Tool radius compensation Tool length compensation


Circular interpolation Infeed axis with standard
G code drilling cycles

Plane selection G17 X/Y plane Z axis can be switched


G18 Z/X plane Z axis separately with G78
G19 Y/Z plane Z axis (refer to G78)

2 31
CC 220/320 M
G functions
Flexible Automation Programming Instructions

PLANE SELECTION OF 2 OUT OF 6 AXES G20

Action is latching
cancels "G17", "G18", "G19" functions

enables free selection of the circular interpolation and the cutter radius compensa
tion plane

selection of the interpolation plane is determined by the programmed axis ad


dresses

path information programmed together with "G20" do not cause a traverse move
ment

only the axis addresses will be processed. The values programmed together with
"G20" will be ignored.

Example:

N100 G20 X100 Y200 (100 and 200 will be ignored).

if "G20" is programmed without or with one or more than two axis addresses, an
error will be displayed, and processing will be stopped at the end of the preceding
block

if helical motion is active, the axis which does not lie within the circular interpolation
plane will also move linearly

detection of "M30" will automatically cause a switchover to "G17"

the axes of the selected plane will automatically be correlated to the cutter path
compensation

circular interpolation is only possible in the axes of the selected plane

"G20" may be programmed only in conjunction with two axis addresses

"G20" must not be programmed during active cutter path compensation, i.e. prior
to selecting a new plane the active cutter path compensation has to be cancelled
using "G40" (refer to programming of path compensation, polar coordinate pro
gramming and thread cutting).

The interpolation parameters to be programmed are assigned as follows:

If both programmed axis addresses are within


the same horizontal row, the correlation con
tained in the bottom will apply to the interpola
X U A I tion parameters.

If the axis addresses to be programmed are in


Y V B J different horizontal rows or in the same vertical
column, the correlation in the righthand col
Z W C K umn will apply to the interpolation parameters.

I J K
Interpolation parameters

2 32
CC 220/320 M
G functions
Flexible Automation Programming Instructions

SUBROUTINE CALL G22

Definition
Like main programs, subroutines are identified via the P address and called using
G22. In addition, compensation tables (K) and zero offset tables (V) can be simulta
neously called in one and the same block.

Action
Subroutines, compensation tables and zero offset tables called with G22, P, (K, V)
are executed unconditionally.
They have to be written in a separate block.

Programming
Example: G22 P15
P 15 is executed once
Approx. 29 subroutines can be nested.
(nesting = one subroutine, in turn, calls further subroutines). If link tables have al
ready been laid out for all subroutines, unrestricted nesting is possible.

P1 P5 P2 P7 P8

N1 N1 N1 N1 N1

N8
N9
N10 G22 P5 N23 G22 P2 N32 P7 L1 N44 P8 L3

N11 N24 N33 N45

N18 M30 N27 M30 N39 M30 N55 M30 N75 M30

P1 = Main program P5, P2, P7, P8 = Subroutines

In the above example:


Calling P 8 in block 44, seen by itself, results in 4 runs of P 8 (1 execution + 3 re
runs).
The preceding call of subroutine 7 in block 32, seen by itself, produces 2 runs of
subroutine 7
Total number P1 P5 P2 P7 P8
of runs 1 1 1 1+1=2 2 x (1+3) = 8

General format
G22 P..... and/or K..... and/or V.....
P = Program number, 9 digits
K = Compensation table number, 9 digits
V = Zero offset table, 9 digits

Powerup state
After switching on the NC, a compensation table or a zero offset table (power
down state) is always active.

2 33
CC 220/320 M
G functions
Flexible Automation Programming Instructions

SUBROUTINE CALL WITHOUT G22


VIA P/Q ADDRESS

In contrast to the G22 call, the calling block may also contain path information.

P address
If only one subroutine is called (i.e. no K and V table), G22 may be omitted.

Example 1:
N100 P10
P10 will be called and processed as a subroutine.
If the P subroutine is called and is to be repeated, G22 has to be omitted.
To define the repetitions, the L block repetition factor has to be programmed, too.

Example 2:
N100 P10 L5
P10 will be repeated 5 times (= executed 6 times).

Example 3:
N100 X.... Y.... P10 L5
The entire N100 block will be repeated 5 times (= executed 6 times).

Q address
If a subroutine is called via a Q address, G22 has to be omitted

Example 1:
N100 Q10 (= N100 P10)
For repetitions it is possible to furthermore program the L factor.

Example 2:
N100 Q10 L5 (= N100 P10 L5)
P10 will be repeated 5 times (= executed 6 times).

Example 3:
N100 X.... Y.... Q10 L5
Only the P10 subroutine will be repeated, i.e. not the entire block.

NOTE!
Subroutines can also be addressed directly via freely selectable G codes, M codes
and other AUX codes. They are defined in the MP file (refer to the relevant section
there). Also refer to chapter 3.

2 34
CC 220/320 M
G functions
Flexible Automation Programming Instructions

CONDITIONAL JUMP G23

Definition
The jump destination block number in terms of L address is rendered depen
dent upon the signal status of the "CONDITIONAL JUMP" interface signal.

Action
A scan is made during the preparation of the G23 block, i.e. an interface signal ex
change between block preparation and block execution will be ignored.
If this cannot be ensured, the block preparation has to be stopped by WAIT pro
gramming.
The jump destination has to be absolutely identical to the L address specification in
the G23 block, even in the case of leading zeroes.

General form
G23 L....

L= Input format 5.2


Block number (jump destination)

Programming
Example: G23 L1

G23 must always be programmed on its own.

Example: WAIT programming


N68 X250 Y20
.
.
N100 X100 Y200 Z50
N101 X0 Y0 Z10
102 WAIT
N103 G23 L68 (A jump to N68 is performed if the condition is met)
N104 X200 Y300
.
.

In CPL block 102 WAIT programming can be used to make sure that the CNC will
detect a signal change immediately prior to executing N103.

NOTE!
Jumps can be made to DIN blocks only, i.e. not to CPL blocks.

2 35
CC 220/320 M
G functions
Flexible Automation Programming Instructions

UNCONDITIONAL JUMP G24

Definition
The jump destination block number in terms of L address is executed uncondi
tionally (closed loop possible).

Programming
General format:

G24 L....

L = Input format 5.2 (block number)

A jump must not be programmed together with other instructions within one and
the same block.
The jump destination (N word) has to be absolutely identical to the L word specifi
cation in the G24 block, even in the case of leading zeroes.

NOTE!
Jumps can be made to DIN blocks only, i.e. not to CPL blocks.

Programming example
L address with leading zeroes

N020 G1 X200 Y300 F500


.
.
N500 G24 L020

L20 must not be programmed in the N500 block.

2 36
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Working area limitation G25, G26


G125, G126
G27

Definition
This function is used to define within the normal traversing range of the axes (software
limit switches) the limits of an additional, restricted and protected working area in or
der to protect the machine and the workpieces from damage resulting from program
ming errors.
The control system provides two options to define a monitored working area:

Definition of a permitted working area (G25, G26)

Y Z G26 (X, Y, Z, U, W,...)

(permitted)

G25 (X, Y, Z, ...)


X

Definition of a forbidden working area (G125, G126

Y Z G126 (X, Y, Z)

(forbidden)

G125 (X, Y, Z)
X

G25, G125 Minimum values


G26, G126 Maximum values

2 37
CC 220/320 M
G functions
Flexible Automation Programming Instructions

The working area values (minimum/maximum values) stored in a separate table can
be activated via the part program, and displayed in GOM Correction.
G25 is used to specify the minimum values, while the maximum values including the
corresponding axis addresses (8 machining axes max.) are specified via G26.
The same applies analogously to G125 and G126, however, with a maximum of 3 ma
chining axes.
If more than 3 axes are programmed, the program will be cancelled with the error mes
sage "2110: MAX. 3 AXES FOR WORKING AREA".
Monitoring of the working area is cancelled by G27.
The working area limitation is possible with "automatic", "single block" and "manual
data input".

Programming G25, G26 operates modally


G125, G126 is functionally cancelled by G27
does not cause traversing of the axes

cannot be written in the same block together with traversing infor


mation

the programmed values relate to the programs zero point;


also to the G92 zero point

the programmed values remain effectively stored until G27 is pro


grammed

must always be programmed in separate blocks

only the changing values have to be reprogrammed

may be written isolated within the block

does not have to be programmed coherently

must not be programmed together with other preparatory func


tions within the same block

can be programmed together with auxiliary functions

tool length and radius compensation as well as zero offsets will be


taken into account

in the calling block the axes have to be within the permitted work
ing area

is functionally cancelled by M2/M30, Control reset, Clear logic,


and automatically sets limit switch values

G27 operates modally


cancels the G25, G26, G125, G126 function

can be written together with other preparatory functions, travers


ing information and auxiliary functions in one and the same block

sets all values in the table to limit switch values.

2 38
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Operation The working area values can be displayed via the "CORRECTION" GOM.

ZERO OFFS. TOOL COMP. SPECIAL CS CPL/DIALOG


TABLES TABLES TABLES TABLES CALL

WORKING PROGRAM EXTERNAL


AREA TABLE PARAMETER TOOL COMP.

Table display (see below)

Note on programming: With active G25, G26, G125 or G126, programming G92 will
offset the permitted or forbidden working area by the G92 zero offset.
As a rule, it will thus be required to redefine the working area after G92.

Display Like all other G codes, the active G code will be displayed under "PREPARATORY
FUNCTION" (CONDITION ON) column.
In addition, the programmed values can be displayed in a table.
Table structure:

NO CP0 NC0 CORRECTION


PROGRAM ACT WAIT 22.7 11:10

WORKING AREA TABLE


G 25 X 10.000 Y 25.500 Z 29.400

G 26 X 100.600 Y 80.000 Z 0.500

G125 X 15.500 Y 30.150 Z 33.500

G126 X 44.540 Y 40.000 Z 1.000

G 27 X 50.500 Y 45.500 Z 33.500

G 27 X 151.000 Y 101.000 Z 1.000

SPECIAL TABLES
WORKING PROGRAM EXTERNAL
AREA TABLE PARAMETER TOOL COMP.

2 39
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Powerup condition
G27 is the powerup state.
Control reset, Clear logic or M2/M30 set G27.

Error messages
FORBIDDEN WORK. AREA AXIS 1 ... 8
FORB. WORK. AREA IN CIRCLE
FOR WORK. AREA MAX 3 AXES
WORK. AREA NOT ALLOW (end point in forbidden working circle).

The program will be aborted. Error messages will also be output in case of an incorrect
working area definition. In this case the system will reset all data of the working area
limitation to the software limit switch positions.

Note!
With active working area, the system will assume the supervision of path points out
side the permitted range.
This supervision, however, will normally (G27) also be performed within the software
limit switch ranges (machine parameters).
Permitted and forbidden working area can be simultaneously active.

Restrictions The working area limitation operates only for machining axes; the size of the table will
be defined in dependence on this factor.
With G125, G126, any maximum of 3 axes can be programmed and selected.
In the case of modulo axes (endless axes), the working area limitation cannot be used.

2 40
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Corner decelaration G28 Corner deceleration ON


G128 Corner deceleration ON (block by block)
G29 Corner deceleration OFF

Definition This module increases the machining accuracy of a machine.

Action This function produces a corner deceleration or acceleration within a programmed


distance K with respect to the programmed end point to a programmed percentage
value F of the previously operable feedrate.
The path slope is inoperable.
G28 is latching and will only be cancelled by G29. Deceleration and acceleration act
only with G1 and G73. In the case of G2 and G3, the feedrate is kept constant at the
programmed F value (if G28 is active).
G128 operates block by block.
G29 is the powerup state, is latching, does not cancel the stored K and F values (i.e.
the K and F values will be reactivated upon reprogramming of G28).

Programming .
.
N45 G28 K10 F60
.
.
N49 G29

G28, distance K and percentage F have to be programmed together within one block,
if a new F and/or K value is to become effective. Otherwise, the last stored value will be
effective.
G28 can be programmed together with G1, G73, or with position data, or auxiliary
functions.
Within a G28 block, a programmed F and/or K value will always be coordinated with
the G28 function, F in terms of % and K in terms of a distance.
K and F remain active until they are overwritten by new values in a G28 block.
Percentage values from F0 to F100 can be programmed (0100%).
The distance K can assume any value but, for reasons of sensibleness, it should not
exceed half of the actual traverse distance.

Example N010 G01 F2000


N020 G42 X150 D1
N030 G28 K10 F20
N040 X30
N050 Y30
N060 G3 X40 Y20 I10
N070 G28 K5 F50
N080 G1 X140 F3000
N090 G3 X150 Y30 J10
N100 G1 Y85
N110 G29
N120 G40 Y90 M30

2 41
CC 220/320 M
G functions
Flexible Automation Programming Instructions

CORNER DECELERATION/ACCELERATION OFF G29

Action G29 is latching


is the powerup state
cancels G28
does not cancel the stored K and F values
K and F values will again be effective upon reprogramming of G28

Programming Can be written with or without position data, within one block

Programming example
N1 G0 G90 G94 X20 Y0 M3 S1500
N2 G42 G1 Y100 F1000 D1
N3 G28 X100 K15 F50
N4 Y55
N5 G2 X80 Y35 R20
N6 G1 G28 X65 K5
N7 Y... etc.

Powerup condition G29 is the powerup state.


Control reset, Clear logic and M2/M30 set the powerup state and do not influence
the value stored in the K or F memory.

Continuous monitoring and supervision are always active to ensure that Fjump max
(path slope parameter) and Aslope max are not exceeded (G128 only).

The K value should be considerably lower than the overall distance, since otherwise
the F(%) value cannot be reached; however, this is no necessary condition.

The internal selection of the acceleration is such that the F(%) value or Fjump max can
be reached (G128 only).

The lower values of Fjump max and F(%) are always used (only with G128).

G128 must always be selected in conjunction with active G8, G29.

G128 operates with G0, G1, G2, G3, G5.

In the G128 block, K will be processed as deceleration distance, F will be evaluated as


a percent value.

2 42
CC 220/320 M
G functions
Flexible Automation Programming Instructions

THREAD CUTTING G33

Definition The following threads can be cut in conjunction with this module:

Longitudinal threads

Transversal threads

Chained threads

Conical threads

Multiple threads

with constant, increasing and decreasing pitch.

In addition

Right and lefthand threads

Thread cutting from left to right and vice versa.

Explanations The division into main and secondary axis is determined by the plane selection.

Abbreviations:

SA = Secondary axis; PSA = Pitch parameter for SA

MA = Main axis; PMA = Pitch parameter for MA

Parameters and limit values for thread cutting

R maximum retraction angle 60 60 deg


minimum retraction angle 0 0 deg

PSA (PMA) maximum pitch 500 mm/rev (20 inch/rev)*


minimum pitch 0.001 mm/rev 0.00005 inch/rev

S maximum spindle speed 5000 rpm*


minimum spindle speed 1 rpm

V maximum feedrate as defined in P6510 machine parameter


minimum feedrate 1 mm/min

Feedrate = Pitch x Spindle speed


V [mm/min] = Pitch [mm/rev] x S [rpm]

* May be exceeded. The maximum permissible feedrate is monitored by the control.

2 43
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Action G33 thread cutting (rapid retraction depending on R address)


G33 is a latching function

G33 will be cancelled by G0, G1, G2, G3, G5, G10, G11, G12, G13 and G73

Thread cutting can be programmed with absolute (G90) or incremental (G91) di
mensions

G33 is programmed in the block containing the position data (thread length, pitch
values)

Programming

Example

G17
G33 X.... I.... Y.... J.... (R....) (F....)
G20 W.... U....
G33 W.... K.... U.... I.... (R....) (F....)

The values in brackets may, but do not have to, be programmed.

Formats:

Only the following parameters are possible in a block containing G33:


G33 SA 4.3 [mm] 3.4 [inch]
MA 4.3 [mm] 3.4 [inch]
PMA 4.3 [mm/rev] 3.4 [inch/rev]
PSA 4.3 [mm/rev] 3.4 [inch/rev]
F 3.3 [mm/rev] 2.4 [inch/rev]
R +2.2 [degree] +2.2 [deg]

2 44
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Assignment of parameters (I J K) to pitch values


The parameters are assigned to the axes involved in thread cutting in accordance with
the same schematic which is used for selecting the circular interpolation planes.
With active G20, the interpolation parameters are assigned according to the following
schematic:

b1 b2 b3

a1 X U A I

a2 Y V B J

a3 Z W C K

I J K

If both interpolation axis addresses are in one and the same row (a), the parameters
will be assigned according to the bottom row. In all other cases, the righthand col
umn applies; i.e. the righthand column has priority.

Example

Thread cutting is to be performed in the X and W axis (conical thread). The selection of
the main/secondary axis determines which of the axes will be the threadcutting axis
and which will be the infeed axis.

X U A I

Y V B J

Z W C K

I J K

The two axis addresses are not within the same row, i.e. the parameter addresses of
the righthand column will apply. In accordance with the above schematic, the follow
ing interpolation parameters apply for

X!=I
W!= K

2 45
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Correlation of main and secondary axis

The main axis is always the direction in which the thread is cut, while the secondary
axis performs the feedin and/or retraction movements (only in case of longitudinal
thread).

With active G20, the main interpolation axis is selected according to the following pat
tern

b1 b2 b3

a1 X U A M S

a2 Y V B S M

a3 Z W C S M

M S
M = MAIN AXIS
S = SECONDARY AXIS
M S

S M

In the case of conical threads, this selection must be made (threadcutting opera
tions involving 2 axes). This selection is not applicable to cylindrical threads.

Starting point and end point of thread machining


Starting point P0:
The starting point of the tool for thread cutting has to be selected in a defined position
ahead of the tool. To reach a constant feedrate, the machine axes require a certain
initial reaction distance. The initial reaction distance is calculated according to the fol
lowing formula:

Initial reaction = F/Kv . (In( K . 100 )


v
F . EW

EW
100 ) F
Kv
EW
= Feedrate
= Closedloop gain factor
= Final lag value

distance
End point Px:
A corresponding final reaction distance (clearance position) has to be provided for the
tool. The magnitude of the final reaction distance corresponds to that of the initial reac
tion distance.

Workpiece

PX P0

Thread length

Final reaction Initial reaction


distance distance

2 46
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Longitudinal thread with variable pitch

No PSA programmed
PMA Positive only. Pitch in MA direction
SA Retraction value in the direction of the secondary axis
MA Thread length in the direction of the main axis
R Angle used to retract with the programmed pitch from the thread to the
retraction value (0 to 60 degrees)
F Change in pitch in MA direction per revolution
F or F+ = Increase in pitch
F = Decrease in pitch

SA

MA

The distance below R is subtracted from the thread length.


If R is not programmed, or if R = 0, the thread is left in rapid at an angle of 90.

SA

MA

The following applies to variable pitch:


MA = n . (PMAi + (n . F)/2)
MA = Thread length in the direction of the main axis
n = Number of threads
PMAi = Initial pitch
F = Increase or decrease in pitch per revolution

The direction in which the thread is cut, i.e. from left to right or vice versa, is deter
mined by the MA value.

2 47
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Transversal thread with variable pitch

No PMA programmed
PSA Positive only. Pitch in SA direction
SA Thread length in the direction of the secondary axis
MA Retraction value in the direction of the main axis
R Angle used to retract with the programmed pitch from the thread to the
retraction value (0 to 60 degrees)
F Change in pitch in SA direction per revolution
F or F+ = Increase in pitch
F = Decrease in pitch

MA

R
SA

The distance below R is subtracted from the thread length.

If R is not programmed, or if R = 0, the thread is left with G00 at an angle of 90.

MA

SA

The following applies to variable pitch:


SA = n . (PSAi + (n . F)/2)
SA = Thread length (incremental data) in the direction of the secondary axis
n = Number of threads
PSAi = Initial pitch in the direction of the secondary axis
F = Increase or decrease in pitch

The direction in which the thread is cut, i.e. from the inside to the outside or vice
versa, is determined by the SA value.

2 48
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Conical longitudinal thread with variable pitch

PMA and PSA are programmed


PMA positive only. Pitch in MA direction
PSA Pitch in SA direction
PSA or +PSA positive pitch
PSA negative pitch
SA Retraction value
MA Thread length
R Angle used to retract with the programmed pitch from the thread to the
retraction value (0 to 60 degrees)
F Change in pitch in MA direction per revolution
F or F+ = Increase in pitch
F = Decrease in pitch

The distance below R is


subtracted from the thread
length.
SA R

MA

If R is not programmed, or if R = 0, the thread is left in rapid at an angle of 90.

In case of variable pitch PSA is increased by F with every revolution. PSA will be
adapted, so that the angle remains unchanged.

The direction in which the thread


is cut, i.e. from left to right or vice
SA versa, is determined by the MA
value.

MA
PMA + 3F PMA + 2F PMA + 1F
rev. rev. rev.

2 49
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Conical transversal thread with variable pitch

PMA and PSA are programmed


PSA positive only. Pitch in SA direction
PMA Pitch in MA direction
PMA or +PMA positive pitch
PMA negative pitch
SA Thread length
MA Retraction value
R Angle used to retract with the programmed pitch from the thread to the
retraction value (0 to 60 degrees)
F Change in pitch in SA direction per revolution
F or F+ = Increase in pitch
F = Decrease in pitch

MA
The distance below R is
subtracted from the thread
length.
R

SA

If R is not programmed, or if R = 0, the thread is left with G00 at an angle of 90.

In case of variable pitch PSA is increased by F with every revolution.


PSA will be adapted, so that the angle remains unchanged.

The direction in which the thread


is cut, i.e. from the inside to the
PSA + F outside or vice versa, is deter
rev. mined by the SA value.

PSA + 2F
rev.

PSA +3F
rev.

SA

MA

2 50
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Chained threads
Chained threads can be produced with all thread types described above.

With G33 the system checks whether another block containing G33 is follow
ing. If this is the case, the retraction value and the R angle are of no relevance.
After completion of the first G33 block, the next thread block follows on with
out waiting for the marker pulse.

However, an R angle and a retraction value should be programmed with each


G33 block. These values are required for withdrawal from the workpiece in
case of a tool break.

Action
G33 is latching

G33 will be overwritten by G0, G1, G2, G3, G5, G10, G11, G12, G13, G73

Operation
Withdrawal in case of tool break

Withdrawal is generally possible when G33 is active

Withdrawal to the retraction value occurs with the "Emergency In" signal at
the programmed angle R at constant pitch with decreasing thread depth.

Withdrawal

SA R R

MA

No withdrawal if no retraction value (SA) was programmed.

The block which was interrupted cannot be repeated when an interface sig
nal is input (e.g. "Return to contour" pushbutton).

The program has to be restarted after the tool change.

2 51
CC 220/320 M
G functions
Flexible Automation Programming Instructions

EXAMPLE 1: G33
Cylindrical thread, constant pitch with rapid retraction of the U axis. 2step
machining, linear infeed P0 ! P0

PX Workpiece
100 P0
PX
P0
PX
R K

PR
50 PR Infeed
Machining Z U axis
Retraction Z

P
Z
50 100 150 200 250

Absolute programming G90


N100 G18 U90 S100 M3
P0 N110 G0 U85 Z230
P0 > PX > PR N120 G33 U50 Z20 K20 R60
PR > PR N130 G0 Z230
PR > P0 N140 U90
P0 > PX > PR N150 G33 U50 Z20 K20 R60
PR > PR N160 G0 Z230
With variable pitch, the F word must also be programmed in the G33 block.

EXAMPLE 2: G33
Conical thread, constant pitch with rapid retraction of the U axis, 2step ma
chining.
U

P0
Workpiece
100 P0
D U1
PX I D Utot 2
D UR1
PX K
50 R PR1

PR2

P
Z
50 100 150 200 250

Absolute programming G90


P0 N100 G0 U110 Z220
N105 G90 G18 S50 M3
P0 > PX >PR1 N110 G33 U50 Z60 I8 K32 R60
PR1 > P0 N120 G0 Z218
N130 U118
P0 > PX>PR2 N140 G33 U40 Z58 I8 K32 R60
N150 G0 Z220

The U word for G33 thread machining defines the PR retraction position in the
U axis. The retraction position is automatically traversed to in rapid as soon
as the thread end point PX ! PX is reached.

2 52
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Multiple threads

The G33 functions described so far permit cutting of multiple threads only by reposi
tioning the starting point in the direction opposite to the cutting direction. However,
this requires an adequate freedom of movement of the tool in the direction opposite to
the cutting direction.
If this freedom of movement is not available, it is possible to trigger the starting point of
interpolation to a preset angular position of the spindle (relative to the 0 marker).

The offset angle between the 0 marker and the start of interpolation has to be specified
as an additional parameter in the G33 block. Input is always in terms of degrees. De
pending on the selected plane, the respectively unused I, J or K pitch parameter is
used as the corresponding address. Negative angles are entered opposite to the ref
erence direction.
The reference direction of the angle is always opposite to the physical direction of
rotation of the spindle.

W W
W = Direction of rotation
a a
of the spindle
a= Angular offset

If the programmed angle a is outside the range of 360 < a < +360, it will be trans
formed to the permitted range by a modulo calculation (mod 360).

Example:
Quadruple thread; I, J: pitch parameters; K: angular offset 0, 90, 180 and 270 rela
tive to the marker.
.
N10 G17
N20 G1 X50 Y0 F2000
N30 M4 S200
N40 G33 X100 Y10 I0.1 J0.01 R30 K0
N50 G0 X50 Y0
N60 G33 X100 Y10 I0.1 J0.01 R30 K90
N70 G0 X50 Y0
N80 G33 X100 Y10 I0.1 J0.01 R30 K180
N70 G0 X50 Y0
N80 G33 X100 Y10 I0.1 J0.01 R30 K270
.

Marker

90

180
270

2 53
CC 220/320 M
G functions
Flexible Automation Programming Instructions

NOTES PSA and PMA have to be entered incrementally


SA, MA can be entered both incrementally as well as absolutely
Switching over from incremental to absolute is performed by G90 or G91, respec
tively
In the case of G33, spindle override and feed override are set to 100% (in the con
trol)
SA, MA operate modally
PSA, PMA, R and F are active in the programmed G33 block only
Spindle speed, direction of rotation and gear range have to be programmed ahead
of the G33 block
The previously programmed F value is of no relevance during G33, but will be ren
dered operative again after G33
In the case of longitudinal threads, PMA can only have a positive value, while PSA
can be positive or negative
In the case of transversal threads, PSA can only have a positive value, while PMA
can be positive or negative
If no retraction value is programmed, the programmed R value will also be ignored
At least PSA or PMA must always be programmed
If no R value is programmed, the retraction movement out of the thread is carried
out at an angle of 90 and in rapid, if MA or SA were programmed. The rapid poten
tiometer is active.
If an R value is programmed, the retraction movement out of the thread to the re
traction value is carried out at the same feedrate, i.e. with the same pitch
The thread infeed has to be programmed in a separate block
The infeed prior to the G33 call must be made with G00
Invalid parameters will be ignored with G33
If no PSA or PMA value was programmed, PSA or PMA equal to zero will automati
cally be used
If no F value is programmed, F = 0 will apply, i.e. constant pitch
When leaving the thread (retraction), the system will not wait for IN POS
During G33, "Feed hold" is possible (interlock via PLC with interface signal G33
possible)
The input parameters will only be verified during block conditioning
The initial and final reaction distances have to be observed during programming,
otherwise the thread may be damaged (to be observed by the programmer)
No withdrawal, if no retraction value was programmed
The values programmed with G33 have to be input in terms of the system of units
input by G70 or G71
It is also possible to program more than one G function during G33
However, it is not permitted to program G functions which modify the R, F, PSA,
PMA, SA or MA parameters
In the case of G functions belonging to one and the same group, the function last
input will be operative.

2 54
CC 220/320 M
G functions
Flexible Automation Programming Instructions

PROGRAMMABLE MIRROR IMAGE G37, G38, G39

Definition

This function makes it possible to produce via programming mirror images of any axis
and any number of axes within machining axes.
The mirrorimage function is activated and cancelled by G functions written in the
part program.
This function has to be considered in conjunction with the COORDINATE ROTATION
and SCALING options.
G37 Pole definition for the programmable mirror image and/or coordinate rota
tion.
G38 Definition of the mirror axes and/or the scale factors and/or the rotation
angle
G39 Cancellation function for G37, G38

Function
G37 Pole definition (mirror point)
G38 Mirror image ON
G39 Mirror image OFF

If G38 including the corresponding axis addresses is programmed on its own and
digit 1, this permits mirror images around the program zero point of the pro
grammed axes (normal case).

In addition, by programming G37, it is possible to define any mirror image point (spe
cial case). The axis values programmed in this block represent the distance to the pro
gram zero point in which the axes are mirrored in parallel with the coordinate system.

Programming G39 resets all mirrored axes.

If G38 is programmed more than once, all mirror axes have to be programmed. The
previously programmed mirror axes are not retained.
In the case of a change from G39 to G38, too, all desired mirror axes have to be corre
spondingly defined within this block.

2 55
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Programming G37 Pole definition (mirror image pole)


G38 Mirror image ON
G39 Mirror image OFF
G37 operates modally
is only operative in conjunction with G38
if required, the pole values must always be programmed in a separate block
does not cause any axis movement
the pole values remain stored and active
the pole values are absolute values
must not be programmed together with other preparatory functions in one
and the same block; auxiliary functions are permitted
the pole values are deleted, i.e. set to zero, by G39, Control reset, M2/M30
and Clear logic
is not influenced by the factors or the rotation angles programmed in G38
G38 operates modally
must always be written together with the axes to be mirrored in a separate
block
to be specified together with axis address and negative digit
must not be programmed together with other preparatory functions in one
and the same block
can be programmed together with auxiliary functions
takes into account interpolation parameters in the case of circular interpola
tion
takes into account cutter radius and length compensation
takes into account the programmed G60 zero offset
does not take into account the G54 G259 zero offsets or G92
the mirror image function becomes active after the next traverse information
is cancelled by G39, M2/M30, Control reset or Clear logic
G39 operates modally
resets all mirror axes
cancels G37 and G38 and sets pole values to zero
can be written in one block together with preparatory functions, traverse in
formation and auxiliary functions
the axis positions traversed to are retained until new positions are pro
grammed.

2 56
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Call:

N99 G37 X100 Y200

Mirror image poles

Call pole definition

N100 G38 X1 Y1

Mirror axes

Call mirrorimage function

Programming example:
Pole data = zero, i.e. mirror image around the program zero point
.
.
N100 G1 X400 Y500 F1000
N101 G38 X1 Mirror image in the X axis
N102 G73 X...
.
.

N200 G38 Y1 Mirror image in the Y axis


.
.
.

N300 G38 X1 Y1 Mirror image in the X and Y axis


.
.
.

N400 G39 G1 X300 Y400 Z0 Mirror image off; pole values = zero

Note!

G90 must be active in the first block following G38.


If this is impossible, the fixed point has to be traversed to before in the case of G91
programming.

2 57
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Programming instructions on related functions:

Mirror image (program zero point):

G38 X1 Y1

Mirror image around a pole:

G37 X100 Y200


G38 X1 Y1

Mirror image + scale programming:

G37 X100 Y200


G38 X3.15 Y2.95

Mirror image + scale programming + coordinate rotation:

G37 X100 Y200


G38 X3.15 Y2.95 R115.5

Note!

If rotation + mirror image/scale are programmed simultaneously, rotation will be per


formed first, followed by mirror image/scale.

2 58
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Sketch: Producing a mirror image in the X axis

P3 10 P3
9

P2 P2 P1 4 P1 P2

15 9 3 3 10 15
ZOY
Program zero point
ZOX
Machine zero point

at program zero point X0 Call: G38 X1


P1 (3/4) becomes P1 (3/4)
P2 (15/4) becomes P2 (15/4)
P3 (3/9) becomes P3 (3/9)

at distance X3 from program zero point: Call: G37 X3


(broken line) G38 X1
P1 (3/4) remains P1 (3/4)
P2 (15/4) becomes P2 (9/4)
P3 (3/9) remains P3 (3/9)

Operation

Mirror image can only be used in the "automatic", "single block" and "manual input"
modes.
The traversing direction of the axes via jog buttons does not change with active G38.

Display

G37/G38/G39 are displayed in the same way as the other preparatory functions. The
current pole values and the mirrored axes can be displayed by softkey stroke:

GOM Correction

SPECIAL
TABLES

PROGRAM Display as for coordinate


PARAMETER rotation (see 2 64)

2 59
CC 220/320 M
G functions
Flexible Automation Programming Instructions

COORDINATE ROTATION G37, G38, G39

Definition
This function is used to facilitate programming for the part programmer.
Recurring program sections which are simply rotated by a certain angle need to be
programmed only once.

Additional advantage: The dimensions of angular workpiece parts do not have to


be converted to machine coordinates, but can be taken over directly from the draw
ing by specifying the rotation angle.

The "coordinate rotation" function should be seen in conjunction with the "Pro
grammable mirror image" and "Scaling" options.

G37 Pole determination for programmable mirror image and/or coordinate rota
tion

G38 Definition of the mirror axes and/or the rotation angle

G39 Switchoff function for G37, G38

Action
Using the "Coordinate rotation" function, it is possible to rotate the coordinate sys
tem in a plane selected with G17, G18, G19 or G20 by a specific angle.
The rotation point and the rotation angle are specified in two separate call blocks,
i.e. G37 and G38, respectively.

The coordinates of the rotation point are defined via the axis addresses, the rotation
angle is defined via the R address.

The rotation point is always related absolutely to the program zero point.

The rotation angle is the angle between the rotation axis of the original workpiece
relative to the location of the rotation axis of the new workpiece.

The rotation axes have the same origin and represent the linkage to the same point
of the respective workpieces.

2 60
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Programming
G37 Pole definition

G38 Coordinate rotation ON

G39 Coordinate rotation OFF

G37 operates modally


is only operative in conjunction with G38
if required, the pole values must always be programmed in a separate
block
does not cause any axis movement
the pole values remain stored and active until G39 is programmed
the pole values are absolute values
must not be programmed in the same block as other preparatory func
tions; auxiliary functions are permitted
the pole values are deleted (zero value) by G39, M2/M30, Control reset,
Clear logic

G38 operates modally


is deleted by G39
must always be programmed with the rotation angle (R) in a separate
block
the programmed R value remains stored and active until G39 becomes
active or G38 becomes active again
does not cause any axis movement
must not be programmed in the same block as other preparatory func
tions; auxiliary functions are permitted
the rotation angle is an absolute value and can be positive (CW) or
negative (CCW)
programming with axis information means a change in scale; written with
negative sign means the creation of an additional mirror image in this
axis
is deleted by G39, M2/M30, Control reset, Clear logic

2 61
CC 220/320 M
G functions
Flexible Automation Programming Instructions

G39 operates modally


is the powerup state
deletes G37 and sets the values to zero
can be programmed together with other preparatory functions,
traversing information and auxiliary functions within one block
the axis positions traversed to remain active until they are
reprogrammed.

Sketch:

+Y

300

Direction of rotation
200

100

(X, Y) R

P
+X
100 200 300 400

(X,Y) Pole (rotation point)

R Rotation angle (CCW)

The rotation point and rotation angle values can be programmed with 7 digits with
or without decimal point; standard format is 4.3.

Call:

N100 G17 G37 X100 Y50

Pole definition
Call
Plane determination
N101 G38 R30

Rotation angle
Call

2 62
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Programming notes on related functions:

Coordinate rotation:
G37 X100 Y200
G38 R127

Coordinate rotation + mirror image:


G37 X100 Y200
G38 X1 Y1 R127

Coordinate rotation + mirror image + scale programming:


G37 X100 Y200
G38 X3.5 Y10 R127

Coordinate rotation + scale programming:


G37 X100 Y200
G38 X3.5 Y10 R127

Mirror image + scale programming:


(G37 X100 Y200) depends on application
G38 X3.5 Y10

NOTE
If rotation + mirror image/scale are programmed at the same time, rotation is per
formed first, followed by mirror image/scale.

G90 has to be active in the first block following G38. If this is impossible, the fixed
point has to be traversed to before if G91 is programmed.

G60 is included in the calculation of the coordinate rotation.

2 63
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Operation
The "Coordinate rotation" function operates in the "automatic", "single block" and
"manual input" modes.
It does not affect setup operation.

Display
G37/G38/G39 are processed in the same way as all other G groups:
Display under "Preparatory functions"
The current pole and angle values can be displayed by softkey stroke as follows:

GOM CORRECTION

SPECIAL
TABLES

PROGRAM
PARAMETER Display as follows:

NO P0 NC0 CORRECTION
PROGRAM ACT 22. 7 11:10
WAIT
PROGRAM PARAMETER
G 17 X 0.000 Y 0.000

G 37 X 12.000 Y 50.000 Z 25.000

G 38 X 0.500000 Y 0.5000000 Z 0.5000000


R 45.000
G 79 +Z

G140

SPECIAL TABLES
WORKING PROGRAM
AREA TABLE PARAMETER

2 64
CC 220/320 M
G functions
Flexible Automation Programming Instructions

SCALING G38, G39

Definition
The "scaling factor switchover" option can be used to change the scale for the dis
placement of all axes of a machine via programmable scaling factors.
This permits the user to select a "free" effective part configuration for his installa
tion.
This function has to be seen in conjunction with the "Coordinate rotation" and Pro
grammable mirror image" options.

G38 Definition of the mirror axes and/or the scaling factors and/or the rotation
angle

G39 Switchoff function for G37, G38

Application
Creation of a part program to define a contour with a preset size (standard
size). Prior to the call of this part program, it is now possible to influence the
scale of the programmed contour by specifying a factor per axis.

When producing moulds for castings or forged parts, this permits the shrink
age dimensions of the workpieces top be compensated for if these dimen
sions are taken into account as early as during machining the casting or forg
ing mould. This is performed by entering the corresponding scaling factors
(multiplication factor).

Action
Scaling factor selection is activated by the G38 function and deactivated by
G39.

The scaling factors can be programmed in a range of 7 digits with or without


decimal point via the axis addresses (standard format 4.3).

It is possible to program unequal scaling factors (useful with linear interpola


tion only).

In the case of circular interpolation, the scaling factors of the main and secon
dary axis must be the same (absolute value); otherwise an error message will
occur.

The scaling factors do not only modify the displacement of the axis ad
dresses, but also the I, J, K interpolation parameters. R for radius program
ming and for the reference plane will also be converted.

2 65
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Scaling factor switchover does not affect the programmed feedrate.

Scaling factor switchover can be activated with active G70 and G71.

This function does not affect operation in the "SETUP" mode, i.e the prese
lected manual and incremental feeds remain unchanged.

M2/M30 contained in a subroutine does not affect scaling factor switchover.

The reentry functions remain fully operable even if G38 is active or if a


switchover has just been made.

Scaling factor switchover operates as follows in conjunction with the prepar


atory functions:

G0, G1, G2, G3, G5, G61, G62, G73 active in conjunction with the pro
grammed axis information

G10, G11, G12, G13, G20 analogous to G0, G1, G2, G3

G25, G26, G27, G125, G126 the working area values are not scaled

G28, G29, G128 operative, but the K and F values are


not scaled

G33 inoperative

G37 pole values are not scaled

G40, G41, G42, G43, G44 operative, the compensation values


are not scaled

G54G59, G154G159, G254G259 the zerooffset values are not scaled

G60 the programmed zero offset is scaled

G70, G71 operative with inch and metric pro


gramming

G74, G75, G76, G174, G274 inoperative

G81G86 operative, also for the R value

G90G91 operative

G92, G98 inoperative

2 66
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Programming
G38 Scaling ON

G39 Scaling OFF

G38 operates modally


is deleted by G39
must always be written with all scale factors in a separate block
the programmed scaling factors remain active until G39 is programmed
or G38 is programmed again
does not cause any axis movement
must not be programming together with other preparatory functions in
one and the same block; auxiliary functions are permitted
Scaling factors with negative sign will simultaneously produce mirror
images of the axes
is cancelled by G39, M2/M30, Control reset and Clear logic

G39 operates modally


is the powerup state
cancels G38 and sets the scaling factors to 1
may be written together with other preparatory functions, traversing
information and auxiliary functions in one block
the axis positions traversed to remain active until they are reprogrammed

Call
N100 G38 X2.12 Y3.28

Scaling factor X, Y axis


Cal
l

NOTE
G90 must be active in the first block following G38. If this is not possible, the fixed
point must be traversed to before in the case of G91 programming.

2 67
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Programming notes on related functions:

Scaling:
G38 X15.12 Y4.5

Scaling + mirror image:


G38 X19.12 Y4.5

Scaling + mirror image around mirror image pole:


G37 X100 Y200
G38 X2 Y5

Scaling + mirror image + coordinate rotation:


G37 X100 Y200
G38 X2 Y5 R30

Mirror image + coordinate rotation:


G37 X100 Y200
G38 X1 Y1 R30

Operation
The "Scaling" function operates in the "automatic", "single block" and "manual in
put" modes.
It does not affect setup operation.

NOTE
If rotation + mirror image / scale are programmed simultaneously, rotation will be
performed first, followed by mirror image / scale.

2 68
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Display
G38, G39 are processed like all other preparatory functions. The current scaling
factors can be viewed via the following softkey operation:

GOM Correction

SPECIAL
TABLES

PROGRAM Display as for coordinate rotation


PARAMETER (see page 2 64)

The nominal value displayed is the numeric value as converted by scaling.


The position value corresponds to the actual axis position; the same applies for the
distance to go and lag.

Error messages
In the case of circular interpolation, if the values of the factors of the main and sec
ondary axis are different, an error message is generated:

FACTOR UNEQUAL

The program will be discontinued.

2 69
CC 220/320 M
G functions
Flexible Automation Programming Instructions

CUTTER PATH COMPENSATION (also refer to chapter 4) G40, G41, G42


Definition
During the execution of a partrelated program, the cutter path compensation
guides the tool on an equidistant line in parallel to the programmed path. Equidis
tant line = path at a rectangular, constant distance to the programmed contour.

G42
G41 G42

G42 G41

G41

Action
G40 Deletion of the path compensation (G41/G42) in conjunction with or without
displacement programming for the axes selected via plane selection
(G17/G18/G19/G20).
G40 does not cancel an active tool length compensation.
G40 is the powerup state and corresponds to Control reset.
G40 must not be programmed with active G2/G3, G5 or G12/G13.
G41 Call cutter path compensation to the left of the workpiece in machining direc
tion, referred to positive compensation values.
The corresponding path compensation value has to be assigned to G41 via
the D address or T address.
G41 can be programmed with or without displacement.
The compensation movement will only be carried out if position data is pro
grammed after G41, i.e. if a movement is programmed in at least one address
of the selected plane (a maximum of 5 blocks without position data between
G41 and the 2nd block containing position data in the active plane).
G42 Call cutter path compensation to the right of the workpiece seen in machining
direction, referred to positive compensation values.
G42 has to be assigned the corresponding path compensation value via the
D address (tool compensation table) or the T address (tool table compensa
tion) in conjunction with M06 programming.
G42 can be programmed with or without displacement. The compensation
will only be carried out if position data is programmed after G42, i.e. if a move
ment is programmed in at least one address of the selected plane (a maxi
mum of 5 blocks without position data between G42 and the 2nd block con
taining position data in the active plane).

Programming
N60 G41 X... Y... Z... D... or N60 M06)
N65 G41 X... Y... Z...
As soon as the first position data after G41/G42 has been programmed in the com
pensation plane, a maximum of 6 blocks without axis information of the active
plane (blank blocks) may be programmed within 3 blocks containing axis informa
tion. Following G40 without position data, a maximum of 6 blank blocks may be
programmed between the next block and the last but one block containing axis in
formation.

2 70
CC 220/320 M
G functions
Flexible Automation Programming Instructions

NOTE
With active G41/G42, no
Plane switchover G17 G20
G70 / G71 switchover
G33, G92, G98, G174, G274
no WAIT permitted
M2/M30 does not cancel the cutter path compensation. This requires program
ming G40 including traversing information
G40/G41/G42 must not be programmed with active G2/G3, G5 or G12/G13, nei
ther for endless axes.
The first position data used after G40/G41/G42 must not be a circular interpola
tion.

PARAXIAL COMPENSATION G140


G ( ) 43
G ( ) 44

Definition
This option is used in special cases (e.g. parallelstroke milling) or wherever the
requirements for a cutter path compensation cannot be met, e.g. traversing to the
contour, retraction from the contour, compensation movements.
Action
Paraxial compensation permits a compensation value to be assigned to any axis.
This compensation value is selected via the D address. The D address contains a
compensation group from a tool compensation table. Depending on the G function
used, the corresponding compensation value is added to or subtracted from the
programmed end point of the axis.
In the case of word coupling with the PC 600, it is possible to provide an additional
compensation (X radius). This compensation can be switched on or off via
G145/G146.
In the case of an existing tool table (FPC, VPC) in the communication memory (only
in the case of word coupling PC 600), a compensation is automatically provided via
the T word and offset with M06.
In this case paraxial compensation acts additionally (additively), provided it was
programmed.
Programming
Paraxial compensation is programmed via the G143, G144, G243G844 G func
tions, with
the hundreds digit indicating the axis number of the axis to be compensated, and
the tens and units digit indicating the kind of compensation offset:
( ) 43 additive
( ) 44 subtractive
The compensation value to be offset is selected via the D address (K table).
It is possible to program more than one G143 to G844 G functions within one block,
with only those G functions overwriting each other which are related to one and the
same axis.
Operativeness:
G143 to G844 operate modally.
G143 to G844 are cancelled by G140.

2 71
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Programming example:

N3

110
N2

N4

30
N1
P N6 N5
+X
40 210

N1 G1 G90 G144 X40 G244 Y30 D1 F1000


N2 G243 Y110
N3 G143 X210
N4 G244 Y30
N5 G144 X40
N6 G140 X0 Y0

NOTE
G41/G42 with tool table compensation (provided and offset automatically) or via D
address (programmed) can be combined with G143 ... G843 or G144 ... G844 (D
address), if this makes sense. In addition, a further length compensation can be
implemented via G78 (H address). However, mixing these combinations in this way
is practical in a few cases only.

G41/G42 and G143/G844 do not exclude each other. However, it does not make
sense to use them together.

2 72
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Display
In the DIAGNOSTIC group operating mode, the paraxial compensation last pro
grammed in the block is displayed.

In the CORRECTION group operating mode, "Special tables" function key, all pa
raxial compensations are displayed as follows (excerpt):

GOM Correction

SPECIAL
TABLES

PROGRAM
PARAMETERS Display as follows:

NO P0 NC0 CORRECTION
PROGRAM ACT 22. 7 11:10
WAIT
PROGRAM PARAMETER
G 17 X 0.000 Y 0.000

G 37 X 0.000 Y 0.000 Z 0.000 A 0.000


B 0.000
G 38 X 1.0000000 Y 1.0000000 Z 1.0000000 A 1.000000
R 0.000
G 79 +Z

G143 +X G 243 +Y G 344 Z

SPECIAL TABLES
WORKING PROGRAM
AREA TABLE PARAMETER

2 73
CC 220/320 M
G functions
Flexible Automation Programming Instructions

SPATIAL TOOL OFFSET (OPTION) G43, G44

Definition
The G43 or G44 functions produce a modification of the traversing distance pro
grammed in a part program. The modified end position of the traversing distance
differs from the programmed end position by an offset vector which is determined
by the I, J, K, R and D parameters.
This can be used to obtain a spatial tool offset.

Function
Instead of the programmed position E with the coordinates (X, Y, Z), a position E,
offset by vector V, made up of the components Vx, Vy, Vz, with the coordinates (X,
Y, Z) is traversed to with G43 or E (X", Y", Z") in the case of G44.

Y
0E E (X, Y, Z)

0 V
E (X, Y, Z)
Z 0E
X
E

X X Vx
Where: 0E = 0E + V or Y = Y + Vy with G43
Z Z Vz

Offset vector

X X Vx
or 0E = 0E V or Y = Y Vy with G44
Z Z Vz

The offset vector is defined via the I, J, K, D addresses and, if applicable, R.


The direction is determined by the I:J:K magnitude ratio.
The length is determined on the basis of the Dxxx compensation value in the tool
compensation table and/or the active compensation value from the tool table
(PC 600) and a standardization factor with address R.
The following relationships apply:

Vx = Compensation value * I/ I2 + J2 + K2
Vy = Compensation value * J/ I2 + J2 + K2 if R=0
Vz = Compensation value * K/ I2 + J2 K2
and
Vx = Compensation value * I/R
Vy = Compensation value * J/R if R > 0
Vz = Compensation value * K/R

2 74
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Switch on, Switch off


G40 is the powerup state of the option. The powerup state of the I, J, K, R ad
dresses is in each case 0.
G43/G44 operates modally and is cancelled by programming G40/G41/G42 or
M30.
If G43/G44 is cancelled by G40/G41/G42 or M30, the system sets the I, J, K and R
parameters to 0.
A temporary deactivation of G43/G44 without parameter loss is possible via pro
gramming D0 (or G146 in the case of tool table compensation).
Under "Program parameters" in the "Correction" group operating mode, the last
programmed values for I, J, K and R are displayed as follows:
G40
or
Gxx Ixxx Jxxx Kxxx Rxxx

Since I, J, K and R are relational figures (and thus dimensionless), their values will
not change during a switchover between G70/G71 (inch/meters)!

NOTE
As long as G2/G3 is active, the offset vector cannot be changed.

When activating or deactivating the spatial tool offset, no circular interpola


tion must be active.

After switching the spatial tool offset on by G43/G44 (or D address !), the
block containing the next traverse movement must not contain a circular in
terpolation.

After switching the spatial tool offset off with G40 (or with D0 address!), the
block containing the next traverse movement must not contain a circular in
terpolation either.

Radius and center programming are permitted with circular interpolation.

A selection or switchover of the interpolation plane using G17/G18/G19 can


only be made if G43/G44 is not active.

With active G43/G44, programming of the following functions is not per


mitted and produces runtime errors:
G10 G13 (Polar coordinates)
G37,G38,G39 (Coordinate rotation, mirror image, scaling)
G80 G86 (Drilling cycles)
G92 (Set actual value)

If R is not programmed, or programmed with a value of 0, it is calculated inter


nally.

2 75
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Programming
The direction of the offset vector and the standardization factor can be determined
by the I, J, K and R addresses only if G43/G44 is active.
If, with active G43/G44, only an R without I, J and K is programmed within a block,
the system sets I, J and K to value 0.
If only D and/or G40 are programmed within a block (without X, Y, Z and without I, J,
K), no traversing movement will occur. In contrast hereto, programming I, J, K with
out X, Y, Z will produce a traversing movement.

Example 1: Traversing movement in the case of linear interpolation

N10 G1 X... Y... Z..


Activation of the spatial tool N15 G43 R1
offset with given standardization
factor

Offset vector still has N20 X.. Y.. Z.. I.. J.. K.. D0
the value 0 (D0)

Offset vector is set to N30 X.. Y.. Z..


D1 greater than 0 (D1)

Modification of the length of N40 X.. Y.. Z.. D2


the offset vector with D2

Offset in opposite direction N45 G44 X.. Y.. Z

Restore initial offset direction, N50 G43 X.. Y.. Z.. D0


program the same position as
in N45, set offset vector to 0 (D0)

Modification of direction and N55 X.. Y.. Z.. I.. J.. K.. D3
magnitude of offset vector

N60 X.. Y.. Z


Standardization of (I, J, K) N65 G43 R0
is calculated internally

Modification of the magnitude N70 I.. J.. K D4


and direction of the offset vector;
since I, J, K were programmed, N80 X.. Y.. Z..
the end point of N60 will now
be traversed to with the offset
vector in N70

Deactivation of the spatial tool N90 G40 X.. Y.. Z


offset, and traversing to the
end point of N90

progr. travel without tool offset


programmed travel with tool offset

2 76
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Example 2: Spatial radius and vertical length compensation


To machine (freeform) surfaces using a vertically oriented spherical cutter, it is
possible to use G43/G44 (3D compensation) and H (1D compensation) in the
part program to program the path of the tool engagement point instead of the tool
reference point.

This requires programming of

the values of the surface normal vector at the relevant tool engagement point
for I, J and K,

R = 1 (if the surface normal vector is standardized to 1)

D: the number in the tool compensation table corresponding to the cutter ra
dius; and

H: the number in the tool compensation table corresponding to the cutter


length.

Example: N10 G1 G43 D... H... R1


N11 X... Y... Z... I... J... K...

PB

PM
n
F
W
PE
PS

PB = Tool reference point


PS = Tool tip
PE = Engagement point of the tool on the contour
PM = Tool center
W = Unit vector in the direction of the tool axis
n = Surface normal in P (unit vector in direction P to P )
F E E M

2 77
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Zero offsets (ZO) G( )54 G( ) 59 ZO ON


G53 ZO OFF

Definition
Zero offsets can be used to offset and fix the program zero point to any required
point of the axis. Programming G()54 G()59 causes offset values stored in the
tables V1 V999999999 to be activated. Using G()53, they can be cancelled again.

Action
G()54 G()59 are latching, cancel each other mutually and are cancelled by G()53.
The magnitude of the offset is determined by the stored value. After programming
G()54 G()59, the zero offset becomes effective only after the next position data.
Each axis in which the zero offset is to become effective has to be programmed.
G()54 G()59 alone do not cause any traversing movement.

G22 can be used to activate several zero offset tables or tool compensation tables
within the part program.
The zero offset table contains a maximum of 3 groups with 6 zero offsets each.

(G54..G59; G154..G159; G254..G259)

The number of groups (1 3) can be set by a machine parameter.

The zero offsets from different groups operate additively (e.g. G54 + G156 +
G259). Any group programmed on its own operates absolutely and thus increases
the number of zero offsets.

The zero offsets within the individual groups overwrite each other mutually.

G53 resets all active zero offsets except G60.

G153 or G253 resets the additive zero offsets.

Programming
G54 No movement if on its own
or
G54 X...Y...Z.. Offset already applies to the position programmed here.

An active ZO (G()54 G()59) has to be switched off prior to programming G92 (set
actual value).

2 78
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Example: Related ZO table

+Y
G54 X100 Y10 Z70
G55 X300 Y100 Z70
G56 X500 Y100 Z70
500 G57 X100 Y450 Z70
G57 G58 G59 G58 X300 Y450 Z70
W W W G59 X500 Y450 Z70
400
This table can be loaded by ma
nual input on the control,
300 CPL access,
via the serial interface or
via the DNC channel.
200

100 G54 G55 G56


W W W
M
+X
100 200 300 400 500 600 700

N9 G22 V10 P10 Call subroutine 10 + ZO table 10


N10 G54 1st ZO activated
N11 X... Y... 1st ZO being executed
.
.
N20 G59 X... Y... 6th ZO activated and executed
N21 G22 P5 Call subroutine 5
N22 G53 Machine coordinates apply again
.
.
N10 G22 P5 Call subroutine 5
N11 G54 X... Y... ZO activated and executed
N12 G154 X... Y... 1st additive ZO activated and executed
(additionally)
.
.
N100 G256 X... Y... 2nd additive ZO activated and executed
.
N150 G153 1st additive ZO cancelled
.
N200 G53 X... Y... Machine coordinates apply again

2 79
CC 220/320 M
G functions
Flexible Automation Programming Instructions

PROGRAMMED ZERO OFFSET ON G60


PROGRAMMED ZERO OFFSET OFF G67

Action
G60 can be used to program a zero offset directly within the part program, i.e. in a
workpiecerelated manner.
It acts additively (i.e. in addition) to other compensation values.
The G60 block does not cause any traversing movement. It simply activates the
offset values.
Programming G67 will cancel the G60 values again.

Programming
N10 G60 X... Y... Z...
(no traversing movement of the axes)
.
.
N100 G1 X... Y... Z...
(traversing movement of the axes allowing for the offsets)
.
.
N210 G67 X... Y... Z...
(traversing movement of the axes with cancellation of the G60 values)
or G67
(reset zero offset)

2 80
CC 220/320 M
G functions
Flexible Automation Programming Instructions

EXTERNAL ZERO OFFSET ON G160


EXTERNAL ZERO OFFSET OFF G167

Function
A zero offset can be implemented for each applied axis via G160. The values can be
transferred by the PLC to the CNC and also be changed by the PLC during the exe
cution of a part program. Within the CNC, it is possible to read the existing values
via CPL. The values are memorized in the CS memory. If G60 is active, the external
ZO values operate additively to other compensations already active (table ZO; pro
gram ZO).

The values transferred by the PLC have to be integers and refer to the "increment"
(I) measurement unit. This increment is defined as follows with the P9904 and P103
machine parameters:

(P103)
.
1 I = 10 . (P9904)
Examples: If P9904 = MM and P103 = 3, the resulting increment is as follows:

= 10 3 . mm
= 1 mm

Thus, if a compensation value of 10 mm is to be included in the calculation, the PLC


has to transmit the value of 10.

In the case of the metric system, the external zerooffset values are calculated ac
cording to the preset axis distance (P9904) and the preset axis format (P103) and
displayed in the respective input unit (m, mm, cm etc.).

When switching over to inch, the values stored in the CNC are correspondingly
converted. The resulting increment (I) is then as follows:

. ( (P103) . (P9904) ) .
1 I = 10 1 Inch 1 Inch

With active G70 (inch), the PLC can preset a zerooffset value with a maximum
accuracy of

((P103)+1)
10

inch. If, for instance, P103 = 2, the maximum resolution will be 1/10 inch.

2 81
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Activation/deactivation
The external zero offset is activated by G160 and deactivated by G167. The external
ZO values stored in the CS memory are overwritten with "0" or initialized only dur
ing "LOAD BACKUP".
Reset or Clear logic does not modify existing external ZO values.

After programming G160, the currently existing external ZO values are always in
cluded in the calculation of the overall zero offset.

If the values are modified by the PLC during the execution of a part program (e.g. by
M function) with active G160, blocks programmed directly after the M function
which have already been prepared are not yet influenced by the new values!

Remedy:
After programming the M function, the "WAIT" CPL command should be written
into the next program block.
This causes the block preparation to stop until all blocks programmed ahead of
"WAIT" have been executed. Subsequently, block preparation and execution is
continued including the new ZO values.
In addition, specific inclusion of the ZO values is possible if, owing to the M function,
the PLC first transfers the compensation values to the CNC, then sends the "FEED
HOLD" and "CANCEL DISTANCE TO GO" signals, and finally issues the acknowl
edgement for end of cycle to the CNC. In this case "WAIT" does not need to be pro
grammed.

Display of the values


In the "Correction" mode, "Zero offset tables" softkey, the CNC displays the values
currently stored in the control after pressing the "EXTERNAL ZERO SHIFT" softkey.

NOTE
The powerup state for G160/G167 can be defined via the P 3013 machine pa
rameter.

2 82
CC 220/320 M
G functions
Flexible Automation Programming Instructions

IN POSITION PROGRAMMING ON G61


IN POSITION PROGRAMMING OFF G62

Definition of G61
In the G1, G2, G3, G5, G11, G12, G13 interpolation modes the control waits per
block for the inposition window to be reached before interpolation of the next
block is commenced. The window width can be defined using machine parame
ters.

Actions
G61/62 act modally

G62
is the powerup state

+Y
G1/
G62
500

400 G1/
G61

300

200

100

M
+X
100 200 300 400 500 600 700 800 900

Programming
G61, G62 have to be programmed at the latest in the block for which the function is
to apply. M2/M30 sets the powerup state.

Example:
.
N10 G61 no movement
N11 G1 Y200 interpolation with inposition

or
.
.
N10 G62 interpolation without inposition
N11 G1 Y200
.
.
N50 G61 X200 interpolation with inposition as early as in this block

2 83
CC 220/320 M
G functions
Flexible Automation Programming Instructions

SET 100% FEEDRATE G63


CANCEL G63 G66

Definition of G 66
The position of the corresponding feedrate compensation potentiometer on the
setup panel is evaluated.
G66 cancels G63

Definition of G 63
The feedrate is set to 100% of the programmed value, irrespective of the position of
the potentiometer.
"Set spindle 100%" can be set via the interface logic if the "G63" output signal sets
the "Spindle override 100%" input signal.

Interactions
G66 is the powerup state
Both functions operate modally and exclude each other mutually.

Programming
Can also be programmed together with other preparatory functions.
M2/M30 sets the powerup state.

Application
The feedrate override potentiometer can thus be rendered inoperative by the pro
gram. Using the interface logic, it is also possible to deactivate the override poten
tiometer for the spindle.

NOTE
Operates only in the automatic/manual mode and only for feedrate (no
"rapid").

2 84
CC 220/320 M
G functions
Flexible Automation Programming Instructions

FEEDRATE OVERRIDE (with cutter radius compensation) G64 Cutter engagement point
G65 Cutter center point

Definition
In the case of circular segments, the feedrate determined with the F word applies to
the cutting path of the cutter or to the cutter center point path.

Interactions
G64/G65 operate modally and exclude each other mutually.

G65
The control maintains a constant feedrate (FM) along the cutter center point path.
G65 is the powerup state (can be set via MP P3009).

Examples:

FM = Fprogr.
Fprogr. = programmed feedrate
FB FM Feff feedrate used by the control
=

FB FM = feedrate along the center point path

FB = feedrate along the cutting path

In the selected example the feedrate acting at the contour is lower than the
programmed feedrate.

2 85
CC 220/320 M
G functions
Flexible Automation Programming Instructions

G64
The control maintains a constant feedrate (FB) along the cutting path. This calcula
tion is only possible when G41/G42 is active on G2/03/05/12/13 arcs.

Since the speed may increase considerably on circles, this function should be
used for finishmilling only.

FM = Feff Feedrate increase


FB = Fprogr. FM

FB

The effective axis feed is higher than that programmed in the example.

Particularities
The effective feedrate on a compensating circle in conjunction with cutter path
compensation depends on its programming:

Example 1:
N10 X100 F100
N20 Y100 F200
The compensating circle is traversed with F100

Example 2:
N10 X100 F100
N20 F200
N30 Y100
The compensating circle is traversed with F200

Example 3:
N10 X100 F100
N20 Z50
N30 Y100 F200
The compensating circle is traversed with F100

2 86
CC 220/320 M
G functions
Flexible Automation Programming Instructions

CONTOUR TRANSITIONS G68 Arc


G69 Intersection

Definition
When radius compensation is active, the control has to provide a transition at out
side corners. This transition can be either the intersection of the equidistant line or
an automatically created arc.
G68/G60 operate modally.

Action G68
Arc
Possible only with G41/42 and angular variation alpha between 0 and 180.
The arc produces a continuous transition which is generally optimal under techni
cal aspects and protects the drives owing to the smooth transition.

automatically generated
programmed points
a

G69
Intersection
Possible only with G41/42 and angular variation between 0 and 90.
Action is identical to G68 in the case of angles greater than 90 to 180.

The control will calculate an intersection much faster than an arc.


Intersection calculation should be preferred for contours requiring extremely short
block cycle times.

Programming
G68/G69 without preparatory functions

Powerup state
Using machine parameters, G68 or G69 can be defined as the powerup state.

2 87
CC 220/320 M
G functions
Flexible Automation Programming Instructions

INCH PROGRAMMING G70

G70 is latching and cancels the G71 function. After G70, all position and feedrate
data has to be specified in inches. All active metric values and zero offsets will auto
matically be converted to inches.
3.4 is the input format.

METRIC PROGRAMMING G71

G71 is latching and cancels the G70 function. All position and feedrate data has to
be specified in metric values. All active inch values and zero offsets will automati
cally be converted to metric values.
4.3 is the input format.

Clear logic and Control reset do not produce the powerup state.

It is not permitted to program more than one of the following functions within one
block at a time:
G70/G71
G92
G98/G99
G174/G274
G33
G16
G6
G23
Punching (T) T word (D)
Claw enclosure (T), C axis switchover
G114 feed forward control

2 88
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Linear interpolation with in position programming G73

Definition
In interpolation mode, the machine axes travelling at the programmed path fee
drate lag behind the digital setpoint, i.e. a socalled following error, or lag, occurs.
This means that during machining of discontinuous contours, contour errors will
occur, which are also referred to as corner erosion.
The higher the feedrate, the greater the corner erosion.

Action
The purpose of the G73 function is the elimination of corner erosion, i.e. the pro
grammed workpiece contour element is traversed to with perfect dimensional ac
curacy. While contouring the contour element the feedrate necessarily drops to
zero.
After reaching the programmed position, the next block will be read in, and machin
ing is resumed at the programmed feedrate.

G73 operates modally.


G73 is cancelled by G0, G1, G2, G3, G5, G33 (G10, G11, G12, G13) and by Control
reset.
G73 acts like G1, i.e. in the same way as linear interpolation, but with INPOSITION
recognition.
G73 cancels G0, G1, G2, G3, G5 and G33 (G10, G11, G12, G13)
G73 must not be programmed together with G98 within one block!

Fundamental quantities
The G73 preparatory function has to be programmed before the position data to be
processed with linear interpolation and INPOSITION recognition.
The corresponding feedrate must be assigned to G73 via the F word in the same
way as to G1.

2 89
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Traversing to reference point G74

Definition
The axes programmed in one block traverse to the reference point(s) simulta
neously at rapid feedrate. In the case of G74 neither reference point cams nor mark
ers are taken into account. G74 is a mere positioning operation (i.e. it also applies
to axis with distancecoded encoders). The axis positions stored under P5101 are
traversed to.

Action
Acts only in the programmed block.

The axes programmed with G74 traverse simultaneously in rapid mode to the
reference point (normal positioning).

When traversing to the reference point with G74, the actual axis values are
neither set nor zeroed, i.e. the programmed offset values are not affected.

G74 is cancelled when the machine axes programmed with G74 in the block
have reached the reference point.

The rapid potentiometer is active when "TEST RAPID" is active.

Any compensations and zero offsets still active are not affected.

G74 does not set the "RAPID" interface signal.

Programming
To be programmed with the axes to be traversed in a separate block.

Auxiliary and supplementary functions may be programmed within the same


block.

The axis addresses have to be programmed with the numeric value of zero
(X0, Y0, Z0).

The zero value does not affect the reference point position, it simply serves as
a completion of the word.

Example
N100 G74 X0 Y0 Z0 (all axes traverse to the reference point simul
taneously)

2 90
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Traversing to reference point via intermediate position G174

Definition
This function allows approaching the reference point only via intermediate posi
tions which have to be programmed in the block containing G174.

Action of G174
If X0, Y0 etc. is programmed, the intermediate positions X0, Y0 etc. are traversed to
first, and then the reference point.
It is possible to traverse to the first reference point (G74) or a second reference
point.
2nd reference point = 1st reference point offset.
Otherwise the same conditions as for G74 apply.

Example
N150 G74 X0 Y0 Traversing without intermediate position
.
N500 G174 X0 Y0 Traversing with intermediate positions X0, Y0
.
N700 G174 X500 Y100 Traversing with intermediate positions X500,
Y100
The position data programmed under G174 refers absolutely to the reference
point.

Withdrawal from reference point via intermediate position G274

Definition
This function allows a programmed position to be traversed to from the reference
point via intermediate position. The intermediate position used is the position pro
grammed under G174. If this position is absent G174 was not programmed the
position programmed under G274 will be traversed to directly.
The G274 function can be triggered irrespective of whether the reference point was
traversed to with G74 or G174.

Action of G274
Acts only block by block.
Becomes inactive as soon as the position traversed to is reached.
The axes traverse in rapid mode (the "RAPID" interface signal is not set!).
Any compensations and zero offsets still active are not affected.
The rapid potentiometer is active when "TEST RAPID" is active.

Programming
To be programmed with the axes to be traversed in a separate block.
Auxiliary and supplementary functions may be programmed within the same
block.
The position data programmed under F274 refers to the program zero point.
.
N40 G274 X.... Y.... Z....
N41 G274 X.... Y.... Z....
The N41 block is ignored, since G274 was programmed twice consecutively.

2 91
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Explanatory sketch to G74, G174, G274

Y
ZP (200 / 600)

2
3
500 P1 (600 / 500)
3

MRP
4
300

MPY 1
P2 (900 /150)
5

MRP 600 900 X


MPX

MRP = 1st machine reference point (G74) = Machine parameter P1502

MRP = 2nd machine reference point (G174), if the distances MPX and MP
Y are defined via machine parameter 1503 (MRP= MRP Machine
parameters)

P1 = Starting point in the part program


P2 = Traverse point in the part program
ZP = Programmed intermediate position (G174)

1. option:
N100 G74 X0 Y0
Direct traversing from P1 to MRP.

2. option: (MP X = 0, MP Y = 0)
N100 G174 X200 Y600
Traversing to MRP via ZP (MRP = MRP, since MP Y = 0 and MP X = 0)

3. option: (MP X = 150, MP Y = 300)


N100 G174 X200 Y600
Traversing to MRP via ZP

4. option:
N101 G274 X900 Y150
Traversing to P2 via ZP from MRP, if G174 was programmed before.

5. option:
N101 G274 X900 Y150
Direct traversing to P2 without ZP from MRP, if G174 was not yet programmed.

2 92
CC 220/320 M
G functions
Flexible Automation Programming Instructions

MEASURING PROBE INPUT G75

Definition
This function makes only sense in conjunction with a CPL program, e.g. in the case
of measuring cycles.
The control drives the measuring axis in the direction of the position programmed
with G75 and checks the signal status of the rapid input "Measuring probe" located
on the servo board.

Action
As soon as the edge defined via machine parameters is reached (contact with mea
suring surface), the control reacts as follows:
the actual position is memorized
the axis stop is initiated with downslope function
the distance to go is cancelled
G75 is cancelled (acts block by block)

Programming
N100 G75 X400
101 WAIT

WAIT has to be programmed after G75.


G75 is to be programmed with one axis position. This value represents the maxi
mum search depth down to which the probe must have operated at the latest.
No auxiliary functions must be programmed in the G75 block.
G75 can be programmed together with other preparatory functions, if this makes
sense.

Evaluation
Continuation of the program, evaluation of the axis information, safety monitoring
functions, error message generation etc. have to be implemented within the CPL
program.

Example:
N100 G75 Y250 F500 Traversing to the contour to be measured
105 WAIT
110 IF SD(9)=0 THEN Scan whether the measuring probe has been actu
ated
120 YPOS=PPOS(2) Storing the position at the instant of switching of the
second axis (Y axis) in the "YPOS" variable
N130 (MSG, MEASURING
PROBE HAS BEEN
ACTUATED)
140 GOTO N180
150 ENDIF
N160 (MSG,MEASURING
PROBE HAS NOT
BEEN ACTUATED)
N170 M0 Program stop
N180 .....

2 93
CC 220/320 M
G functions
Flexible Automation Programming Instructions

TRAVERSE TO FIXED MACHINE AXIS POSITION G76

Definition
While machining a workpiece, it is frequently necessary to move to fixed machine
axis positions, e.g. for tool changes, tool break inspections, measuring cycles etc.
This also includes pallet changes which, as a rule, occur at the beginning or end of
a machining operation.

Action
G76 operates only blockwise and instructs the NC to delete or cancel the following
functions:
Length compensations (H0)
Paraxial compensations (G140)
Radius compensations (G40)
Tool table compensations (G146)
Zero offsets (G53)
Absolute input (G90)
Set actual value (G92)
Mirror image (G38)
G76 belongs to G code group 1 and can thus not be defined as powerup state.

Programming
G76 is programmed together with other position data
G76 can be written together with other position data (G93, G94, G95, G0, G1)
G76 can be written together with the F word
Operates in conjunction with:
G93, G94, G95
G0, G1
F word

The axes programmed with G76 traverse simultaneously at the programmed


speed.
After G76, the following following functions in the next block become active again, if
they were cancelled by G76:
Zero offsets
Paraxial compensation (G143...G844)
Incremental input (G91)
Set actual value (G92)
Tool table compensation (G145)
Mirror image (G38)
Length compensations (Hxx)

2 94
CC 220/320 M
G functions
Flexible Automation Programming Instructions

The correction values for the individual axes are only traversed after a displace
ment of the respective axis is programmed.

The programmed displacements in conjunction with G76 refer to an absolute di


mension within the machine coordinate system which is automatically defined after
traversing to the reference point.
Traversing to the fixed machine axis positions can be programmed for both the rap
id feed and the feedrate.

1st example:
.
N150 G94 G1 X200 Y400 F2000
N160 G0 G76 X0 Y0
N170 X200 Y400
N180 G1 X... Y... F...
.

2nd example:

.
N500 G0 X500 Y800
N510 G94 G1 G76 X100 Y200 F4000
N520 X300 Y200 F300
.

Display
The setpoint/actual value display shows the position traversed to with respect to
the reference point.

2 95
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Drilling axis switchover G78, G79

General
Drilling work on machine tools is not only performed using the Z axis, but also with
other machining axes.

Therefore the control provides several options to switch over the drilling axis and
the length compensation direction to any machining axes where they become ac
tive:
by programming in the part program
by selecting the drilling axis via multi interface (refer to connection conditions
part 2)
by setting the P6507 machine parameter
G78 has the highest priority. If no programmed switchover is active (G79), the drill
ing axis last selected via interface will be used. If no drilling axis was selected here
(or default 0), the machine parameter setting will apply.

After powerup of the CNC, the axis defined via P6507 will be active as drilling axis
(e.g. 3rd axis, Z axis).

Action
The G78 function including axis address (with digit "1" and sign) can be used to
define a freely selectable axis as drilling axis (in the part program or in MANUAL
INPUT mode).

The sign in the calling block automatically determines the positive or negative
length compensation direction.
(For length compensation refer to chapter "Tool compensation".)

Programming G79, the axis which was last preset via multi interface or assigned as
machine parameter becomes active as drilling axis again.
Switchover of the drilling axis is prohibited for synchronous rotary axes and auxilia
ry axes (asynchronous axes) by an internal control feature.

Example:
Drilling axis switchover to X axis with negative compensation direction:
G78 X1

2 96
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Programming
G78 Drilling axis switchover ON
G79 Drilling axis switchover OFF
G78 Operates modally
Must always be programmed together with the drilling axis in a separate
block, with digit 1 or digit (1).
Must not be programmed together with other axis addresses of synchro
nous axes, but may be programmed with auxiliary functions.
Must not be written with other preparatory functions in the same block.
Processes a programmed length compensation with correct sign inter
pretation in the selected axis.
Is cancelled by M30, Control reset and Clear logic.
G79 Operates modally.
The drilling axis last selected via the multi interface is active. If no drilling
axis was selected there (or the zero value was defaulted), the setting in
P6507 is active.
May be written together with other preparatory functions, traverse infor
mation and auxiliary functions in one block.

Programming example
N199
N200 X300 Y400 H10 G82 [1000,800,2] Drilling cycle with the drilling axis
preset on the multi interface or
via P6507.
The length compensation used
will be the value input under
H10.
N201 X400 Y200
N202 X... Y...
G80
.
.
.
N300 G78 X1 Switchover to Y axis as drilling
axis, positive compensation di
rection. The length compensa
tion used will be the value input
under H9.

N301 Y100 Z200 H9 G81 [500,400]


N302 Y200 Z300
G80

.
N400 G78 Y1 Switchover to X axis as drilling
axis, negative compensation di
rection. The length compensa
tion used will be the value input
under H11.

N401 X500 Z300 H11 G84 [400,300]


N402 X600 Z250

2 97
CC 220/320 M
G functions
Flexible Automation Programming Instructions

G80
.
.
N500 G79 G80 X0 Y0 Z0 H0 Drilling axis switchover OFF.
Drilling cycle using the drilling
axis specified on the multi inter
face or via P6507.

N501 M30

Display
Like all other G functions, G78, G79 are displayed under the "DIAGNOSTIC" group
operating mode in the "Preparatory functions" column.
The special tables display shows which axis is presently active as drilling axis and
which direction of length compensation is operative.

GOM Correction

SPECIAL
TABLES

PROGRAM
PARAMETER Display as follows

NO CP0 NC0 CORRECTION


PROGRAM ACT WAIT 22. 7 11:10
PROGRAM PARAMETER
G 17 X 0.000 Y 0.000

G 37 X 0.000 Y 0.000 Z 0.000

G 38 X 1.0000000 Y 1.0000000 Z 1.0000000


R 0.000
G 79 +Z

G140

SPECIAL TABLES
WORKING PROGRAM
AREA TABLE PARAMETER

Drilling axis switchover OFF (G79 active). The Z axis is the active drilling axis
with positive length compensation direction.

Error messages
If more than one machining axis address is programmed in the G78 block, or if a
digit unequal to "1" is programmed, an "ADDRESS NOT ALLOWED" runtime er

2 98
CC 220/320 M
G functions
Flexible Automation Programming Instructions

ror will be displayed.


The control stops the program sequence.

NOTE
A switchover of the drilling cycles to rotary axes and auxiliary axes is not possible,
the control will reject any such instruction.

DRILLING CYCLES G80 to G86


Definition
Drilling cycles considerably simplify part programming. They are easy to program
and can be used to control a sequence of machining processes. They are particu
larly useful to the part programmer for repeated processes.
Action
Drilling cycles (or other machining cycles such as milling cycles, point patterns
etc.) are written with the aid of "CPL", are subject to the CPL rules with regard to
operation and and programming, and are stored in the EPROM. (Library 4). They
can be executed directly from the EPROM.
The G81 to G86 drilling cycles are included in the basic version of the control, but
without screen graphics.
Additional machining cycles extending beyond this scope have to be programmed
by the user himself.
The reserved area G87 to G89 and the 3digit G codes G181 to G189 are reserved
for freely assignable G functions. Other 3digit G codes can also be used, unless
they are already occupied by the CNC.

The max. possible number of G codes for working and drilling cycles within the sys
tem is 32. The assignment of the G numbers to P numbers is performed via the ma
chine parameter group 4000.
Standard assignment:
G81: = P 999 999 081
G82: = P 999 999 082
G83: = P 999 999 083
G84: = P 999 999 084
G85: = P 999 999 085
G86: = P 999 999 086
For these drilling cycles, the sequence of movements is generally performed as fol
lows.

PE
PE Positioning plane XY
R2
2 5 R1 Reference plane 1
R2 Reference plane
R1
2
Z Drilling depth
3 5 Feedrate
Rapid traverse
Z
P 4 P Dwell time

1. Positioning in the XY plane in rapid traverse


2. Infeed to programmed reference plane R1 in rapid traverse

2 99
CC 220/320 M
G functions
Flexible Automation Programming Instructions

3. Infeed to programmed drilling depth Z at feedrate


4. Operation at drilling depth Z, possibly with dwell time
5. Retraction movement to programmed reference plane R1 or R2 at feedrate or
in rapid traverse; path 5 is always executed in rapid traverse.
All drilling cycles can be performed in positive (Z>R1) or negative (Z<R1) drilling
direction. The drilling cycles can be switched over to other axes via the G78 func
tion (refer to G78).
Summary of the G80 to G86 drilling cycles:
Preparato Machining cycle Drilling move Operation at Retraction move Example appli
ry ment in Z drilling depth ment cations
function in +Z
G80 No Cancel
machining cycle
G81 Yes Drilling 1 Feedrate (Dwell time) Rapid traverse Drilling, boring out

G82 Yes Drilling 2 Feedrate (Dwell time) Feedrate Spot facing,


centering
G83 Yes Deephole Stepbystep (Dwell time) Rapid traverse Deephole drilling
drilling feed
G84 Yes Tapping Machining feedrate Spindle reversal Feedrate Tapping with
(Dwell time) compensation chuck

G85 Yes Boring out 1 Feedrate Spindle stop Rapid traverse Boring out 1
(dwell time)

G86 Yes Boring out 2 Feedrate Spindle stop Feedrate Boring out 2
(dwell time)

Programming
Programming outside the brackets is to be carried out according to the rules of DIN
66025.
Programming inside the brackets is performed in accordance with the "CPL" rules.

N... G... X... Y... [Z, R1, K, k, P, R2]

The last position of the drilling axis prior to programming the drilling cycle has
to be the withdrawal plane.
The number of parameters depends on the called drilling cycle G81 G86.
In case of a drilling cycle change, G80 has to be programmed beforehand.
The G80 block must not contain any bracketed expression.
The drilling position must be contained in the cycle calling block or after it and
may also include the drilling axis.
Programming of the bracketed values is bound to the above sequence.
The values for Z and R1 have to be programmed in every case.

K, k must only be specified in the case of G83.

P and R2 can be programmed, but do not have to.

If one of the two bracketed expressions is not to be programmed, programming


has to be performed as follows:
a) P is not to be programmed.
G84 [Z, R1, , R2]G83 [Z, R1, K, k, , R2]
b) R2 is not to be programmed.
G84 [Z, R1, P] G83 [Z, R1, K, k, P]

2 100
CC 220/320 M
G functions
Flexible Automation Programming Instructions

c) P + R2 are not to be programmed.


G84 [Z, R1] G83 [Z, R1, K, k]
In case of a parameter value change the entire cycle has to be called.
Instead of numeric values it is also possible to program variable names in the
square brackets if they have been assigned before.

Meaning:
G: Call of the machining cycle

X,Y: Drilling position in the XY plane, determined by absolute or incremental


programming; the infeed movement is carried out in rapid traverse.
Z: Distance between reference plane and drilling depth, determined by ab
solute or incremental programming. The drilling movement is carried out
at the programmed feedrate. The retraction movement is carried out at
feedrate or in rapid traverse, depending on the machining cycle.
R1: Distance between positioning and reference plane, infeed is in rapid tra
verse.
R2/R1: Distance between drilling depth and reference plane 1/2. The retraction
movement is carried out in rapid traverse and/or at feedrate, depending
on the specification within the cycle.
K: Infeed depth with cycle G83 (deephole drilling)
k: Distance to machining plane (speed switchover point)
P: Dwell time (0.01 99.99 sec) in the drilling depth, possible with all cycles
F: Machining feedrate
L: Number of repeated passes

Special features R2 plane:


The programmed R2 value is superimposed upon the R1 value. If the R2
plane is to become inoperative, the bracketed expression has to be written
without R2 value, or R2=R1 value has to be programmed.

If a bracketed expression is not to be programmed within the digit string, the


value is simply to be omitted: [1000, 800, , 900].
R1>R2 or R1<R2 is both possible.
It has to be noted in this context that the differential distance R1 ! R2 or
R2 ! R1 is always traversed in rapid mode when changing from one to the
other and vice versa (tool not engaged).
R1 is always the plunge plane

Special features L plane:


Via G91 and L address (repetition) it is possible to execute cycles at equal intervals.
In conjunction with G90 and L address the cycle will be repeated L times at the
same location.

2 101
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Display
The current drilling cycle or G80 can be displayed under the "Diagnostic" group
operating mode in the "Preparatory functions" (Condition on) column.
Interface
The effect of the interface signals (feed allow, travel command, inposition etc.) is
fully maintained.
In the G84 tapping cycle the "G84" signal is output at bit 255 as long as the machin
ing cycle is active.
In the G86 drilling cycle the "G86" signal is output at bit 254 for the time of retrac
tion.
"Feed hold" acts generally. If required, it has to be interlocked via interface.

Powerup condition
G80 is latching and the powerup state.
G80 is set by Control reset and Clear logic.

NOTE
The G81 to G86 drilling cycles can also be programmed together with
G90/G91. In this case the parameters in the square brackets must also be
written incrementally.
In the case of a block repetition the L word must not be programmed in
the same block as the drilling cycle call..

Example:
N1 G84 [Parameter....] (correct)
N2 X1 Y1 L2
N1 G84 X1 Y1 L2 [Parameter..] (incorrect)

Via the G81 to G86 functions, the drilling cycles are called as subroutines. When
programming it has to be ensured that the parameters to be transferred are pro
grammed directly after the drilling cycle call if the same line contains more than one
program word.

Example:
N100 G55 G81 [Parameter1,Parameter2...] (correct)
N200 G81 G55 [Parameter1,Parameter2...] (incorrect)

Meaning of G90/G91
G90 (absolute) G91 (incremental)

R Reference plane
R
0 Z Drilling depth
R
R R Feedrate
Z Rapid traverse
Z R = R value
Z = Z value
Z Z

2 102
CC 220/320 M
G functions
Flexible Automation Programming Instructions

G81 DRILLING 1
G81 with R1 plane G81 with R2 plane

PE PE PE Positioning plane XY

R2
R Reference plane 1, 2
Z Drilling depth
R1
Feedrate
Rapid traverse
P Z P Z P Dwell time

Application
Centering and simple drilling, spot facing, boring out with and without dwell time.

After reaching the Z drilling depth, a dwell time may become effective, followed by a
retraction movement in rapid traverse.

Programming
N100 X... Y... G81 [Z, R1, P, R2]

Z, R1 have to be programmed
P, R2 may be programmed

G82 DRILLING 2
G82 with R1 plane G82 with R2 plane

PE PE PE Positioning plane XY

R2
R Reference plane 1,2
Z Drilling depth
R1 R1
P Dwell time
Feedrate
P Z P Z
Rapid traverse

Application
Centering and simple drilling, spot facing, boring out with and without dwell time.
After reaching the Z drilling depth, a dwell time may become effective, followed by a
retraction movement at feedrate.

Programming
N100 X... Y... G82 [Z, R1, P, R2]

Z, R1 have to be programmed
P, R2 may be programmed

2 103
CC 220/320 M
G functions
Flexible Automation Programming Instructions

G83 DEEP HOLE DRILLING

G83 with R1 plane G83 with R2 plane

PE PE
PE Positioning plane XY
R2 R Reference plane R1,R2
R1 R K Infeed depth
K K Z Drilling depth
k k
k Distance to speed switch
K K over point
k k
Feedrate
K K Rapid traverse
Z Z P Dwell time
P P

Application
Deep hole drilling with complete removal of the drilling chips

After reaching the programmed infeed depth K, a retraction movement to the R ref
erence point is performed each time in rapid traverse. The repeated infeed to the
programmed distance k (speed switchover point) is then carried out in rapid tra
verse, too. The k distance and the K infeed depth are then executed at feedrate.

Stepbystep infeed with the respective retraction back to the reference point is
performed until the programmed overall drilling depth Z is reached.

The K infeed depth is programmed as an incremental value without sign. (Also with
negative or positive drilling direction).

In this machining cycle the drilling chips are completely removed from the bore be
fore a new infeed takes place.

If the K infeed depth is programmed incorrectly so that the maximum drilling depth
Z is exceeded, the drilling cycle will be stopped by M0. The "DRILLING DEPTH
TOO LARGE" will be displayed.
If a new start of the drilling cycle is attempted, it will be aborted (M30).

Programming
N100 X... Y... G83 [Z, R1, K, k, P, R2]

Z, R1, K, k have to be programmed


P, R2 may be programmed

2 104
CC 220/320 M
G functions
Flexible Automation Programming Instructions

G84 TAPPING
G84 with R1 plane G84 with R2 plane

PE PE PE Positioning plane XY
G63
D R2 R Reference plane 1,2
G66
R1 D Z Drilling depth
P Dwell time
P P Z
Z D Reversal of rota
D D tion
Feedrate
Rapid traverse

Application
Tapping (right and lefthand) with compensating chuck with and without dwell
time; precondition: S analog output CNC.

Drill bit infeed is carried out with programmed clockwise (M3) or counterclockwise
(M4) spindle rotation.

After reaching the drilling depth, rotation is reversed, and a dwell time (if pro
grammed) elapses. Subsequently, a retraction movement at feedrate to the R
plane is carried out.

As soon as the R plane is reached, the spindle rotation reversal in cancelled.


Blockbyblock execution is suppressed. If single block has been programmed,
the drilling cycle will be stopped by M0. On the display the "SINGLE BLOCK NOT
PERMISSIBLE" error message.

After switching over to "automatic", the drilling cycle is executed. If single block
should still be programmed after the second start, the drilling cycle is cancelled
(M30).

For test purposes, singleblock suppression can be cancelled by setting the CNC
interface input 20.7 "SINGLE BLOCK G84 (TEST)".

Programming
N100 X... Y... G84 [Z, R1, P, R2]

Z, R1 have to be programmed
P, R2 may be programmed

2 105
CC 220/320 M
G functions
Flexible Automation Programming Instructions

G85 BORING OUT 1


G85 with R1 plane G85 with R2 plane

PE PE PE Positioning plane XY
M03
R2
M03
R Reference plane 1,2
R1
Z Drilling depth
Feedrate
P P Z Rapid traverse
Z
M05 M05 P Dwell time

Application
Boring out with and without dwell time.
When the Z drilling depth is reached, a dwell time may elapse, with simultaneous
spindle stop. This is followed by a rapid retraction movement.
Programming
N100 X... Y... G85 [Z, R1, P, R2]

Z, R1 have to be programmed
P, R2 may be programmed

G86 BORING OUT 2


G86 with R1 plane G86 with R2 plane

PE PE PE Positioning plane XY
R2 R Reference plane 1,2
M03
R1 M3
Z Drilling depth
Feedrate
P Z
P Z Rapid traverse
M05 M05 P Dwell time

Application
Boring out with and without dwell time.

When the Z drilling depth is reached, a dwell time may elapse, with simultaneous
spindle stop. This is followed by a retraction movement to the R plane at feedrate.

Programming
N100 X... Y... G86 [Z, R1, P, R2]

Z, R1 have to be programmed
P, R2 may be programmed

2 106
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Programming examples
Example 1:
G81 R1 and R2 plane with and without dwell time.
.
.
N90 G1 M3 S1050 F400
N91 X500 Y700 G81 [1000, 800]
N92 X600 Y800 ! following this block, the G81 drilling cycle is
executed again
.
.
N100 X800 Y700 G81 [1000, 800,,600]
N101 X1000 Y1200
. (retraction to R2 plane)
.
N110 X0 Y0 G81 [1000,800]
N111 X100 Y500
. (retraction to R1 plane)
.
N150 X400 Y200 G81 [1000, 800,1]
N151 X200 Y300
. (Dwell time 1 second)
.
N200 Y100 G81 [1000, 800]
N201 X950
. (Dwell time = 0 seconds)

The same examples can be programmed using G82, G84, G85 and G86.

2 107
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Example 2:
G82, G91, polar coordinates, repetition with L factor
.
N69 G91 G20 X50 Y20 M3 S1500 F400
N70 G1 X400 G82 [300, 200, 5]
N71 G11 X100 A25 L10
N72
.
.
N90 G90 X200 A50
N91 X300 A100
.
.

Example 3:
Plane R2 is to become effective immediately with G83
.
.
N70 G73 M3 S490 F700
N71 Y500 G83 [1000, 800,10,1,2, 700]
N72 X800
N73
.
.

Example 4:
Plane switchover: drilling axis = X axis with positive compensation
N10 G78 X1
N20 G1 M3 S1050 F400
N30 G81 [100, 800]
N40 Y500 Z700
N50 G79

Example 5:
Cycle calls without G80 programming
N10 G81 [....]
N20 X100 Y100 Cycle G81 to X100 Y100
N30 G82 [....] G81[..] acts for each axis in G82
N40 X50 Y50 Cycle G81 to X50 Y50
N50 G83 [....] G81[..] acts for each axis in G83
N60 X0 Y0 Cycle G81 to X0 Y0
N70 .......
G81 will only be overwritten by G80. It acts as long as an axis is repositioned after
each block; i.e. also within a different G function (e.g. G82). In contrast, G82 is over
written by G83, for instance.

2 108
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Example 6:
Calling the drilling cycle in the main program and the positions to be traversed to
within the subroutine

N10 G91 G84 X100 Y100


N20 P1000
N30 G91 G84 X200 Y200
N40 P1000
N50 G91 G84 X300 Y300
N60 P1000
N70 G80
P1000 Subroutine

N10 G91 X10 Y10


N20 X20 Y20
N30 X30 Y30
N40 M30

Example 7:
Variable name programming of drilling cycles

N5 X200 Y400 M3
N10 Z = 1000
N20 R1 = 800
CPL assignments
N30 P=2
N40 R2 = 900
N50 X... Y... G84 [Z, R1, P, R2]

If corresponding assignments have been made prior to the drilling cycle call, it is
possible to program within the brackets using variable names according to the
same rules without numeric values.

Example 8:
Cycle call with drilling axis positioning
N100 X100 Y200 Z0 G81 [Z, R1, P, R2]
N101 X... Y...
N102 X... Y...
.
.
In block 100, the X, Y and Z axes are positioned first, followed by the execution of
the G81 cycle with the bracketed values.

2 109
CC 220/320 M
G functions
Flexible Automation Programming Instructions

DIMENSIONING SYSTEM G90 ABSOLUTE


G91 INCREMENTAL

Definition
Part positions can be specified in terms of:

G90 Absolute dimension, i.e. the dimensions refer to the acting zero point, or

G91 Incremental dimension, i.e. the dimensions refer to the previously pro
grammed positions

G90 Absolute input


Action
G90 is the powerup state, is latching and cancels the G91 function. All end points
are measured from a zero point.

250

200

150

50 100 150 200 250 300

G91 Incremental input


G91 is latching and cancels the G90 function. Each end point is measured from the
respective last end point.

50

50

150

50 100 150 200 250 300

2 110
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Set actual value G92

Definitions
Programming G92 without axis information:
Setting to machine coordinates irrespective of compensations and zero offsets.

Programming G92 with axis information:


Setting to programmed axis information. Must not be programmed in conjunc
tion with active zero offsets (G53 has to be programmed prior to G92).

Action
The new values are displayed, no axis movement takes place.

Reference point shift

Reset G92
SetG92 X... Y...
G92 operates block by block. To set the actual value, it is written together with the
axis information in one block, but does not produce any traverse movement.
No other functions may be contained in the block. If G92 is programmed without
axis information, the actual axis values are set to the current positions in the ma
chine coordinate system, i.e. any reference point shifts are cancelled.

Programming
G92 X... Y.... Z.... Assign axis values

NOTE
If G92 follows G40 and the compensation has not yet been cancelled, an offset will
occur, since G92 refers to the compensated value rather than to the programmed
one.
No G5 is permitted after G92.

Example:

+Y P0
G90 F200
80 G1 X140 Y90
P1
G92 X0
70 P10
G1 Y30
G2 X10 Y20 I10
60
G1 X55
50 X65 Y30
X85
40
X95 Y20
30 P9 P2
X100
P6 P5 G2 X110 Y30 J10
20 G1 Y70
P8 P7 P4 P3 X5
10
130 120 110 100 90 80 70 60 50 40 30 20 10 W 10 20 X0 Y80
G92
+X M30
M 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160

2 111
CC 220/320 M
G functions
Flexible Automation Programming Instructions

SPINDLE SPEED LIMITATION G192


G292

Precondition
Spindle control via analog CNC output.

Action
In the course of a machining phase it is possible to program a minimum and/or
maximum rpm value as speed limitation for the spindle. These limit values apply to
all gear ranges, but act only if they lie within the gear range limits.
G192 S1500 (Minimum value)
G292 S2500 (Maximum value)
G192 S0 (Cancel minimum value)
G292 S1 (Cancel maximum value)
G92 (No effect on spindle)

Programming examples
N100 X_ _ Y_ _ G192 S1500 M10
N101 X_ _ Y_ _ G292 S2500 T40
.
N500 X_ _ Y_ _ G292 S1

NOTE
The S values programmed do not influence the speed in conjunction with
M3/M4 programming. They are separately stored and remain active until
M2/M30, Control reset, Clear logic or one of the cancelling functions be
comes active.

It is not possible to exceed or fall below the programmed limit values with the
spindle potentiometer.

G192/G292 can be overwritten by programming new limit values, or can be


cancelled by CLEAR LOGIC, CONTROL RESET and M30.

2 112
CC 220/320 M
G functions
Flexible Automation Programming Instructions

LASER POWER CONTROL G892, G992

Application
If, instead of a spindle, a laser power control is coupled to an analog output (also
refer to P6301 machine parameter), these G functions can be used to define volt
age thresholds for the output.

Function
A voltage depending on the actual value and the setpoint of the path feed
> >
(Factual/Fset) within the limits 0 = U = 10 V is available at the analog output.

An upper voltage value, defined via G992, is output at constant speed. During con
stant speed this value cannot be influenced by the feedrate potentiometer.

If the speed is not constant (acceleration or deceleration phase), the ratio between
the actual feedrate and the feedrate setpoint is output. Both variables are then in
fluenced by the feedrate potentiometer. If the potentiometer is adjusted at this
point, the Factual/Fset ratio and thus the output voltage change abruptly.

In order to avoid that the output voltage exceeds or drops below specific values if
the path speed is not constant (e.g. dropping below the specified values during
block transitions; in extreme cases the laser would even be switched off), it is possi
ble to program an upper and a lower threshold value with G992 and G892, respec
tively.

If "0" is the potentiometer setpoint, the output voltage decreases down to zero in
proportion to the path speed. In this context it is of no relevance whether the poten
tiometer change was performed during an acceleration process or at a constant
path speed.

2 113
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Programming
G892 Programming the lower threshold value
G992 Programming the upper threshold value

The threshold values are programmed in terms of % of the max. output voltage (10
V) with the "S" address.

Example: Upper threshold value


.
N100 G992 S80
.
.
Defining the upper threshold value as 80 % of the max. output voltage. The maxi
mum voltage at the analog output is then 8V.

Example: Lower threshold value


.
N110 G892 S20
.
.
Defining the lower threshold value as 20% of the max. output voltage. The minimum
voltage at the analog output is then 2V.

NOTES
A voltage of 0V will also be output at the analog output in the following cases:

Error message from P2

Intervention function "CONTROL RESET"

In jog mode

In test mode both with "AXIS INHIBIT" as well as "ALL AXES INHIBIT"

In case the "FEED ALLOW" or "DRIVE ON" interface signal for one of the axes
involved in the path interpolation is removed

In case the "(NOT)FEED HOLD" interface signal is removed.

Analog outputs occupied for synchronous or asynchronous axes cannot be used


for laser power control.

2 114
CC 220/320 M
G functions
Flexible Automation Programming Instructions

TIME PROGRAMMING G93

Definition
When G93 is active, it is possible to set the machining time for a programmed linear
(G1) or circular (G2, G3, G5, G73) path. This set time will also be active when pro
gramming in polar coordinates.
The machining time is defined via the F word.

Action
G93 is latching.

The F word programmed with G93 operates modally.

G93 is cancelled by G94 or G95.

Format of the F word with G93: F 6.1 in seconds.

Programming
G93 can be programmed on its own or in conjunction with G functions from other
groups. Likewise, axis and switching information can be programmed in the G93
block.
The machining time in terms of seconds is programmed via the F word.
The F word does not need to be reprogrammed with every new path to be tra
versed. But for technical reasons it is sensible.
G93 has to be programmed once before the path to be traversed.

N100 G93 G1 X100 Y200 A50 B120 F60

A linear interpolation lasting 60 seconds is performed.

2 115
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Feedrate [mm/min] G94

Definition
The G94 preparatory function and the F word set the mm/min feedrate for travers
ing the axis.
The following axis information is interpolated at the mm/min feedrate correspond
ing to the F word.

Example: N10 G1 G94 X200 Z300 F200

Action
operates modally

is cancelled by G95 or G93

cancels G95 and G93

can also be programmed in conjunction with other preparatory functions


within one and the same block.

The meaning of the F word is "feedrate value in mm/min" (can be set via machine
parameters).

F1 = Feedrate of 1 mm/min

The F word has a maximum of 7 digits (6.1) and can be programmed with or without
decimal point. The F word is limited by the maximum feedrate value of the axis pa
rameters involved. The F word in terms of mm/min operates modally; it is only over
written by a new F word (within G94).
Power off, Control reset and G95 F do not cancel the F word of G94!

Programming
N10 G1 G94 X200 Z300 F200
N11 G4 F400 (Dwell time 400 seconds)
N12 X300 Z400 (the feedrate of 200 mm/min is active again)

2 116
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Feedrate [mm/rev] G95

Definition
The G95 preparatory function and the F word set the mm/rev feedrate for traversing
the axis.
The main spindle must be operated prior to the 1st position data to be processed
by G95.
With the main spindle running, the subsequent axis information is interpolated at a
mm/rev feedrate corresponding to the F word.

N9 S200 M4
Example: N10 G95 X200 Z300 F2

Action
operates modally

is cancelled by G94 or G93

cancels G94 and G93

can also be programmed in conjunction with other preparatory functions


within one and the same block.

The meaning of the F word is "feedrate value in mm/rev".

Format/dimension
The F word for G95 has the format of 4.3 digits.

The F word can be programmed with or without decimal point; leading zeroes may
be omitted.
The F word for mm/rev operates modally; it is only overwritten by a new G95 F
word. Power off, Control reset and G94 F.. do not delete the F word of G95!

Dwell time
If a G4 or G104 block (without position data) is programmed with an F word when
G94 or G95 is active, the corresponding dwell time in terms of seconds or spindle
revolutions will become active.

Effect:
The programmed F word acts block by block for G4 and G104 and has to be repro
grammed in each dwell block.
Subsequently, the old programmed feedrate is activated again.

Programming
N10 G1 G95 X200 Z400 F10.5
N20 G104 F5 (Dwell time 5 revolutions)
N30 X0 Z0 (the feedrate of 10.5 mm/rev is active again)

2 117
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Fast retract ON G98


Fast retract OFF G99

Definition
In the course of the supervision of critical machining sequences on the machine, a
response of the supervising functions can require a specific and rapid reaction in
order to prevent major damage to the workpiece and to the machine.

Action
Monitoring of the machine processes is always performed externally, with the CNC
taking the required response action.

Fast input on the servo board:


A block, identified by G98 in the part program, is processed immediately if high lev
el (+24V) is applied to the highspeed input on the servo board. When this occurs,
execution of the currently active block is aborted.
As a response to this the CNC can process and execute a linear DIN block made up
of position data. Corresponding preparatory functions (G0, G1) as well as F fee
drate may also be programmed.
The traversing information is always executed incrementally and thus has to be
programmed as incremental values.

Programming
G98 identifies the block which can be executed.
This block remains active until G99 is programmed.
G98 operates modally and can be cancelled by G99 only.
G99 is the powerup state.

Example:
.
N120 X0 Y0
N125 G98 G0 X500 Y200 Z400
N130 G1....
.
.
N200 G99 G2 X200 Y400 I0 J50 F500 M10
.

G99 cancels the information stored under G98.


This means, the G98 block has to contain again and again all axis movements to be
performed.
The N125 block is executed in the program area N130 to N199 if the corresponding
interface signal responds.

Direct calls of subroutines (P, Q) are not possible in the G98 block.
No G73 must be programmed in a block containing G98.

NOTE
It has to be ensured that the incremental retraction movement does not exceed the
software limit switch ranges.

2 118
CC 220/320 M
G functions
Flexible Automation Programming Instructions

TANGENTIAL TOOL GUIDANCE (Option) G130, 131, 132


Application
In some applications it is necessary for the tool (e.g. knife) to be coguided tangentially to the programmed tool
(e.g. with fabric cutting).

Function
The option automatically controls an axis rotating about Z in such a way that it is coguided tangentially to a con
tour defined in the X/Y plane after programming the G131 or G132 functions.
The rotary axis is in 0 position when a train of contour elements is executed in parallel to the X axis.
Rotation of the rotary axis is always performed between two programmed path sections. The option acts differ
ently for linear and circular blocks.

Linear block
The rotary axis rotates about a specific angle between 2 linear blocks. Subsequently, the next linear block is ex
ecuted without movement of the rotary axis.

2 a

1
3

Circular block
If a circular block has been programmed, the rotary axis will first rotate tangentially
in relation to the circular path before the circular block is executed. During the ex
ecution of the circular block the rotary axis automatically rotates, too. The rotation
speed of the rotary axis is derived from the path speed of the two linear axes. Since
the maximum speed of the rotary axis must not be exceeded, the path speed of the
linear axes may be restricted.

1
3

2 a

With an appropriately large angle change between two path sections, the control
will emit two signals from the highspeed outputs of the SERVO servo loop board
(X31), which can be used to raise the rotary axis prior to the rotation and to lower it
afterwards. Raising and lowering of the rotary axis or the tool have to be implem
ented in the PLC. The rotation angle where the raising of the rotary axis is to begin
as well as the duration of the "raise" and "lower" signals can be determined via the
P6402, P6403 and P6404 machine parameters.

Programming
G130, G131 and G132 have to be programmed on their own in one block.

G130
G130 is the powerup state and means that the tangential tool guidance is switched off. The tangential tool guid
ance is always switched off by powerup of the control, CONTROL RESET, External control reset, CLEAR LOG
IC and LOAD BACKUP.
If G130 is active, the rotary axis can be programmed like a normal rotary axis (ROTARY or ENDLESS axis type).

2 119
CC 220/320 M
G functions
Flexible Automation Programming Instructions

G131
With active G131, the rotary axis is turned to the new position in the direction in
>
which the angle of rotation is = 180 before the next path section. The maximum
traversing distance of the rotary axis is 180.

G131 has to be programmed if the tool is asymmetric


(e.g. the cutter has only one cutting edge).

Cutting edge
Cutter

2
a a 2

1 3 1
3

Programming the rotary axis is not permitted with active G131.

G132
With active G132, the rotary axis is turned to the new position in the direction in
>
which the angle of rotation is =90 before the next path section. The maximum tra
versing distance of the rotary axis is 90.

G132 may be programmed if the tool is symmetric


(e.g. the cutter has two cutting edges).

Cutting edge

Cutter

a 2 2 a
1 1
3
3

Programming the rotary axis is not permitted with active G132.

Example 1
N100 G1 F1000
N110 X0 Y0 C0 The linear axes and the rotary axis move to zero.
N120 G131 Activation of tangential tool guidance.
N130 X100 Y100 First, the rotary axis moves to 45. Upon completion of this
M30 movement, N130 is executed.

Example 2
N100 G1 F1000
N110 X0 Y0 C0 Linear axes and rotary axis move to zero.
N120 G131 Activation of tangential tool guidance.
N130 G2 X100 Y0 R50 First, the rotary axis moves to +90. Upon completion of this
M30 movement, the N130 circular block is executed. During this ex
ecution the rotary axis moves from +90 to 90.

2 120
CC 220/320 M
G functions
Flexible Automation Programming Instructions

NOTES
The option cannot be used in conjunction with other functions which use the
highspeed outputs of the SERVO board.

With G131, the programmed position of the cutter tip has to correspond to
the position of the rotary axis.

The change angle a is checked only at blockchange positions (refer to


MP6402). During the circular interpolation the change angle difference be
tween two samples is not monitored.

The option cannot be used in conjunction with the cutter radius compensa
tion option.

Circular blocks cannot be traversed with path slope.

With active G131/G132, radii of less than 0.5 mm are not permitted in the case
of circular interpolation. If such radii are required all the same, the tangential
tool guidance must first be switched off, the circular block and the rotation of
the rotary axis have to be programmed in a separate block, and then the tan
gential tool guidance has to be switched on again.

Block search
In the case of a block search in which G131/G132 is active, the end points of this
block are traversed to without prior rotation of the tool.
Before traversing to the end points of the next block, correct rotation of the tool
takes place.

2 121
CC 220/320 M
G functions
Flexible Automation Programming Instructions

EXTERNAL TOOL COMPENSATION ON G145, G245 ... G845


EXTERNAL TOOL COMPENSATION OFF G146

Function
Using the G functions 145, 245...845 it is possible to activate one out of 8 compen
sation pairs for radius and length compensation.
All values are stored in the CS memory and are predefined by the PLC (application
for instance for multiple compensations with combination tools). During process
ing, the stored values are first divided by the standardization factors defined by the
P6508 machine parameter. The compensation values standardized in this way al
ways refer to the mm unit. In the case of a switchover to inch, the standardized
radius and length compensation values will be divided by 25.4
The overall radius compensation value is made up of the radius compensation val
ue from the tool compensation table (K table) and a maximum of one out of these 8
standardized radius compensation values.
The same applies analogously to the overall length compensation value (tool table
compensation adds to the table tool compensations).

Programming
The calculation of the overall compensation always includes the currently active,
external tool compensation values. If the PLC changes the currently active com
pensation values during execution of a part program, this change becomes only
active for the block being prepared as the next block.
It is thus possible under certain circumstances that up to 12 further blocks are
pending execution without the change.
If the compensation is to be effective directly after the change also for the next NC
block pending execution, the blocks which have already been prepared have to
be prepared again (via "DELETE ACTUAL DATA"). Refer to example 2.
In addition, there is the possibility to use the "WAIT" command to suspend block
preparation directly after the block which caused the PLC to transfer the new com
pensation values until all blocks programmed before "WAIT" have been executed.
Subsequently, the new compensation values are already active in the program
block following "WAIT" (refer to example 3).
G145, G245...G845, G146

operate modally

overwrite each other mutually

can be programmed within one block together with preparatory functions,


axis information and auxiliary functions

do not produce any traversing movement, if programmed alone in a block.

2 122
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Example 1:
.
G0 X0 Y0 Z0
H0 Table length compensation off
G146 External tool compensation off
G1
H1 Table length compensation 1 on
X10 Y10 Z10 Traversing movement with table length compensation 1
G145 External tool compensation 145 on
X20 Y20 Z20 Traverse with table length compensation 1 plus
tool compensation 145
G345 External tool compensation 145 off and 345 on
X30 Y30 Z30 Traverse with table length compensation 1 plus
tool compensation 345
H0 Table length compensation off
X40 Y40 Z40 Traverse with external tool compensation 345
G146 External tool compensation off
X0 Y0 Z0 Traverse without compensation
.

Example 2:
.
G145 External tool compensation 145 is activated
.
M.. The M function causes the PLC to execute the following cycle:
1. Transfer new compensation values.
2. Send signal for "Feed hold" to CNC.
3. Send signal for "DELETE ACTUAL DATA" to the CNC.
4. Send acknowledgement for endofcycle to CNC (the CNC
interprets this acknowledgement as the end of execution of the
block or "Subroutine" M...).
"FEED HOLD" followed by "DELETE ACTUAL DATA" involves that blocks which fol
low the "M..." block in the part program and have already been prepared will be
prepared again with the new compensation values.

Example 3:
.
G145 External tool compensation 145 is activated
.
M... The M function causes the PLC to execute the following cycle:
1. Transfer new compensation values.
2. Send acknowledgement for endofcycle to CNC (the CNC
interprets this acknowledgement as the end of execution of the
block or "Subroutine" M...).
10 WAIT Block preparation is stopped until M... has been executed.

2 123
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Activation/deactivation
Each one of the total of 8 compensation pairs can be activated with G145 to G845.
G146 switches the external tool compensation off.
The powerup state can be defined via the P3011 machine parameter.
The external tool compensation values stored in the CS memory are overwritten
with the value of "0" or initialized only by "LOAD BACKUP".

Reset or Clear logic does not change the stored tool compensation values.

Display of the values


In the "Correction" mode, the currently active standardized external tool compen
sation values are displayed. If G146 is active, the value of "0" is displayed under X
and Z.
In the "Correction" mode, "Special tables" softkey, "EXTERNAL TOOL COMPEN
SATION" softkey, it is furthermore possible to display all 8 value pairs. The currently
active G function (145 to G845) is displayed in inverse video. The maximum num
ber of digits of the display format for the individual compensation values is 8.

The standardized external tool compensation values are accordingly included in


the calculation when switching over from G71 to G70 (inch) and displayed in inch.
In this case, the number of the digits to the left of the decimal point is decreased by
1 on the display, while the number of digits to the right the decimal point is in
creased by 1.

NOTES
G(1)45 to G(8)45 is only possible in conjunction with PC 600 word coupling.
G(1)45 to G(8)45 overwrite each other mutually.

2 124
CC 220/320 M
G functions
Flexible Automation Programming Instructions

ASYNCHRONOUS RECIPROCATING AXIS (Option) G993, G994

Application
The oscillation or reciprocation of an axis and the infeed of another axis are the pre
conditions for surface grinding.

Function
The option permits an asynchronous axis to reciprocate between two preset end
points (I, J) at a specific speed (F).
The axis to be used as reciprocating axis is defined in the P6511 machine parame
ter.
As long as the machine position is located within a programmed range (2 * K)
around the left or right end point, the "REVERS. RANGE REACHED" signal at the
CNC interface (O16.7) is HIGH. Within the PLC, this IF signal can be used for link
age for the infeed of a synchronous axis.

K K

I J
Direction

Reversal range Reversal range


2*K 2*K

Programming
G994:
G994 is the powerup state and means that the reciprocating movement is
switched off. If reciprocating movement was active before, the axis will move to the
next reversal point and remains there.
G994 is active after Control reset, Clear logic or "Load Backup".
With active G994 the asynchronous reciprocating axis can be programmed like a
normal asynchronous axis.
G994 is programmed alone in one block.

G993:
G993 activates the reciprocating movement. The function may only be pro
grammed when the axis is stationary.
M30 or operating mode change do not deactivate G993.
G993 must always be programmed together with the 4 addresses I, J, K and F:

G993
I... J... K... F...
I = 1st reversal point
J = 2nd reversal point
K = Reversal range
F = Speed of the reciprocating axis

All addresses used can be parameterized. The feedrate potentiometer is taken into
consideration in relation to the reciprocating speed.
G993 must not be programmed together with other G functions in the same block.

2 125
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Example
N100 G993 I200.0 J300.0 K10.0 F2000.0

The axis reciprocates at 2000 mm/min between the first reversal point at 200.0mm
and the second reversal point at 300.0 mm.
When the axis is located within 10.0 mm from the first and second reversal point,
the control issues a HIGH signal at the NC interface (O16.7).

NOTES
With active G993, the axis must not be traversed in jog mode.

G95 does not act on the reciprocating axis.

The reciprocating axis can only be programmed in powerup state.

2 126
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Exact tapping (option) G32

Function, action
This function enables exact tapping. This function performs an internal synchro
nization between the linear interpolation of the tapping axis and the spindle rota
tion. This means that a compensation chuck taking up the revolution difference be
tween the tapping axis and the spindle is not required.

Programming
Programming is done via the blockwise operative G32 G function.
The resulting feedrate of the respective tapping axis/axes, the spindle speed and
the sense of the spindle rotation have to be programmed. The thread pitch results
from the relation between path feed/rpm. The permissible pitch values extend be
tween 0.001 mm/rev. and 1000 mm/rev. During tapping, the interface signal 16.5 is
output. During tapping, only the spindle potentiometer is active.

Example: Programming exact tapping


N10 G0 X20 Y15 Z10 F1000 S500 Position the axes
N20 M19 S0 Position the spindle
N30 G32 Z20 F1000 M3 S1000 Tapping axis Z, bore in
N40 G32 Z5 F1000 M4 S1000 Tapping axis Z, retraction
.
.

Please note !

With G32, the feedrate (F word) and the number of revolutions (S word) of the re
spective tapping axis must always be programmed. F/S = thread pitch; S =
spindle speed during tapping. F, M and S only act within the G32 block.

Preconditions
The option can only be activated in conjunction with the 6i servo board.

The spindle and all tapping axes must be applied on a servo board.

Prior to the start of tapping, the system internally waits for "INPOS" of all axes
involved. If an axis drifts out of its inpos range, tapping is not started. The ac
tive inpos ranges are entered in MP 1508 for the tapping axis, and in MP 7012
for the spindle.
Therefore the closedloop spindleposition control must be closed prior to
the execution of tapping (programming of M5 or M19).

2 127
CC 220/320 M
G functions
Flexible Automation Programming Instructions

A spindle with feedback (MP 7018) and closedloop position control (MP
7002) must be applied. These conditions are verified when the machine pa
rameters are taken over if the application bit is set.

For the spindle, the gearrange dependent KV values and the command ac
celeration have to be defined in the machine parameter group 7200.

For each tapping axis, the velocity and acceleration coefficients (feed for
ward control) have to be adjusted in such a way that the lag is minimized.

Please note !
G32 must not programmed with active cutter radius compensation. Otherwise the
error message "G address with G41/42 not permitted" will occur.

Setting the values of the


feed forward control
The factors for setting the velocity and acceleration coefficients can be determined
using the integrated D28 diagnostic program for each programmed tapping axis in
such a way that the lag is minimized.
Similar to the description under "AXIS OSCILLOSCOPE", you can start recording,
store and display actual positions and lag values.
On the basis of the visual control of the lag values you enter the respective value
factor for velocity and acceleration. You take over the determined optimal factors
for the feed forward control coefficients for velocity and acceleration. This leads to
the automatic entry into the machine parameter program (P 7203/P 7204).

Please note !

The values are active with each G32, irrespective of G114/G115.


In addition, you have to enter the spindle and gearrange dependent KV values as
well as the command accelerations in the machine parameter program
(P7201/P7202).

Set values
Feed forward velocity coefficient MP 1050
Feed forward acceleration coefficient MP 320

Technology parameters
F = 800 S = 400 for M16 pitch = 2
F = 900 S = 640 for M10 pitch = 1.5
F = 1260 S = 1800 for M4 pitch = 0.7

2 128
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Spline interpolation (option) G 101, G 102

Function, action
With spline interpolation, programmed axis positions are calculated as check
points, and the resulting path is represented by piecewise defined 2nddegree
polynomial arcs (parabolic curves). The combination of the checkpoints with
spline function makes it possible to represent largely arbitrary patterns which de
pend only on these points.

Example: Programmed contour (schematic diagram)

Spline interpolation
Smooth curve shape with only
few support points.
K1

K3

Curve train with several support


K0 points, made up of straight
K2 lines.

K0, K1, K2, K3 = programmed checkpoints

The spline interpolation is activated, or influenced, by the modally acting G


functions G101 and G102, and operates only for two synchronous axes. Si
multaneous programming of a third axis is not permitted.

Programming

Activate
You program the spline interpolation with the modally acting G101 G func
tion.

Deactivate
By programming G102 with active spline interpolation, the subsequent
checkpoint is approached as end point of the related parabolic curve. If the
interpolation type is not deactivated, it behaves like after programming G101.

Example: Spline interpolation (principle)

2 129
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Programmed spline function


3. 4.
1. N10 G1 X0 Y0 F1000 S500
S2 2. N20 G101 X100
3. N30 Y100
S1 4. N40 X200
5. N50 G102 Y0
S0 M30
Y
S3
1. 2. 5.
Contour after programming the
spline function
X

In the example, the programmed checkpoints (1. to 5.) are linked piecewise to each
other by parabolic curves (2nddegree polynomial arcs).
The starting and end points S0 to S3 coincide at the beginning and, after program
ming G102, at the checkpoints. The remaining respective end points are deter
mined by the center point of the distance between two successive checkpoints.
In the end points, the direction or tangent, respectively, of the overall curve is identi
cal to the connecting line between the successive checkpoints.
By an appropriate selection of the checkpoints it is possible to represent particular
properties such as straightline sections or corners as parts of the curve.
The position reached or programmed prior to activation is the first checkpoint used
for the internal calculation.
A traverse movement of the axes is only performed after at least three checkpoints
are present for internal calculation. After, or including, the block containing the acti
vating G function, at least two blocks have to programmed with synchronous axes
before the first axis movement is performed in this interpolation.
At the beginning of the interpolation, at least one block is executed without axis
movement, despite the fact that a synchronous axis is programmed in it. (One
checkpoint is still missing!). Subsequently, a traverse movement will take place
with every block containing programmed synchronous axes. The shape is deter
mined by the last three programmed positions.
The interpolating axes are each determined by the axis addresses programmed in
the two last relevant blocks.

Cancel spline interpolation


The spline interpolation can be cancelled by:
Programming another G function out of the group of interpolation functions.

Control reset.

Programming M2 or M30.

Program cancellation.

2 130
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Restrictions
With active spline interpolation the following functions are only possible with cer
tain restrictions:
G70, G71 Inch/metric switchover is not permitted with
active spline interpolation.
G93, G94, G95 Depending on the maximum curvature of the
current spline block, an internal reduction
factor is included in the max. feedrate.

No supervision is performed:
G130, G131, G132 Tangential tool guidance

The following functions are not possible with active spline interpolation and/or will
cause an error message:
G4, G104 Dwelltime programming
G8, G108, G109, G110 Path slope
G14 KV programming
G16 KV measurement
G22 P, Q subroutine call
G28, G128 Corner deceleration
G41, G42 Cutter path compensation
G46, G47, G48 Tool orientation
G143, G144, .... G844 Paraxial compensation
G64 Feed compensation
G68 Contour transitions
G74, G174, G274 Traverse to reference point
G75 Measuring probe input
G76 Approach fixed machine axis position
G81, G82, .... G86 Working cycles
G.... Userdefined G functions
G92 Set actual value
G115 Feed forward velocity control
G145 Tool table compensation
G890, G892, G894, G992 Laser power control

2 131
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Feed forward control (option) G114,


G115
Application, action
The feed forward control acts only on synchronous axis movements with
linear interpolation (G1)
circular interpolation (G2, G3, G5)
helix interpolation
thread cutting (G33)
For inhibited axes as well as in rapid traverse (G0), the feed forward control is
not active.
Contour errors are mainly caused by systeminherent lag. In the transient state the
current lag depends on the rate of feed and, in the acceleration phase, furthermore
on the acceleration. Using a suitable compensation of the preset interpolator val
ues, determined on the basis of the command speed and the command accelera
tion, it is possible to reduce, or minimize, the lag. This increases contour truth.
For each synchronous axis, the feed forward control value results from the com
mand feed and the command acceleration, each weighted according to the adjust
able coefficient factor. The determined coefficient factors can be globally stored in
MPP 1016 and MPP 1017.
The modal G code G114 permits the takeover of this presetting or an individual
programming of the coefficient factors separately for velocity and acceleration.

Programming

G114
For all synchronous axes, the speed coefficient factors in MPP 1016 and the ac
celeration coefficient factors in MPP 1017 are activated.
In addition, instead of the 1001, 1002 and 1007 parameters (nominal KV, slope ac
celeration and step change), the 1020 to 1022 parameters are used (refer to Ma
chine parameter manual).
If G114 is programmed with active G6 or G14, the KV or slope values will not yet be
changed at this time! The values (P1020, P1021) for KV and slope stored in the ma
chine parameters become only active after G7 or G15, respectively. See also G6
and G14!

G114 X... Y...


You change the speed coefficient factors of the programmed synchronous axes
(X, Y). The max. programmable coefficient is entered in MPP 1014.

G114 X... Y...


The negative sign changes the acceleration coefficients of the programmed syn
chronous axes (X, Y). The max. programmable coefficient is entered in MPP 1015.

G114 X0 Y0
The velocity and acceleration coefficients for the programmed axes (X, Y) are de
leted.

G115
The feed forward control is deleted for all axes. The function is deactivated.

2 132
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Example: Programming the feed forward control coefficients


N10 G114 The feed forward control is activated with the
coefficients in MPP1016/1017
N20 F1000 S500
N30 G1 X1800 Y800
.
N120 X600 Y1200
N130 G114 X600 Y600 Change feed forward acceleration coefficient
N140 X1700 Y700
N150 G114 Reactivate coefficients in MPP 1016/1017
N160 X1500 Y1000
N170 G2 I50
N180 G115 Deactivate feed forward control
.
M30

Determining the coefficient factors


You determine suitable set values for MP 1016 and MP 1017 by way of linear tra
verse of the axes and visual control of command value and lag. This is best done
using the "D22 axis oscilloscope" diagnostic program.
At first, define the factor for the velocity coefficient. In the example the block N30 for
the acceleration factor is suppressed. To do so, you record the lag of the axis to be
set using the axis oscilloscope. By entering appropriate coefficient factors and by
controlling by means of the axis oscilloscope you set an optimal lag behaviour.
Analogously to this procedure, you optimize the acceleration coefficient. Block
N30 is on. The lag in the acceleration phase is minimized.
The determined values can be entered in the P 1016 and P 1017 machine parame
ters.

Example: Determining the coefficient factor factors for acceleration behaviour


are suppressed
N10 G1 F2000 Programmed coefficient factors:
N20 G114 X9940 Y9940 > Velocity
/N30 G114 X380 Y380 > Acceleration
N40 X100
N50 G4 F1
N60 X0
N70 Y100
N80 G4 F1
N90 Y0
N100 G115
M30

Please note !

If lagfree machining is intended, the slope points for automatic mode MP 1003
have to be 0.
For sloped movements, for which the preset axis acceleration is monitored in the
block preparation, the feed forward control will result in excessive acceleration val
ues. The excess value depends on the programmed coefficients. This can be
avoided by using G6 to program correspondingly lower acceleration values.

2 133
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Contourdependent feedrate override (option) G8, G108, G109, G110

Application, action
Owing to the freely programmable structure, the contourdependent feedrate
override offers you a variety of possibilities to modify the speed profile of machining
in such a way that optimal machining results and times are realized. The strategy
parameters are stored in the machine parameter program (P 6800 Look ahead).
You program a required strategy via G functions.

You take into account the block cycle time of the control.

Owing to the dynamic lookahead range over 10 program blocks, and depending
on programming, the speed at the block transitions is lowered only to the extent
required for the programmed contour; the speed may even remain constant. Ow
ing to the dynamic lookahead range, this function makes it in particular possible
to implement an acceleration or deceleration over several blocks.
Benefits of the contourdependent feedrate override
Shorter machining time owing to smaller number of slopedown opera
tions within the part program.

High feedrates even with short traversing blocks, since the enhanced
lookahead range enables an automatic acceleration over several blocks.

Automatic speed reduction. The feedrate can be programmed in such a way


that speed drops caused by the block cycle time are avoided (e.g. in the
case of very short traversing blocks).

The smooth speed profile leads to optimal machining quality.

Example: Speed/time behaviour (path speed; principle)

Without programmed With path slope or With programmed feedrate


feedrate override (G9) (G8) override (e.g. G108)

N10 X0 Y100 F4000 N10 X0 Y100 F4000 G8 N10 X0 Y100 F4000 G108
N20 X1 N20 X1 N20 X1
N30 X2 N30 X2 N30 X2
N40 X12 N40 X12 N40 X12
M30 M30 M30

V V V

4m/
min

N20 N30 N40 N20 N20


t N30
N40 t N30
N40 t

2 134
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Preconditions
The contourdependent feedrate override operates with the following interpola
tors: G0, G1, G2, G3, G5, G10, G11, G12, G13, G73.

Please note!
The contourdependent feedrate override is not active with programmed G95
feedrate in mm/rev.

For the contourdependent feedrate override, the programmed G0, G10, G73 and
G61 G functions represent the conclusion of a coherent segment (coherent seg
ment = machining cycle).
In blocks without traverse movement the feedrate is zero. Therefore, all blocks with
out threshold value are located outside the segment. The same applies also to in
ternally generated blocks without traverse movement.
If an auxiliary function with transfer stop (MPP 2002) is programmed, a slowdown
to zero is performed at the end of the preceding block.
With G9, the contourdependent feedrate reduction is switched off. The G9 block
is located outside the cycle. At the block end of the preceding block the feedrate is
zero.

Short blocks
A block length includes at least one interpolation step (sample). The max. possible
feedrate results from the interpolation time and the distance of the block, according
to the following relation:
Max. feedrate = Distance/time

Example: Maximum feedrate


Interpolation step = 10 ms
Distance = 1mm
Max. feedrate = 1 mm/0.010 s
= 100 mm/s = 6000 mm/min

In particular in the case of very short blocks, the internally determined feedrate can
be smaller than the programmed feedrate.

2 135
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Programming

To program the contourdependent feedrate override, you can optionally use the
G8, G108, G109 or G110 G function.
The action of the G codes are planned via the "P 6800 Contourdependent fee
drate override (Look ahead)" machine parameters. Therein you define the effects
for the respective G code:
Strategy of block transition speed
Constant block transition speed
Block transition speed in dependence on max. step change
Programmed block transition speed
By entering a minimum buffer distance, you can influence especially the speed
profile in the starting phase of a machining cycle for each strategy.

Strategy of feedrate override, adapted to the block cycle time


Automatic feed reduction due to block cycle time
Extension factor for the block cycle time
Extension time with auxiliary functions

Further information and details for the parameterization of the machine parameters
are contained in the CC 220 Machine parameters manual, P.No. 4201, or
CC320 M Machine parameters, P.No. 4180 P 6800 Look ahead .

2 136
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Explanation of the strategies of feedrate override

Strategy of feedrate override


By means of contourdependent feedrate override you can determine the speed
at the block transitions in three different ways:
Automatically, by two internally calculated strategies,
or
by additional explicit programming in the part program.
By entering a fictitious axis movement (buffer distance) you influence the speed
behaviour at the beginning of the working section, irrespective of the selected strat
egy.
By making an entry in MPP 6801 you determine the strategy individually for
each G code (G8, G108, G109, G110) .
By making an entry in MPP 6802 you switch an internal monitoring feature of
the block transition speed on or off.
By making an entry in MPP 6807 you determine the address of the pro
grammed block transition speed.
By making an entry in MPP 6803 you set the buffer distance.

Constant block transition speed


MPP 6801: 1 Now lowering of the contour feedrate (special case, with very
small angle/direction changes in the program only other
wise SERVO error may occur).

Subordination to MPP 6802

The programmed speed is maintained irrespective of the contour. No speed reduc


tion will occur prior to extensive directional changes (SERVO error possible!). A
speed reduction will only occur if the deceleration distance within the entire
lookahead range is not sufficient.
The observance of the permitted limit values on the machine is exclusively up to the
programmer, since traversing is performed at the programmed speed.

Example: Constant block transition speed (principle)

MPP 6801: [108] 1


Feedrate contour
Programmed contour Vt diagram

X V
N110
N100
N120
N100 N110 N120

Z t
.
N100 Z70 X80 F6000 G108 G108 = Constant block
N110 Z100 transition speed
N120 X20
.

2 137
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Block transition speed in dependence on max. step change

MPP 6801: 2 Allow for max. step change (normal case)

Subordination to MPP 6802 and MPP 1007

The programmed speed is maintained in dependence on the contour.


Prior to extensive directional changes, a speed reduction to the speed defined in
P1007 or 1022 takes place.
The speed is also reduced if the deceleration distance within the total lookahead
range does not suffice.

Example: Block transition speed in dependence on max. step change (principle)

MPP 1007: [1.A] 2.000 [2.A] 2.000


MPP 6801: [108] 2
Feedrate contour
Programmed contour Vt diagram

X V
N110
N100
N120

Z N100 N110 N120 t


. Programmed max. step
. change MPP 1007
N100 Z70 X80 F6000 G108
N110 Z100 G108 = Max. step change
N120 X20
.
.

Standard pathslope logic

MPP 6801: 0 standard pathslope logic


The input is permitted for G8 only. This is used to select the standard pathslope
logic (refer to G8 Path slope on).

Subordination to MPP 6802

2 138
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Programmed block transition speed for one block transition

MPP 6807: Address of the programmed speed


In addition to the selected strategy you program the speed [in mm/s] for one block
transition in the part program.

Subordination to MPP 6802 and MPP 6807

The programmed end speed applies only blockwise. Therefore, it is only valid for
one block transition.

Example: Programmed block transition speed (principle)

Feedrate contour
Programmed contour Vt diagram

X V
N110
N100
N120

Z N100 N110 N120 t


.
.
N100 Z70 X80 F6000 G108
N110 Z100 E0 Programmed feedrate at the
block end = 0
N120 X20
.
.

Monitoring of the block transition speed

Depending on the defined strategy (MPP 6801), the control internally calculates
the required block transition speed. This speed is compared to the programmed
speed. The speed can be monitored in dependence on the entry in MPP 6802.
Monitoring is different in two cases of application:
You program a feedrate smaller than the one internally calculated for the strategy:
All monitoring functions specified in the underlying strategy are observed.
You may therefore always program a lower speed.

You program a feedrate greater than the one internally calculated for the strategy:
All monitoring functions specified in the underlying strategy are cancelled.

2 139
CC 220/320 M
G functions
Flexible Automation Programming Instructions

MPP 6802: YES/NO Monitoring of the programmed speed

Subordination to MPP 6801

In order to protect the machine against inadvertent programming of a too high


speed, you can use the "YES" entry in MPP 6802 to switch on monitoring sepa
rately for the eligible G codes. You then traverse at the internally calculated
blocktransition speed.
Entering NO forces traversing at the programmed speed. Under certain conditions
it may happen that the acceleration limit values of individual axes defined in MPP
1002 are exceeded.
P6802 should only be set to NO if, for instance, an external preprocessor is being
used to calculate the appropriate speed values of the contour and to generate a
corresponding NC program.
In this case the CNC does not have to monitor the speed values since they are
already properly calculated by the preprocessor.

Example: Programmed block transition speed

Higher programmed block Higher programmed block


transition speed is per transition speed is not per
mitted mitted
MPP 6802: [108] NO MPP 6802: [108] YES
Feedrate contour Feedrate contour
Vt diagram Vt diagram
Unmonitored
excess Monitored decel
V acceleration V eration process

N100 N110 N120 t N100 N110 N120 t


Deceleration in N120 block. Deceleration over two blocks.
Dynamic problems may occur in
the machine.

2 140
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Minimum buffer distance


MPP 6803: Entry of an axis movement [in mm]
For each planned G function strategy of the block transition speed you can
enter a fictitious axis movement via MPP 6803.
Execution after a program/working cycle start will only start after this distance has
been internally processed by the block preparation and blocks are available in the
block preparation. In this way you obtain a uniform speed profile as early as at the
beginning of execution, if several short blocks (referred to the axis movement) are
programmed there. (Acceleration over several blocks.)

Example: Buffer distance (principle)

Feedrate contour
Vt diagram

Execution without buffer

N10 N20 N30 N40 t

Feedrate contour
Vt diagram

Execution with buffer

N10 N20 N30 N40 t


Fill
buffer

In the following cases execution starts even before the minimum buffer distance is
reached:
10 blocks have already been prepared.
The cycle/program end has been reached.

2 141
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Strategy of feedrate override, adapted to the block cycle time


The three available strategies take into account the block cycle time.
Parameterization is performed via MPP 6804, MP 6805 or MPP 6806.
Strategy of automatic block cycle time feed reduction
Extension factor of the block cycle time
Extension time of the block cycle time with programmed auxiliary functions

Strategy of automatic block cycle time feed reduction

MPP 6804: Block cycle time feed reduction


If the block execution proceeds faster than the block preparation (many very short
blocks with respect to the axis movement), short speed drops (axis spluttering)
may occur. In MPP 6804, separately for G8, G108, G109 and G110, you can deter
mine whether, and in which way, the speed reduction is to be performed.
With the respective entry you determine:
No feed reduction
Feed reduction depending on the block cycle time
Feed reduction depending on dynamic buffering (block conditioning).

Feed reduction depending on block cycle time

MPP 6804: 1
The speed drops are prevented by an automatic reduction of the max. feedrate in
the respective blocks. Block by block, the feedrate is lowered to such an extent that
the execution time of the blocks is at least as long as the block cycle time.

Example: Speed (no reduction/adapted to block cycle time)

The two diagrams illustrate the basic relationships


Feedrate contour
Vt diagram
V

No speed reduction

N10 N20 N30 N40 t


V
Speed reduction
depending on
block cycle time

N10 N20 N30 N40 t


BLC (! P6805)

2 142
CC 220/320 M
G functions
Flexible Automation Programming Instructions

No speed reduction

MPP 6804: 0
Internally, the block cycle time is not monitored.

Speed reduction depending on dynamic buffering

MPP 6804: 2
The strategy takes into account the buffering between block preparation and block
execution.
The buffering is not taken into account if further information is to be programmed in
addition to the end points of the synchronous axes, e.g.:
the block contains a new G code

an asynchronous axis has been programmed

a new feedrate has been programmed

a new spindle speed has been programmed.

The feedrate will then be reduced according to the "Speed reduction depending on
block cycle time" strategy.
If the buffering has not been cancelled (only axis information has been pro
grammed), the buffer between block preparation and block conditioning will only
be executed if:
blocks are shorter than the block cycle time

if readingin falters during "Direct execution"

Owing to the lookahead range, the blocks are always provided with a decelera
tion phase at the end of the prepared distance. When the existing buffer range is
being executed, the deceleration phase of the blocks just prepared will occur at the
end. Normal acceleration is not exceeded.

Subordination to MPP 6803

When a new block is being prepared, the deceleration profile of the active block
cannot be changed any more. The lookahead range starts with the next block.
The deceleration profile is determined accordingly. Until the minimum buffer dis
tance stored in MPP 6803 is reached, no acceleration occurs. The maximum speed
of the blocks is limited to the final speed of the currently active block. This limitation
is only cancelled as soon as the minimum buffer distance is reached. This causes
the speed profile to become smoothed.

2 143
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Extension factor of the block cycle time

MPP 6805: Extension factor of the block cycle time


The block cycle time is not a fixed measure, but rather different for each case of
application and depends on the applied options. A fictitious standard block cycle
time is multiplied with the entry in MPP 6805. This means that you can adapt the
times to the specific requirements, i.e. to the current block cycle time.

The modified block cycle time acts generally on all strategies.

Extension factor of the block cycle time with programmed auxiliary functions

MPP 6806: Extension factor of the block cycle time with programmed auxiliary
functions

With blocks containing "Auxiliary function output without transfer stop", the ac
knowledgement time of the auxiliary function has to be taken into account in addi
tion to the block cycle time. Considering that the acknowledgement time is user
specific, the extension time can be underlaid for each G function. The max. execu
tion time of the blocks is then at least "Block cycle time + entry in MPP 6806".

2 144
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Workpiece zero shift (option) G51, G52

General
In the MACHINE mode, the "Record workpiece zero point" function is available.
The values determined there can in addition to any zero offset table also be
stored in the workpiece zero point memory.
In the case of repeated recording of a workpiece zero point in the workpiece zero
point memory, the new values are added each to the already existing values.
Values stored in the workpiece zero point memory are not lost even if the control is
switched off.
The P3014 machine parameter can be used to define the powerup state G51 or
G52.
The powerup state applies after: switching on the CNC and CLEAR LOGIC.
The last programmed G function (G51/G52) remains active even after M30 or pro
gram cancellation. Control reset does not change the state of G51/G52 last pro
grammed.
After "Load backup", G51 is active. Previous values contained in the workpiece
zero point memory are then deleted.
G52 activates the shift values contained in the workpiece zero point memory.
G51 deactivates the function. The workpiece zero shift values remain stored.
Each of the G()54 G()59, G60 and G160 G functions is based on G52 (i.e. acts
additively) and is deactivated as soon as G51 or G52 is programmed.
If G52 is the powerup state, and if a shift value is contained in the workpiece zero
memory, the value becomes immediately active in the respective axis after "Tra
verse to reference point".

Programming
G52
(without axis information) The shift values contained in the workpiece zero point
memory are activated.
G52 X10 Y20 Z30
(with axis information) The programmed axis values are entered in the workpiece
zero point memory and activated as new values. Previously stored values are over
written. The programmed value corresponds to the new axis position.
G52 Y15
If G51 was active before: Y value is written into the workpiece zero point
memory (old Y value is overwritten).
Subsequently the "Workpiece zero shift" function
becomes active.
If G52 was active before: Only the workpiece zeropoint position of the Y
axis changes.

G51
Cancels the activity of G52. The workpiece zero shift values last active remain
stored and can be reactivated by G52.

2 145
CC 220/320 M
G functions
Flexible Automation Programming Instructions

NOTES!
If the "Workpiece zero shift" function is applied, the "ZERO AXES" softkey is
no longer offered.

G52 can only be programmed if no G92 shift (set actual value) is active.

The FXC CPL function can be used for read and write access to the workpiece
zero point memory (write access enabled only with active G51).

2 146
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Linking of axes (option) G995

Function, action
The linking of axes option is an option of the CC220/320 controls that is worth
money.

By programming G995, you can link 2 * 2 synchronous axes simply by software


means so that the linked axis is traversed together with the programmed axis.

The linked axes are defined in machine parameter P124. A maximum of 2 axis pairs
can be defined. For further instructions see the "Machine Parameters CC 320 M"
manual P.No. 4180.

Example: Linked axes


6 synchronous axes have been defined within the system (1st axis=X, 2nd axis=Y,
3rd axis=Z, 4th axis=U, 5th axis=V, 6th axis=W).
The U axis is to be linked to the X axis, and the V axis to the Y axis.:
Entry in P 124: [1.] 1 [2.] 4 [3.] 2 [4.] 5
(X) (U) (Y) (V)
1st axis pair 2nd axis pair.

When linking is active, the linked axis (slave) is traversed together with the moving
axis (master). It must be noted that the address of the slave axis must not be pro
grammed when linking is active.
When unlinked, both axes can be traversed as usual by programming the axis ad
dresses.

Activate linking of axes


Program G995 with the address of the axis that is to be linked having the value
1. Linking is activated.
The slave axis is moved towards the position of the master axis.
When linked, the active linking status can be reviewed under Status in the DIAG
NOSTIC group operating mode: 1ST AXIS PAIR LINKED and/or 2ND AXIS PAIR
LINKED.

Deactivate linking of axes


Program G995 with the address of the axis that is to be unlinked having the
value 0. Linking is canceled.
The slave axis remains in the last position.
M30 cancels all axis links.

Notes, remarks
Go block
Within Go block, linking is considered in the calculation, i.e., in the end of the cal
culation run the end position of the master axis is traversed to if linking is active at
that time. If linking is not active, the last position of the slave axis is traversed to re
gardless of whether this position was programmed by linked or direct addressing.

2 147
CC 220/320 M
G functions
Flexible Automation Programming Instructions

Zero offsets
If a zero offset of the master axis is active when linking is activated, this zero offset is
transferred to the slave axis. The end points of both axes are identical with respect
to the machine coordinates.
Program value display
The program value of the master axis is taken over for the slave axis although this
axis has not been programmed.
Monitoring
The axes are monitored individually within the scope of lag monitoring. The dis
tance between the linked axes is not verified.
Axis dynamics
The values programmed for the individual axes in the MPP are applicable. The dy
namics of the slave axis must be equal to or higher than that of the master axis.
Programming

Programming example for linking of axes


Prerequisite:
The U axis must be linked to the X axis (X/U=1st axis pair) and the V axis is to be
linked to the Y axis (Y/V=2nd axis pair). Machine parameter P124 has been para
meterized accordingly:
N10 G1 F3000 X125 Y250 U10 V20 The axes traverse synchronously
to the programmed end points.
N20 G995 U1 Activate linking of 1st axis pair.
The U axis traverses to the end point
of the X axis.
N30 X320 Y230 The X axis and the U axis traverse to 320;
Y axis to 230, V remains on 20.
N40 G995 U0 V1 Linking of 1st axis pair (X/U) is canceled;
the 2nd axis pair (Y/V) is linked with the V
axis traversing to the position of the
Y axis.
N50 G0 X0 Y0 U0 All axes move to position 0.

N60 G995 V0 Linking of 2nd axis pair is canceled.


All links are canceled .
N70 G2 X100 R50 Circular interpolation of X and Y with the
center X50/Y0 to destination point
X100/Y0;
N80 G995 U1 V1 Activate linking of 1st axis pair (X/U) and
2nd axis pair (Y/V). Axes U and V tra
verse synchronously to the end points of
the master axes.
N90 G3 X0 R50 Circular interpolation of the linked axes
with center X50/Y0 to destination point
X0/Y0. The linked axes traverse on the
same path as the master axes.
M30 Program end, both axis links are can
celed.

2 148
CC 220/320 M
Auxiliary and supplementary functions
Flexible Automation Programming Instructions

Feedrate Address F

The feedrate of the control can be programmed in three different ways to be se
lected via corresponding preparatory functions.

G94 F6.1 Feedrate in mm/min

G95 F4.3 Feedrate in mm/rev.

G93 F6.1 Feed time in seconds

The F format and a feedrate limitation (max. programmable path feed) can be pro
grammed via machine parameters.

DWELL TIME
ADDRESS F
The CC 220/320 M system offers two methods of dwell time programming which
are to be called via corresponding preparatory functions.

G4 F5.2 Dwell time in seconds

G104 F7.0 Dwell time in revolutions

31
CC 220/320 M
Auxiliary and supplementary functions
Flexible Automation Programming Instructions

Spindle speed Address S

Definition
The speed of the spindle is selected directly via the S word in rpm; format: 5.1, the
digit after the decimal point does not have to be written.

Action
The S word acts modally.
The S value is NCinternally set to "0" at the end of the program (M2/M30) or on
Control reset.
Therefore, it has to be reprogrammed at the program start.

NOTES!
The spindle speeds can also be limited by corresponding programming
(G192, G292).

In the "Overall lockout" test mode or single lockout of the spindle no setpoint
is issued for the spindle. The position servo loop is not cancelled by program
ming M3 or M4. G95, G33 and G104 are possible.

Selection of the sense


of rotation
The selection of the rpm includes the specification of the direction of rotation or the
stop of the rpm.
The following functions are provided for this:

M3 Spindle CW

M4 Spindle CCW

M5 Spindle STOP

M13 As for M3 and coolant ON

M14 As for M4 and coolant ON

M3/M13 and M4/M14 can be written together with the S word in one block.
Coolant ON has to be evaluated and triggered by the PLC logic.

32
CC 220/320 M
Auxiliary and supplementary functions
Flexible Automation Programming Instructions

M codes Address M

Definition
Output signals can be generated via the M address.
The user can use any M function evaluated by the machine.

Subroutine call
In addition to 32 G functions, the MP program permits the assignment of 16 M func
tions plus 8 switching functions (address freely selectable) used to call a subrou
tine (P number).
Only the G functions act modally.

Programming
In principle, only one subroutine call by G, M or auxiliary functions may be con
tained within one block. In addition, in the case of several identical addresses one
of which calls a subroutine, it has to be ensured that programming is performed at
the end of the address sequence.

Example:
M6 calls subroutine
N500 M3 S500 M6 (o.k.)
N500 M M3 500 (RUN TIME ERROR IN BLOCK)

NOTE!
The M function output with "GO BLOCK" is controlled in dependence on the P2010
machine parameter.
If "2" is assigned to P2010 (output last auxiliary function), the M3, M13, M4, M14 M
functions and the "Programmable spindle orientation" function are stored, with the
last programmed function of this group being executed and output via interface.
Subsequently, the last programmed, or automatically determined, gearrange M
code is output via interface.

33
CC 220/320 M
Auxiliary and supplementary functions
Flexible Automation Programming Instructions

The codes listed below have the following effects:

Code Internal function

M0 Program stop, continue after NC start


(no change in the current status).

M1 Optional stop, continue after NC start,


no change in the current status
(operative only if the "Optional stop" softkey is active).

M2 Program end (to be used in the main program only).


Preparatory functions (except G14/G15 and G70/G71) and other current statu
ses are reset. In addition, M5 is triggered.

M3 Spindle CW

M4 Spindle CCW

M5 Spindle stop
The spindle speed and the gear range remain internally stored. With closed
loop positional control of the spindle, M5 closes the control loop from a speci
fic speed of rotation. With openloop control of the spindle, the CNC issues 0
volt at the relevant output after M5.

M6 Tool change (freely definable)

M13 Spindle ON (CW) and coolant ON

M14 Spindle ON (CCW) and coolant ON

M19 Main spindle orientation to fixed position in degrees M19 S....:


Positioning to programmed angle position
(The M code can be modified via machine parameters)

M30 Program end: as for M2, but also for subroutines

M40 Automatic gearrange selection


(Powerup state)
(M code can be changed via machine parameter 7017)

M41M48 Fixed gear ranges 1 to 8


(M code can be changed via machine parameter 7017)

M999 Segment END when processing from DNC channel

When programming 2 internally acting M codes excluding each other mutu


ally, the last M code programmed in this block will act.

This concerns the following groups:


M0, M1, M2, M30
M3, M4, M5, M13, M14, M19 (M code for "Programmed spindle orientation" can be
changed)
M40, M41, M42, M43, M44, M45, M46, M47, M48 (M code can be changed via ma
chine parameter 7017)

The M0, M1, M2, M30 functions must be written separately in a block of their
own.

34
CC 220/320 M
Auxiliary and supplementary functions
Flexible Automation Programming Instructions

Programmable spindle orientation M19

Definition
This function is provided to position the spindle to a desired position, for instance to
meet the preconditions for a tool change or certain technological applications (re
traction movement with stationary tool).
The M code can be changed via machine parameter 7013.

Programming
M19 can be programmed on its own or together with other M functions (except for
NCinternal functions) not from the same group.
If several M functions are programmed, they are executed, or activated, according
to their programmed sequence.
M19 can be programmed with or without an S word in one block.
If programmed on its own, the spindle is positioned to the 0 mark or to a position
defined by P7028 (reference point offset). If an additional S word has been pro
grammed after the M code for "Spindle orientation", the orientation can be per
formed for any position. In this case P7033 defines the upper limit value of this posi
tion in the M3 direction.

The following applies to the S word: Programmed S divided by 360 = number


of revolutions.
Remainder = position on circle between
0 and 359.9.
0 < programmed value <
P7033
Other auxiliary functions can be written together with M19 within one block.
If the same position value is programmed again, the spindle remains in the current
position, i.e. no repositioning occurs.
If a different position value is programmed, the spindle is positioned to this value.
M3, M13, M4, M14, M5, M19 belong to one group and have both NCinternal as
well as external functions. They exclude each other mutually within one and the
same block.
Examples:
N100 M19 (permitted)
N101 M5 M19 (does not make sense)
N200 Z700 M19 (permitted)
N500 P10 M19 (permitted)
In the P10 program, it has to be ensured that no function
colliding with M19 becomes activated.
CW orientation from standstill (to 0 mark)
N100 M3 M19
CW orientation from standstill (1 revolution +20)
N100 M3 M19 S 380
CCW orientation from standstill (to 0 mark)
N100 M4 M19
CCW orientation from standstill (2 revolutions+35)
N100 M4 M19 S 755

35
CC 220/320 M
Auxiliary and supplementary functions
Flexible Automation Programming Instructions

Particularity at the
program end
M2/M30 aborts a running spindleorientation process. For this reason the pro
gram has to ensure that the orientation process is completed in time.

Explanatory example
N499 X400 Y500 M19
N500 Z0 permitted
N501 M30

N499 X400 Y500 Z0


N500 M19 not permitted since M30 becomes
N501 M30 immediately active after M19

N499 X400 Y500 Z0


N500 M19
501 WAIT permitted
N502 M30

36
CC 220/320 M
Auxiliary and supplementary functions
Flexible Automation Programming Instructions

Gearrange selection M40 / M41 M48

The machinespecific rpm ranges are implemented by selectable transmissions


or clutches. The control automatically supports gearrange recognition. The num
ber of gear ranges and the rpm ranges as well as other parameters are defined in
the MP program.

A gearrange code does not need to be programmed in the part program, since it
is normally detected automatically.
Should programing be necessary despite the automatic recognition, M41 to M48
(gear ranges 18) is to be programmed (it is possible to assign different M codes
to the individual gear ranges; refer to MP 7017).

If a speed is programmed which cannot be reached in the selected range, the min.
and max. speed for the range under concern is output.
M40 should be written once at the start of the program.

Automatic selection
With active M40 (M code can be changed), the control itself selects the gear range
according to the following criteria:

Up to 8 gear ranges can be controlled with minimum and maximum speed.

Speed output 1 to 99999 rpm (note the range limited by the specific type of
machine)

When S is programmed, the appropriate range is selected from the current


program data. Programming S0 does not cause a change.

If gear ranges overlap, the lower range will be selected (with higher motor
speed).

If a gear range is preset via M code the automatic gearrange selection is deacti
vated.
The automatic gearrange selection can be determined as powerup state via
MP 7031.

NOTES!
P7034 has to be noted in case of a tool change. This defines whether the
change will be initiated via idling or "Spindle orientation".

The machine parameter 7037 can be used to define whether the reference
point is to be deleted after a gearrange change. After deletion, the 0 marker
(reference point) must be sought again.

37
CC 220/320 M
Auxiliary and supplementary functions
Flexible Automation Programming Instructions

Tool selection Address T

The T word is used to program the tool request.


On machine tools with automatic tool changers this signal, which is output by the
NC in BCD/binary code, is used to initiate the magazine search. On machine tools
with manual tool change the programmed T word is used as an action instruction
for the operating personnel or for a coincidence check between the requested tool
and the one inserted in the spindle.

Action
The minimum word length for programming the T word depends on machine pa
rameter 9020.
The T word may be programmed with variable word length with 1 to 8 digits. (Refer
to the programming instructions of the machinetool manufacturer.)
The machineparameter group 2000 has to be noted or set for the output of the T
word at the CNC interface.
The T word last programmed is displayed under the "Diagnostic" group operating
mode.

NOTES!
M6 causes the actual tool change between the previously sought tool and the
spindle tool.
For tool change, also refer to the Planning Manual "Standard tool management",
P.No. 3898.

Programming
The programming mode depends on the tool management logic.

Example:

N10 T123 M06


N20 G0
N30 G1
. Processing with T123
.
.
N500 T234 M06

38
CC 220/320 M
Tool compensation
Flexible Automation Programming Instructions

Tool compensation

Definition
Tool compensation serves to permit the same workpiece to be machined with dif
ferent tool sizes via the same part program.

It includes a tool compensation for both length as well as radius.

Length compensation address: H


Radius compensation address: D




F




L (T)

S
G42

41
CC 220/320 M
Tool compensation
Flexible Automation Programming Instructions

Length compensation

Action
Tool length compensation becomes active by calling the H word. It is assigned as a
standard to the axis defined in parameter P6507 (also refer to G78/G79).

It acts modally and can only be cancelled by a call of a new length compensation,
or by programming H0.

Both positive as well as negative compensation values can be implemented.

Length compensation becomes active with the next position data of the length
compensation axis after calling the H word, i.e. the H word alone does not cause
any traversing movement.

With active G90, the length compensation is added to or subtracted from each new
programmed displacement of the compensation axis, dependent on the sign of the
compensation value.

With active G91, the compensation value is added to, or subtracted from, the first
displacement of the compensation axis.

Programming
The H word may be programmed alone or with other information in one block.
When changing the compensation number, it may be overwritten directly, or can
celled by H0 and a displacement of the length compensation axis.

Example:

N99 G22 K10


N100 G1 X... Y... Z... H... F...
Call
Compensation number
(Value is stored in the tool compensation table)

Value added to or subtracted from the Z axis va


lue

NOTE!
When using the PC 600 tool management (precondition: word coupling CNC
PLC), the length compensation of the respective tool is automatically activated if
G145 is activated.
In this case, an additional H value acts additively.

42
CC 220/320 M
Tool compensation
Flexible Automation Programming Instructions

Compensation sign for length compensation

In a clockwise coordinate system, the signs of the tool length compensation have
to be entered as follows in the compensation table.

Example:

Drill bit too short Drill bit too long


Compensation value Compensation value
Z 10 Z +10

Z
80

70

60

50

40

30
2
20 1
3
10

+X
10 20 30 40 50 60 70 80 90 100 110 120 130 140

1 = Programmed drilling depth


2 = Compensation value ""
3 = Compensation value "+"

In the above example, the lengths of the drill bits used differ from the pro
grammed drill bit length

This difference is compensated for by the tool length compensation

If the drill bit is too long, a positive compensation value is stored as the Z value
in the length compensation table

If the drill bit is too short, a negative compensation value is stored as the Z
value in the length compensation table

The compensation value is activated by calling the H word or G145.

43
CC 220/320 M
Tool compensation
Flexible Automation Programming Instructions

Radius compensation

Action
The tool radius compensation is activated by calling the D word in conjunction with
G41/G42.

The G17/G18/G19/G20 plane selection is used to define the plane in which circular
interpolation, or radius compensation, is to be performed.

The D word acts modally.


Programming a new D word deactivates the previous value and activates the new
one.

The compensation value becomes only active after the next linear traversing infor
mation for the compensated axes. The same applies to the cancellation of the com
pensation value.

The radius compensation values are interpreted as a deviation from a cutter radius
assumed while programming the part program. The value is used with the unit of
measurement of the main axis at the plane that is active when compensation is acti
vated in block preparation.

Programming
The D word can be programmed alone or together with other information within
one block.

When changing a compensation value, the new value becomes active or cancelled
by programming G40.

Example:

N99 G22 K10


N100 G1 G41 X... Y... F... D...
Compensation number
(Value is stored in the tool compensation
table)
Call

NOTE!
If the tool table is being used (precondition: word coupling CNCPLC), radius
compensation of the respective tool is automatically activated if G145 is active.
In this case, an additional D value acts additively.

The programming instructions of the machine tool builder have to be observed.

44
CC 220/320 M
Tool compensation
Flexible Automation Programming Instructions

Tool table

Action
In conjunction with the tool table (option), the appropriate compensation values
(length/radius) are automatically provided and computed if the tool (T word) is pro
grammed and the tool change has been completed (M6), provided G145 is ac
tive.

In this case, the H or D word (e.g. in a separate C table) does no longer need to be
programmed.

The T word has 8 digits, only 7 of which are programmed. The 8th digit is used to
identify the replacement tool.

For special applications, the H and D word may still be programmed. When used,
the programmed H and D compensation is added to the compensation contained
in the tool table.

Programming
N100 G17 G1 G41 X...Y...F...T...
Related compensation value
is stored in the tool table

The compensation value is provided by the PLC to the CNC and computed after
each tool change (tool in spindle after M6).

NOTE!
The programming instructions of the machine tool builder have to be observed,
since the method of programming depends on the machine design.

45
CC 220/320 M
Tool compensation
Flexible Automation Programming Instructions

Display format of the CS tables

The format for the display of the tables is as follows:

Horizontal table layout

P12345678. CPO NCO CORRECTION

N12345 ACT RUN


MAG. POS. MAG. POS. 30.12
MAG. POS.
9:00 #1 #2 #3

TOOL NUMBER T 12345678 T 11341678 T 11341618


LOCATION NO. D 123 D 113 D 112
RADIUS COMP. X 123.456 X 113.416 X 113.156
LENGTH COMP. Z 123.456 Z 113.156 Z 123.156
RADIUS WEAR U 1.234 U 1.114 U 1.214
LENGTH WEAR W 1.234 W 1.214 W 1.134
TOOL LIFE ABS. L 1234.56 L 1214.16 L 1 34.16
TOOL LIFE PREW. V 1234 V 1134 V 1134
STATUS WORD M 12345678 M 11345178 M 14345178
TOOL LIFE OFF A 1234 A 1214 A 1134
FACTOR FOR L B 12 B 11 B 21

TOOL TABLE MODIFY


SEARCH T Z L A D U V B X W M DELETE

# = 1 to = XXX identify the individual groups

46
CC 220/320 M
Tool compensation
Flexible Automation Programming Instructions

Start point, start of contour

Start point
In many cases the contour cannot be traversed to directly from the tool change
point; i.e. the movement is started from an intermediate position (start point).

The selection of a suitable start point can avoid damage to the contour. During this
movement, the compensation values are built up linearly.

If possible, the start point should enable tangential traversing to the contour, or
should at least be located in such a way that no axis will reverse its direction at the
first contour point (relief cutting).

Start of contour
A linear edge of the workpiece should be selected as contour start; otherwise, a
linear intermediate positioning (at least three increments) has to be performed.

Compensation call
Each compensation call has to be made in a linear operating mode (G0, G1, G10,
G11, G61). The block immediately following the call (G40, G41, G42) must also be
linear (only if G40/G41/G42 has been programmed without traversing movement).

Sample contour without


compensation call
Y
P1 P2

N1 G1 Z10 F100
P1 N2 X0 Y0
P2 N3 X2 F200
P3 N4 G2 Y20 R10
P4 N5 G1 X10
N6 X0 Y0
P4 P3

X N7 M2

Calling a compensation with positioning only for the axis/axes in which the com
pensation is active:

Example: Z positioning for the T call (XY plane)


XY positioning for G41, G42 (XY plane)

Building up the radius compensation

When a radius compensation is called, the control builds up the distance to the pro
grammed contour in a linear traversing movement. The equidistant line begins ver
tically above the start point of the first path section for which the compensation is to
be effective.

47
CC 220/320 M
Tool compensation
Flexible Automation Programming Instructions

Contour entry with various start points

S2
S1
1 1
P1 P1

4 4

S4

1 1
P1 P1
S3

4 4

Programmed path (contour)


Center point path
Compensatory movement produced by the control

S1S4 The compensation value is built up linearly from the start point to P1. The
contour is always completely machined without contour damage.

S1 Neatest contour entry by tangential approach.

S2 Good contour entry, start point can also be used as end point.

S3 Lowest possible start points without collision, allowing for the path of the
4 1
contour !

1
S4 Relief cutting at owing to directional change!

Example with S2 as start and end point including tool compensation

S
E
N1 G0 Z10 T01
1
N2 G1 X20 Y20 F200
N3 G41 X0 Y0 S500 M3
N4 X20
4 N5 G2 Y20 R20
2 N6 G1 X10
N7 X0 Y0
N8 G40 X20 Y20
N9 Z300 T00
3 N10 M2

48
CC 220/320 M
Tool compensation
Flexible Automation Programming Instructions

Contour transitions with G68

The following examples illustrate the effect of tool compensation, such as genera
tion of compensatory arcs (external) and calculation of bisectors (internal).

Linear contour transitions

i i
i

i
a
i a 2
2

Circular contour transitions

t t
t
i
i

Irregular transitions

i
i
t
i

t = tangential circle segment automatically generated by the control


i =irregular

49
CC 220/320 M
Tool compensation
Flexible Automation Programming Instructions

Contour transitions with G69 (intersection)

Angular change 0 to 90

Programming Execution

Angular change 0 to 90

Programming Execution

Angular change 90 to 180

Programming Execution

4 10
CC 220/320 M
Tool compensation
Flexible Automation Programming Instructions

Examples

G41 outside contour


Contour programming with tool radius compensation to the left of the workpiece,
and cancellation of the compensation at the end of machining.

The tool radius compensation value was stored in the technology table as an R
value.

N1 G1 F200
+Y N2 G41 X125 Y60
P10 P0 N3 Y50
80 N4 X105 Y40
P8 P9
N5 X90
70
N6 G5 X75 Y25
60 P6 P11
N7 G1 Y20
P1 N8 X25
50 N9 Y60
P3 P2
N10 X45 Y80
40
N11 X70
30 P4 N12 G3 X100 R15
P6 P5 N13 G1 X125 Y60
20 P12
N14 Y50
N15 G40 Y20
10
N16 M2
+X
10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160

Programmed path (workpiece contour)


Compensated path (cutter center point path)

G42 internal contour


Contour programming with cutter path compensation to the right of the workpiece,
and cancellation of the compensation at the end of machining.

N2 G42 F300
+Y N3 G1 X115 Y50
P11 N4 G5 X130 Y35
80 P12
N5 G1 Y20
P9 P10
N6 X55
70 P8 N7 Y30
60
P13 N8 X40
P14 N9 G5 X25 Y45
50 N10 G1 Y70
P1
P7 N11 X40
40 P0
N12 G3 X70 R15
P2
30 N13 G1 X100 Y80
P6 N14 X140
P5
20 P3 N15 Y60
P4 N16 X115
10
N17 Y50
+X N18 G40 Y35
10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 N19 M2

Programmed path (workpiece contour)


Compensated path (cutter center point path)

4 11
CC 220/320 M
Tool compensation
Flexible Automation Programming Instructions

End point, deactivation of compensation

End point
As a rule, the tool change point is not directly traversed to from the contour, but
rather via an intermediate position (end point).

The selection of a suitable end point prevents contour damage, and the length
compensation can be cancelled between the end point and the tool change point
(cancellation of the compensation is performed linearly).

Wherever possible, the end point should permit a tangential contour exit with active
radius compensation.
It should be located in a position where possible relief cutting owing to a directional
change is excluded during withdrawal from the contour.

End of contour
A linear section of the contour should be selected. Otherwise, a brief linear posi
tioning movement beyond the end of the contour has to be inserted (3 increments
min.).
If, at the end of a G40 main program, programming does not include any traversing
movement, the control will correct the current position to a point which is located on
the normal line extending through the end point of the last programmed element
ahead of G40 and which has the compensation radius as distance.

Deactivation of
compensation
Each deactivation of compensation has to be made in a linear operating mode (G0,
G1, G10, G11, G73).

The selection of end points is subject to the same analogous rules as the selection
of the start point (refer to contour entry).
The optimum exit is a direct extension of the contour last machined (by analogy
with start point 1).
The start point and end point differ in this case.

It is also possible to select a common start and end point (such as S2).

Deactivation with internal contours

The following procedure is recommended (G41 active)

last section of contour machining (e.g. G2 active)

tangential exit from the contour with G1 (e.g. only X and Y are programmed)

relief cutting with G1 Z (e.g. program Z only)

G40 with X/Y movement as an extension of the last movement (e.g. program
X/Y only)

T00 with Z movement (e.g. program Z only)

end of program

4 12
CC 220/320 M
Tool compensation
Flexible Automation Programming Instructions

Suppression of contour elements

When collision monitoring is active, not all programmed contour elements are ma
chined if the acting tool radius does not permit machining.

Programmed contour Execution variants with G68


1. All contour elements are machined

A B A B

with collision monitoring 2. One element suppressed, since


the tool radius is larger than the
contour element

A B A B

Collision areas

NOTE!
If, because of the geometrical conditions, it is impossible to machine more than
one contour element, the control interrupts machining with an error message.

Deactivation of compensation on internal corners

Programmed contour Execution variants of deactivation of


compensation

1. All programmed contour elements


are properly machined

2. One contour element is damaged


E

E = End point for deactivation of radius compensation, programmed with G40

4 13
CC 220/320 M
Tool compensation
Flexible Automation Programming Instructions

Outside corners

a angle variation Execution with G68 Execution with G69


between 0 and 90
a

a angle between 90 and 180

a angle variation Identical execution with G68/G69


between 90 and 180

a a

Step tool radius smaller than or Execution with G68 Execution with G69
equal to contour element

If, with active G69, the tool radius is greater than the smallest contour element, an error message will be issued if
collision monitoring is activated.

4 14
CC 220/320 M
Special functions
Flexible Automation Programming Instructions

Rotary axis programming

In the CC 220/320 M, 2 types of rotary axes are available, which can be defined for
the respective axis address in machine parameter 107:

1. "ROTARY" axis type

2. "ENDLESS" axis type

"ROTARY" axis type:


This axis can be traversed only within the limit switch range. With active software
limit switch, the maximum traversing range is 2 * 109 increments.

"ENDLESS" axis type:


With this axis type, the same as for the "ROTARY" axis type applies with regard to
programming a single block.
In the course of a block, the movement is first performed up to the programmed end
position. At the end of the block, however, a modulo computation (mod 360) to the
end position is performed. This means that the end position (if located outside the
>
limits 0 = end position <360) is always transformed to the range between 0 and
end position 360.
This means that the rotary axis can be traversed as many times as required in one
and the same direction.

Programming of the rotary axes is performed in degrees. The F word corresponds


to a feedrate in degrees/min.
Both absolute programming (G90) as well as incremental programming (G91) is
possible.
There may be restrictions with regard to G91 if a rotary axis was defined as position
ing axis (Hirth axis) (refer to section "Positioning axes").
In machine parameters 101 or 102 a rotary axis can be defined both as a synchro
nous as well as an asynchronous axis.

NOTE!
G functions do not act on asynchronous axes!

Example 1:
Difference between synchronous/asynchronous rotary axis:

synchronous: N100 X200 Y400 B60 F200 The X, Y and B axes reach the
programmed end position at
the same time.

asynchronous: N100 X200 Y400 B60 F200 The B axis does not necessarily
reach the programmed end
position simultaneously with X
and Y.

insignificant digits after the decimal point do not have to be entered in the
case of decimal point programming.

51
CC 220/320 M
Special functions
Flexible Automation Programming Instructions

Example 2:
Difference between ROTARY/ENDLESS axis types (G90 active)

ROTARY ENDLESS
N100 B60 Axis moves to 60 As for "ROTARY" type

N101 B360 Axis moves by 300 to 360 Axis moves by 300 to 360
Actual position = 360 Actual position = 0

N102 B360 No axis movement Axis moves by 360 to 360


Actual position = 0

N103 B270 Axis moves by 90 to 270 Axis moves by 270 to 270


Actual position = 270 Actual position = 270

N104 B370 Axis moves by 100 to 370 Axis moves by 100 to 370
Actual position = 370 Actual position = 10

N105 B390 Axis moves by 20 to 390 Axis moves by 380 to 390


Actual position = 390 Actual position = 30

N106 B10 Axis moves by 400 to 10 Axis moves by 40 to 10


Actual position = 10 Actual position = 350

Programming in terms of degrees

The CC 220/320 M permits 3 different methods of programming a rotary axis (P111


machine parameter):

Programming with "search logic"

Programming with "sign determines direction"

Programming like a normal rotary axis

A possibly active G91 is inoperable for the first programming method (search
logic).

1080
720
360 730
0 370
350 10 380
20

+
990 460 270 90 450 810

180
540
900

52
CC 220/320 M
Special functions
Flexible Automation Programming Instructions

Search logic
The search logic means that the programmed position is always traversed to on the
shortest path (referred to the unit circle). This results in a maximum traversing path
of 180.
The actual position, for instance, is 350. 10 are preset as command position.
Physically seen, this position is more than once present in the case of a rotary axis
(10, 370, 730, 1090 etc.). The search logic now selects the physical position
with the shortest distance to the actual position as the command position i.e. in
this case 370.
A "" sign, if programmed, will be ignored by the control.

Sign
The direction in which the set position is traversed to exclusively depends on the
programmed sign. The maximum traversing path is 360. If a negative sign is pro
grammed, the axis traverses to the set position in negative direction, with a pro
grammed positive sign it travels in the positive direction (a positive sign need not be
programmed).
For instance, the actual position is 730. The value of "20" is programmed. Physi
cally seen, this position occurs more than once on a rotary axis (20, 380, 740,
1100 etc.). The axis now traverses in the negative direction to the position corre
sponding to 20 in this case to 380. Programming "0" is not permitted.
"360" can be programmed instead.

Normal
For programming, this axis type behaves like a normal rotary axis. Here, the con
version between 0 and 360 depends on machine parameter 107 (ROTARY, END
LESS). Both G90 as well as G91 are active.

Example:
Difference between search logic / sign / normal
(Actual position 350; P107 = ROTARY; G90 active)

Search logic Sign Normal

N100 A10 by 20 to 370 (pos. direct.) by 20 to 370 (pos. direct.) by 340 to 10 (neg. direct.)
or N100 A10 as for "A10" (sign is ignored) by 340 to 10 (neg. direct.) by 360 to 10 (neg. direct.)
or N100 A180 by 170 to 180 (neg. direct.) by 190 to 540 (pos. direct.) by 170 to 180 (neg. direct.)
or N100 A370 by 20 to 370 (pos. direct.) by 340 to 10 (neg. direct.) by 720 to 370 (neg. direct.)
or N100 A350 no axis movement no axis movement no axis movement
or N100 A710 no axis movement no axis movement by 1060 to 710 (neg. direct.)

53
CC 220/320 M
Special functions
Flexible Automation Programming Instructions

Positioning axes (Hirth axes)

Definition
Positioning axes are rotary axes (ROTARY or ENDLESS axis type) which may take
part in interpolation, but may only traverse to certain permitted positions. As a rule,
they are not applied as asynchronous axes, since they represent e.g. tool
changer axes, tool axes or axes with serration, and consequently no path interpola
tion is required.
On principle, programs for Hirth axes can also be executed in controls with interpo
lating rotary axes.
With the CC220/320, the question as to whether a rotary axis should be pro
grammed as a Hirth axis can be defined in the P108 machine parameter.
The resolution of the positions to be traversed to can be as high as 0.001 degree.

Particularities
If a rotary axis is specified as a Hirth axis, a number of particularities has to be ob
served:
The reference point and the limit switch must lie on the Hirth grid.

Handwheel mode is not permitted for Hirth axes.


Prior to "Traversing via incremental jog mode", a permitted position must
have been traversed to.

If positions outside the Hirth grid are programmed, a machine parameter (P120)
can be used to decide whether the control is to output a runtime error or whether
the respective axis is to move automatically to the next possible position without
runtime error.

54
CC 220/320 M
Special functions
Flexible Automation Programming Instructions

Programming in positions

In addition to programming a positioning axis (Hirth axis) in degrees, position pro


gramming can also be activated via the P110 machine parameter.
In this case the axis letter is specified together with the position number. The 0 de
gree position always corresponds to the 0 position number.
The selected programming mode (P111) is also active with position programming.

Example:
Tool magazine (asynchronous axis: A).
The magazine is subdivided into 12 positions (P108 = 12).
Position programming has been activated (P110 = YES).
The Hirth programming mode (P111) is defined as "sign determines direction"
(P111 = 2).

N100 A7 Magazine moves to position 7 (in pos. direction)


N110 A6 Magazine moves to position 6 (in neg. direction)

If, for instance, P108 = 12 is defined, this means that the 60 position is traversed to
if e.g. position number 2 (e.g. N100 A2) is programmed.

Display
The display mode for positioning axes in the CC220/320 M can be influenced by
two machine parameters irrespective of the programming mode:
P117: Modulo display under the MACHINE operating mode
P119: Position display under AUTOMATIC and MANUAL INPUT

For further details, please refer to the corresponding sections of the "Machine pa
rameters" manual (P.No. 3855).

Zero offsets

It is possible to use G53 G59, G153 G159, G253 G259, G60. The value pro
grammed in the part program is enhanced by the zero offset value and inserted as
the end position (as with linear axes).
Programming G92 in conjunction with rotary axes is possible, but does not make
sense.

G92 must not be programmed in conjunction with active zero offsets (G53 has to be
programmed ahead of G92)!

55
CC 220/320 M
Special functions
Flexible Automation Programming Instructions

Read monitoring (E code) (option)

General
The "E code" option serves to increase the reliability of loading data from external
media into the program memory of the CNC. It supports the following interfaces:
Operating panel (20 mA / V.24)
CP board in the logic section (20 mA) standard

Coupling card in the logic section (V.24/20mA) DNC

Function
During data in, the control adds up the ASCII values of all characters of a block and
compares them to the checksum (E address) located before the endofblock
(LF) character. If data in is correct, the E addresses are not taken over into the pro
gram or dualport memory of the CNC.
If there is a difference between the result of the addition and the E address, the sys
tem will issue the "E code" error message in the screen header line.
If the file to be read in is a part program, an LSEC or a machine parameter file, the
incorrect line is stored in the memory together with the E address, and data in con
tinues. In the case of all other files, the system will interrupt data in. In this case, the
data is not stored in the part program memory. The W tables are an exception to this
rule. They are present in the part program memory after data in; their data, however,
may be incomplete.
After data in is completed, execute access for the incorrect file is cancelled (refer to
the RWED file protection modes; E = Execute). In order to permit this file to be pro
cessed or executed again, the operator has to correct the incorrect items in the edi
tor and deactivate the "E" protection mode again.
The "E code" function can be activated via softkey (refer to the operating instruc
tions). In this case, during the output of a file, the control will generate for each block
the sum of the ASCII values of all characters it contains.
This checksum (e.g. 123) will be inserted as "E123" directly in front of the endof
block character (LF), and will also be transferred. The checksum can contain a
maximum of three digits.
If the sum of all ASCII values of a block is greater than 999, the checksum will be
generated via a modulo function. Via the machine parameters, 999 or 1000 can be
selected as modulo value (important note: refer to next page, "Notes", "Special
case modulo 999"!).
Example:
N99 G1 X0 Y0 E585 (CR) (LF)

N100 G1 X500 Y700 M10 S1000 E270 (CR) (LF)


Sum Ecode
(Checksum)

In the example the sum of all ASCII values in line N100 is 1270. When using the mo
dulo function, the following checksum is obtained:
1270 mod 999 = 271 (with modulo value of 999) or
1270 mod 1000 = 270 (with modulo value of 1000)

(depending on the modulo value selected in the P 5508 machine parameter).

56
CC 220/320 M
Special functions
Flexible Automation Programming Instructions

NOTES!
When a file is being read in, all characters contained between the last end
ofblock character (LF) and the E address are included in the checksum.
Exception: DELETE (skip character, ASCII value: 127).

If the punched tape includes a carriage return (CR) in addition to the end
ofblock (LF), (CR) must be punched first, followed by (LF). It is in this case
only the checksum will not take into account (CR) and (LF). Otherwise, (CR)
is already included in the sum of the next block.

If, on the one hand, the stored part program contains E addresses, but, on the
other, the "E code" option is not included in the system, the E addresses are
taken over into the memory during data in.

In the case of systems with the "E code" option, the "E code" function is acti
vated automatically if, during data in, the E address is found after the file
header in the case of a file with DFS identification, or directly before the end
ofblock character (LF) of the first block in the case of a file without DFS iden
tification.

(DFS, P..., text, RWED) E address (LF) with DFS identification

N1 X... Y... Z... M... S... T... E address (LF) without DFS identification

In the case of a program to be read in without DFS identification, no E ad


dress used in any other way (e.g. auxiliary address) may be programmed di
rectly in front of the endofblock characters!

Special case modulo 999: If the P5508 machine parameter was set to "999",
the checksum "999" applies to the sums of the ASCII values 999, 2*999,
3*999 to n*999!

n . (999) mod 999 ! E999

57
CC 220/320 M
Special functions
Flexible Automation Programming Instructions

Quadrant programming (option)

General
Instead of a radius with sign (radius programming) or the components of the vector
from the arc start to the arc center (center programming), the absolute magnitudes
of these components are specified in the case of this programming mode. With this
option (despite its name) arcs up to 180 can be programmed within one block.
Considering that often only quadrant programming was available for circular inter
polation on earlier NCs, this option is required if earlier programs (e.g. System 5
programs) are to be taken over to the CC 220/320 M.

Activation
The option is activated via the interface signal byte 20.4 (bit 164):
active = high;
inactive = low.
Activation or deactivation is only possible if no program has been selected in the
"automatic" operating mode and no NC block is pending execution in the "MDI"
operating mode.
If quadrant programming is active, no center or radius programming may be used.
If this not observed, the CNC will abort the program with the "INVALID CIRCLE
VALUE" error message.

Function
The I, J or J, K or K, I interpolation parameters (depending on the active interpola
tion plane) represent the distances on the main axes between the arc start point
and the arc center point ( = absolute magnitudes of the components of the AM vec
tor).

Interpolation DISTANCE (Start point ! circle center point)


parameters
I parallel to the X axis
J parallel to the Y axis
K parallel to the Z axis

In the case of "quadrant programming", it is possible to specify two different pa


rameter pairs for one circle segment (max. 180 per block) (refer to figure 1, I1 and
J1 or I2 and J2 interpolation parameters).
The following example illustrates the two programming possibilities for the circle
segment from figure 1. Since the values of the I and J addresses have been
rounded, there might be slight differences between the two paths.

58
CC 220/320 M
Special functions
Flexible Automation Programming Instructions

Figure 1

+Y

160
E N10 G1 X100 Y40
M2 N20 G2 X160 Y160 I100 J25
140 G2
or
120
N10 G1 X100 Y40
N20 G2 X160 Y160 I40 J85
100
J2
80
M1
60
J1
40
A
20

20 40 60 80 100 120 140 160 180 200


+X

I2 I1

NOTES!
The "circular interpolation" preparatory function can be called with G2 in
clockwise, and with G3 in counterclockwise direction.

The end point and the I, J and K interpolation parameters have to be entered
(2 axes must always be programmed).

The end point can be programmed as an absolute value (G90) or an incre


mental value (G91).

The I, J and K interpolation parameters must always be programmed without


sign. In this context, it is irrelevant whether G90 or G91 is active.

59
CC 220/320 M
Special functions
Flexible Automation Programming Instructions

Directiondependent feedrate override (option)

Function
Using this option, the influence of the elliptical laser spot can be taken into account
when cutting workpieces by means of a laser. Since the cutting width depends on
the cutting rate, a constant cutting width can be achieved by providing a suitable
feedrate override irrespective of the cutting direction.

D X = Cutting width with feedrate in Y direction


DX D Y = Cutting width with feedrate in X direction

DY

Laser spot
X

For this purpose, the feedrate deviation (in terms of percent, referred to the pro
grammed feedrate) at which a constant cutting width is obtained has to be deter
mined for each main direction (X, Y, Z).
These 6 values are stored in the NC and, during machining, serve to determine in
termediate values when feed is not performed in one of the main directions. The
intermediate values are generated by linear interpolation.
Since the compensation values are, as a rule, determined only for a specific fee
drate, 10 compensation groups with 6 compensation values each are available. Up
to 10 feedrate values can be compensated in this way. All compensation values are
located in a feedrate compensation table. The W file 999999001 is reserved for this
purpose.

Activation
Upon powerup the feedrate override is not active. The individual compensation
groups are selected via M functions (e.g. M600 M609; assignment to other M
codes presently not in use is possible). They can only be activated if an M function
has been assigned to them. If the feedrate compensation table is missing, the
warning "Feed comp. tab. missing" is output.
In order to switch feedrate override off during the program run, a compensation
group containing only compensation values which are set to zero (zero compensa
tion group) has to be activated.
The "directiondependent feedrate override" is also deactivated by "Control re
set", "Clear logic", M02/30 or program deselection.

5 10
CC 220/320 M
Special functions
Flexible Automation Programming Instructions

Changing the compensation data

To change the compensation data, it is possible to decide, after the selection of the
feedrate override table (W999999001), whether the data of all compensation
groups or only the data of the currently active compensation group are to be
changed. If no compensation group has yet been activated when selecting the "ac
tive compensation group", the message "Table not stored" will be displayed. The
compensation data can also be modified for a selected or running program. For
this purpose, the running program is interrupted by cancelling the IF signal "(NOT)
Feed hold" (E5.5), the compensation data is changed, and the transfer of the com
pensation values is finally initiated with "cyclestart" (E5.4).
By setting "cyclestart" and cancelling "Feed hold", the new compensation data
becomes active in the interrupted block.

NOTES!
The feedrate override only acts with linear interpolation (G1, G73) or for cylin
der surface milling.

It only refers to the first three axes (X, Y, Z).

The first three axes have to be synchronous axes.

In the case of program interruptions caused by "(NOT) Feed hold" it is not


possible to change the active feedrate compensation group via a switching
function by programming an M function.

In controls without PC 600 coupling the "Communication store tables" option


has to be applied.

The option requires the CS table W999999001.

If a program is selected and the W999999001 table does not exist, the axes
traverse without feedrate override. The message "Table not stored" will ap
pear.

5 11
CC 220/320 M
Special functions
Flexible Automation Programming Instructions

5 12
CC 220/320 M
Annex
Flexible Automation Programming Instructions

Machine error and status display (MZA)

Overview
This function permits the display of 224* errors and statuses extending over 7*
screen pages (with appropriate operation), each with 32 pieces of text. The text
items, each with a maximum of 28 characters, are loaded into the control under the
program number P999 999 999.

The text items in the RAM can be edited via the screen editor.
The E or Z numbers have to programmed in ascending order; gaps are allowed.

E identifies errors

Z identified statuses

The size (number) of the areas for errors and statuses can be selected as required.

It is assumed that the machine errors are assigned to the text items according to
priorities.
This ensures that the message in the header line has the highest priority.

An endofblock character has to be programmed ahead of the line with the


DFS identification and after each text bracket (end of line).
M30 and endofblock character have to be programmed at the end of the
file.
In special cases, after consultation with Bosch, the MZA text items can be stored in
two different languages in EPROM.

Another possibility consists in storing the MZA text items in one language in EE
PROM, provided enough memory is still available.
The following example illustrates programming of the MZA file:

*) With word coupling: 2048 machine errors and statuses on a maximum of 64 pages.

61
CC 220/320 M
Annex
Flexible Automation Programming Instructions

Example: Structure of an MZA file

(DFS,P999999999,MZA 17.12.85 NBH150 06.05,RWED)


(Z1,HOME POSITION DOUBLE GRIPPER)
(Z2,HOME POSITION MANIPULATOR)
(Z3,HOME POS.PALLET CHANGER LEFT)
(Z4,HOME POS. PAL. CHANGER RIGHT)
(Z5,CHANGE POSITION MANIPULATOR)
(Z6, )
(Z7,KEYOPER.SWITCH MAGAZ. DOOR)
(Z8,KEYOPER.SWITCH WORKING AREA)
(Z9,KEYOPER.SWITCH END LIMITAT.)
(Z10, )
(Z11,PALLET DOOR NOT CLOSED)
(Z12,PALLET NOT ENABLED)
(Z13, )
(Z14,ACTIVATE CHIP CONVEYOR)
(Z15,NO RESOLVER/FEED MONITORING)
(Z16, )
(Z17, )
(Z18, )
(Z19, )
(Z20, )
(Z21, )
(Z22, )
(Z23, )
(Z24, )
(Z25, )
(Z26, )
(Z27, )
(Z28, )
(Z29, )
(Z30, )
(Z31, )
(Z32, )
(E33,END LIMITATION X+ DIRECTION)
(E34,END LIMITATION X DIRECTION)
(E35,END LIMITATION Y+ DIRECTION)
(E36,END LIMITATION Y DIRECTION)
(E37,END LIMITATION Z+ DIRECTION)
(E38,END LIMITATION Z DIRECTION)
(E39,END LIMITATION X1+DIRECTION)
(E40,END LIMITATION X1DIRECTION)
(E41,END LIMITATION Y1 ACHSE)
(E42,EMERGEN.STOP SYSTEM/BUTTON)
(E43,MAIN AXES BTB2 MISSING)
(E44,AUXILIARY AXES BTB2 MISSING)
(E45,SPINDLE DRIVE BTB MISSING)
(E46, )
(E47,COUPLING X AXIS TRIGGERED)
(E48,COUPLING Z AXIS TRIGGERED)
(E49,OVERLOAD X AXIS)
.

62
CC 220/320 M
Annex
Flexible Automation Programming Instructions

.
.
(E106, )
(E107,)FAULT FREQ.CONVERT.PALL.CHA.)
(E108,PAL.CHAIN A NOT IN HOME POS.)
(E109,PAL.CHAIN B NOT IN HOME POS.)
(E110,PAL.CHAIN A NOT IN CHANGE POS)
(E111,PAL.CHAIN B NOT IN CHANGE POS)
(E112,PALLET A NOT PRESENT)
(E113,PALLET B NOT PRESENT)
(E114,PAL. NOT CLAMPED ON INDEX.TAB)
(E115,INCOR. M CODE FOR PAL.CHANGER)
(E116,B AXIS NOT RAISED)
(E117,B AXIS NOT LOWERED)
(E118, )
(E119, )
(E120,HYDRAULIC OIL LOW)
(E121, )
(E122, )
(E123, )
(E124, )
(E125, )
(E126, )
(E127, )
(E128, )
(E129,TOOL CHANGE POS. Y NOT REACH)
(E130,TOOL CHANGE POS. Z NOT REACH)
(E131, )
(E132,TOOL NUMBER NOT FOUND)
(E133,TOOL CASSETTE NOT PRESENT)
(E134,TOOL POSITION IS OCCUPIED)
(E135,TOOL POSITION IS BARRED)
(E136,COLLISION RADIUS TOO LARGE)
(E137,NO COLLISION RADIUS ENTERED)
(E138, )
(E139, )
(E140,NO EMPTY POSITION IN MAGAZ.)
(E141, )
(E142,MANIPULATOR NOT CLAMPED)
(E143,MANIPULATOR NOT RELEASED)
(E144, )
(E145,MANIPULATOR NOT RAISED 150)
(E146,MANIPULATOR NOT RAISED 8 MM)
(E147,MANIPULATOR NOT LOWERED 150)
(E148,MANIPULATOR NOT LOWERED 8MM)
(E149, )
(E150,DOUBLE GRIPPER NOT RELEASED)
(E151,DOUBLE GRIPPER NOT CLAMPED)
(E152, )
(E153,DOUBLE GRIP.NOT IN HOME POS.)
(E154,DOUBLE GRIP.NOT IN ACCEPT P.)
(E155,DOUBLE GRIP.NOT IN TRANSF.P.)
(E156,DOUBLE GRIP.NOT IN END POSI.)
(E157, )
(E158, )
(E159, )
(E160, )
M30

63
CC 220/320 M
Annex
Flexible Automation Programming Instructions

Example of a part program (P file group)

(DFS,P 31,SECTION LARGE 25.11,RWED)


N10(MSG,PROGRAM SECTION FOR MACHINE MODEL)
N14(MSG,RADIUS PROGRAMMING AND G5)
N15G74X0Y0Z0
N16G92X285Y255Z0
N18X0Y0F4000
/N20G42D1
N25H1Z0F1000
N30X29.467
N50G3R53.333X35.54Y35.020
N60G5X22.873Y71.293
N80X10.640Y100.320
N90X15.440Y153.540
N100G2R93.333X121.553Y188.347
N110G5X145.267Y173.220
N120X154.113Y155.420
N140G1X159.293Y124.113
N160G5X155.007Y114.120
N170X154.113Y107.573
N190G1X167.567Y80.353
N210G5X161.753Y73.493
N220X158.040Y67.267
N230X155.687Y60.567
N250G2R5.333X154.120Y51.667
N270G5X154.060Y44.753
N280X148.993Y27.060
N300G1X127.520Y22.247
N320G5X114.900Y6.647
N340G1Y0
N350G40X80
N355H0Z0
N360M30

Example of a program with CPL commands (P file group)

(DFS,P 9960,CLEAR PALLET A/B 10.08,RWED)


N1(MSG,CLEAR PALLET A OR B)
10 IF IC(232)=TRUE THEN
N20G0G76Z0
N25G76X0
N30M55
40 ENDIF
50 IF IC(233)=TRUE THEN
N60G0G76Z0
N65G76X0
N70M56
80 ENDIF
90 IF (IC(232)=FALSE) AND (IC(233)=FALSE) THEN
100 GOTO N1
110 ENDIF
N150M2

64
CC 220/320 M
Annex
Flexible Automation Programming Instructions

Example of a zero offset table (V file group)

(DFS,V 123,ZO TAB.FOR P123 ,RWED)


G 54 X 10.000 Y 20.000 Z 30.000 B 0.000 V 0.000
G 55 X 10.000 Y20.000 Z 30.000 B 0.000 V 0.000
G 56 X 0.000 Y 0.000 Z 0.000 B 55.000 V100.000
G 57 X 0.000 Y 0.000 Z 0.000 B 0.000 V 0.000
G 58 X 0.000 Y 0.000 Z 0.000 B 0.000 V 0.000
G 59 X 0.000 Y 0.000 Z 0.000 B 0.000 V 0.000
G154 X 0.000 Y 0.000 Z 0.000 B 0.000 V 0.000
G155 X 0.000 Y 0.000 Z 0.000 B 0.000 V 0.000
G156 X 0.000 Y 0.000 Z 0.000 B 0.000 V 0.000
G157 X 0.000 Y 0.000 Z 0.000 B 0.000 V 0.000
G158 X 0.000 Y 0.000 Z 0.000 B 0.000 V 0.000
G159 X 0.000 Y 0.000 Z 0.000 B 0.000 V 0.000
G254 X 0.000 Y 0.000 Z 0.000 B 0.000 V 0.000
G255 X 0.000 Y 0.000 Z 0.000 B 0.000 V 0.000
G256 X 0.000 Y 0.000 Z 0.000 B 0.000 V 0.000
G257 X 0.000 Y 0.000 Z 0.000 B 0.000 V 0.000
G258 X 0.000 Y 0.000 Z 0.000 B 0.000 V 0.000
G259 X 0.000 Y 0.000 Z 0.000 B 0.000 V 0.000
M30

65
CC 220/320 M
Annex
Flexible Automation Programming Instructions

Example of a tool compensation table (K file group)

(DFS,K 123,COMP.TAB.FOR P123 ,RWED)


D 1 X 3.800
D 2 X 0.000
D 3 X 0.000
D 4 X 0.000
D 5 X 0.000
D 6 X 0.000
D 7 X 0.000
D 8 X 0.000
D 9 X 0.000
D 10 X 0.000
D 11 X 0.000
D 12 X 0.000
D 13 X 0.000
D 14 X 0.000
D 15 X 0.000
D 16 X 0.000
D 17 X 0.000
D 18 X 0.000
D 19 X 0.000
D 20 X 0.000
D 21 X 0.000
.
.
D 96 X 0.000
H 1 Z 0.000
.
.
H 79 Z 0.000
H 80 Z 0.000
H 81 Z 0.000
H 82 Z 0.000
H 83 Z 0.000
H 84 Z 0.000
H 85 Z 0.000
H 86 Z 0.000
H 87 Z 0.000
H 88 Z 0.000
H 89 Z 0.000
H 90 Z 0.000
H 91 Z 0.000
H 92 Z 0.000
H 93 Z 0.000
H 94 Z 0.000
H 95 Z 0.000
H 96 Z 0.000
M30

66
CC 220/320 M
Annex
Flexible Automation Programming Instructions

Example:
Structure of a tool table

To enter table values in the CS table, the data can be read in from any data medium
via one of the data interfaces of the CC 220/320 M. The procedure is analogous to
that for reading in definition programs.

Programming
# n T.... X.... Z....

Example:
# 15 T12345678 X100.54 Z20.85

The values for T, X and Z are inserted in column 15.

If only individual values belonging to a specific T number are to be read in (the


group (column) containing this T is not known), data in may also be performed on
the basis of addresses.

Programming
# T.... X.... Z....

NOTE!
For the procedure and programming, please refer to the separate "CS tables" de
scription, P.No. 3875.

67
CC 220/320 M
Annex
Flexible Automation Programming Instructions

Example:
# T50 X20.867 Z123.85

In this case, T number 50 is searched for, and the relevant values X20.867 and
Z123.85 are read in.

To read in the complete contents of a table at one time, an entire loading program is
written.

(DFS,W1)
# *
# 1T101X20.5Z100.45U0.01W0.015L100V95M141A105B1.1
# 2T201X20.5Z100.45U0.01W0.015L100V95M143A105B1.1
# 3T301X20.5Z100.45U0.01W0.015L100V95M143A105B1.1
# 4T401X20.5Z100.45U0.01W0.015L100V95M143A105B1.1
# 5T501X20.5Z100.45U0.01W0.015L100V95M143A105B1.1
# 6T601X20.5Z100.45U0.01W0.015L100V95M143A105B1.1
# 8T102X35.35Z50.5L80V78M141A82B1.1
# 9T202X35.35Z50.5L80V78M143A82B1.1
#10T302X35.35Z50.5L80V78M143A82B1.1
#11T402X35.35Z50.5L80V78M143A82B1.1
#12M200
#13M200
#14M200
#15T5051M520
#16T5050X200Z150L200V190M571
#17T5052M510
#18T6051M520
#19T6050X200Z150L200V190M573
#20T6052M510
#21M200
#22M200
#23M200
M30

68
CC 220/320 M
Annex
Flexible Automation Programming Instructions

Example
Printout of the entire tool table (formatted).
(Partial output is also possible)

(DFS,W 2,TOOL TABLE 2 ,RWED)


#*
# 1 C 1 D 1 T 1 E 1 R 50 M 141 X 1.000 Z10.000
U 1.000 W 1.000
# 2 C 2 D 2 T 2 E 2 R 50 M 141 X 1.000 Z10.000
U 1.000 W 1.000
# 3 C 3 D 3 T 3 E 3 R 50 M 141 X 1.000 Z10.000
U 1.000 W 1.000
# 4 C 4 D 4 T 4 E 4 R 50 M 141 X 1.000 Z10.000
U 1.000 W 1.000
# 5 C 5 D 5 T 5 E 5 R 50 M 141 X 1.000 Z10.000
U 1.000 W 1.000
# 6 C 6 D 6 T 6 E 6 R 50 M 141 X 1.000 Z10.000
U 1.000 W 1.000
# 7 C 7 D 7 T 7 E 7 R 50 M 141 X 1.000 Z10.000
U 1.000 W 1.000
# 8 C 8 D 8 T 8 E 8 R 50 M 141 X 1.000 Z10.000
U 1.000 W 1.000
# 9 C 9 D 9 T 9 E 9 R 50 M 141 X 1.000 Z10.000
U 1.000 W 1.000
# 10 C 10 D 10 T 10 E 10 R 50 M 141 X 1.000 Z10.000
U 1.000 W 1.000
# 11 C 11 D 11 T 11 E 11 R 50 M 141 X 1.000 Z10.000
U 1.000 W 1.000
# 12 C 12 D 12 T 12 E 12 R 50 M 141 X 1.000 Z10.000
U 1.000 W 1.000
# 13 C 13 D 13 T 13 E 13 R 50 M 141 X 1.000 Z10.000
U 1.000 W 1.000
# 14 C 14 D 14 T 14 E 14 R 50 M 141 X 1.000 Z10.000
U 1.000 W 1.000
# 15 C 15 D 15 T 15 E 15 R 50 M 141 X 1.000 Z10.000
U 1.000 W 1.000
# 16 C 16 D 16 T 16 E 16 R 50 M 141 X 1.000 Z10.000
U 1.000 W 1.000
# 17 C 17 D 17 T 17 E 17 R 50 M 141 X 1.000 Z10.000
U 1.000 W 1.000
# 18 C 18 D 18 T 18 E 18 R 50 M 141 X 1.000 Z10.000
U 1.000 W 1.000
# 19 C 19 D 19 T 19 E 19 R 50 M 141 X 1.000 Z10.000
U 1.000 W 1.000
# 20 C 20 D 20 T 20 E 20 R 50 M 141 X 1.000 Z10.000
U 1.000 W 1.000
# 21 C 21 D 21 T 21 E 21 R 50 M 141 X 1.000 Z10.000
U 1.000 W 1.000
# 22 C 22 D 22 T 22 E 22 R 50 M 141 X 1.000 Z10.000
U 1.000 W 1.000
# 23 C 23 D 23 T 23 E 23 R 50 M 141 X 1.000 Z10.000
U 1.000 W 1.000
# 24 C 24 D 24 T 24 E 24 R 50 M 141 X 1.000 Z10.000
U 1.000 W 1.000
# 25 C 25 D 25 T 25 E 25 R 50 M 141 X 1.000 Z10.000

69
CC 220/320 M
Annex
Flexible Automation Programming Instructions

U 1.000 W 1.000
M30
Example
ZO values are entered in the ZO table at the start of the part program.

Programming is to be done as follows.

(DFS,P111,CLAMPING POSITION,,RWED)
1 REM ********* CREATION OF THE ZO TABLE ******
2 FXC(1,54,1)=125:FXC(2,54,1)=180:FXV(3,54,1)=429
3 FXC(1,55,1)=189:FXC(2,55,1)=180:FXV(3,55,1)=327
4 FXC(1,56,1)=291:FXC(2,56,1)=180:FXV(3,56,1)=391 Loading pro-
gram
5 FXC(1,57,1)=0:FXC(2,57,1)=0:FXV(3,57,1)=0
6 FXC(1,58,1)=0:FXC(2,58,1)=0:FXV(3,58,1)=0
7 FXC(1,59,1)=0:FXC(2,59,1)=0:FXV(3,59,1)=0
8 REM *****************************************
N0010 T28 M06
N0020 B0
N0030 G0 G80 G54 X7.1 Y83.8 F132 S1346 T15 M03 M08
N0040 Z56
N0050 G81 51.5,56
N0060 Y8.8
N0070 Y66.2
N0080 Y83.8 Part program
N0090 Y8.8
N0100 Y66.2
N0110 G00 G80 Z56
N0120 M06
.
.
.
N0500 M30

6 10
CC 220/320 M
Annex
Flexible Automation Programming Instructions

Example:
Leadscrew error table (L file group). For leadscrew error compensation, also refer
to the "Diagnosis" manual (P.No. 4228).

(DFS,L 102,LSEC Y AXIS LSEC,RWED)


S10000
Y200000P1
Y190000P2
Y180000P3
Y170000P4
Y160000P5
Y150000P6
Y140000P7
Y130000P8
Y120000P9
Y110000P10
Y100000P10
Y90000P9
Y80000P8
Y70000P7
Y60000P6
Y50000P5
Y40000P4
Y30000P3
Y20000P2
Y10000P1
R0P0
R0N0
Y10000N1
Y20000N2
Y30000N3
Y40000N4
Y50000N5
Y60000N6
Y70000N7
Y80000N8
Y90000N9
Y100000N10
Y110000N10
Y120000N9
Y130000N8
Y140000N7
Y150000N6
Y160000N5
Y170000N4
Y180000N3
Y190000N2
Y200000N1
M30

6 11
CC 220/320 M
Annex
Flexible Automation Programming Instructions

Tables

ASCII character set

Dec Hex ASCII Dec Hex ASCII Dec Hex ASCII Dec Hex ASCII

0 00 NUL 32 20 SP 64 40 @ 96 60
1 01 SOH 33 21 ! 65 41 A 97 61 a
2 02 STX 34 22 " 66 42 B 98 62 b
3 03 ETX 35 23 # 67 43 C 99 63 c
4 04 EOT 36 24 $ 68 44 D 100 64 d
5 05 ENQ 37 25 % 69 45 E 101 65 e
6 06 ACK 38 26 & 70 46 F 102 66 f
7 07 BEL 39 27 71 47 G 103 67 g
8 08 BS 40 28 ( 72 48 H 104 68 h
9 09 HT 41 29 ) 73 49 I 105 69 i
10 0A LF 42 2A * 74 4A J 106 6A j
11 0B VT 43 2B + 75 4B K 107 6B k
12 0C FF 44 2C , 76 4C L 108 6C l
_
13 0D CR 45 2D 77 4D M 109 6D m
14 0E SO 46 2E . 78 4E N 110 6E n
15 0F SI 47 2F / 79 4F O 111 6F o
16 10 DLE 48 30 0 80 50 P 112 70 p
17 11 DC1 49 31 1 81 51 Q 113 71 q
18 12 DC2 50 32 2 82 52 R 114 72 r
19 13 DC3 51 33 3 83 53 S 115 73 s
20 14 DC4 52 34 4 84 54 T 116 74 t
21 15 NAK 53 35 5 85 55 U 117 75 u
22 16 SYN 54 36 6 86 56 V 118 76 v
23 17 ETB 55 37 7 87 57 W 119 77 w
24 18 CAN 56 38 8 88 58 X 120 78 x
25 19 EM 57 39 9 89 59 Y 121 79 y
26 1A SUB 58 3A : 90 5A Z 122 7A z
27 1B ESC 59 3B ; 91 5B [ 123 7B {
28 1C FS 60 3C < 92 5C \ 124 7C I
29 1D GS 61 3D = 93 5D ] 125 7D }
30 1E RS 62 3E > 94 5E "( ) 126 7E ~
31 1F US 63 3F ? 95 5F !( _ ) 127 7F DEL

: Characters which are normally skipped during data in

6 12
CC 220/320 M
Annex
Flexible Automation Programming Instructions

Punched tape code (ISO)

Punched Punched Punched


tape track tape track tape track
87654 321 87654 321 87654 321

. NUL Null (Sprocket holes) o o. oo + o o .oo V


o . o SOH Start of Header o o o.o , oo o .ooo W
o . o STX Start of Text o o.o o oo oo. X
. oo ETX End of Text o o.oo . o oo. o Y
o .o EOT End of Transmission o o o.ooo / o oo. o Z
.o o ENQ Enquiry oo . 0 oo oo. oo [
.oo ACK Positive Acknowledgement o oo . o 1 o oo.o \
o .ooo BEL Bell o oo . o 2 oo oo.o o ]
o o. BS Backspace oo . oo 3 oo oo.oo ^
o oo .o o oo.ooo _
o. o HT Horizontal Tab 4
o. o LF Line Feed oo .o o 5 oo .
o o. oo VT Vertical Tab oo .oo 6 ooo . o a
o.o FF Form Feed o oo .ooo 7 ooo . o b
o o.o o CR Carriage Return o ooo. 8 oo . oo c
o o.oo SO Shift Out ooo. o 9 ooo .o d
o.ooo SI Shift In ooo. o : oo .o o e
o o . DLE Data Link Escape o ooo. oo ; oo .oo f
o . o DC1 XON ooo.o < ooo .ooo g
o . o DC2 Device Control 2 o ooo.o o = ooo o. h
o o . oo DC3 XOFF o ooo.oo > oo o. o i
o .o DC4 Device Control 4 ooo.ooo ? oo o. o j
o o .o o NAK Negative Acknowledgement oo . @ ooo o. oo k
o o .oo SYN Synchronous Idle o . o A oo o.o l
o .ooo ETB End of Transmission Block o . o B ooo o.o o m
oo. CAN Cancel oo . oo C ooo o.oo n
o oo. o EM End of Medium o .o D oo o.ooo o
o oo. o SUB Substitute oo .o o E oooo . p
oo. oo ESC ESCAPE character oo .oo F ooo . o q
o oo.o FS File Separator o .ooo G ooo . o r
oo.o o GS Group Separator o o. H oooo . oo s
oo.oo RS Record Separator oo o. o I ooo .o t
o oo.ooo US Unit Separator oo o. o J oooo .o o u
o o . SP Space o o. oo K oooo .oo v
o . o ! oo o.o L ooo .ooo w
o . o o o.o o M oooo. x
o o . oo # o o.oo N ooooo. o y
o .o $ oo o.ooo O ooooo. o z
o o .o o % o o . P oooo. oo {
o o .oo & oo o . o Q ooooo.o |
o.ooo oo o . o R oooo.o o }
o o. ( o o . oo S oooo.oo ~
o o o. o ) oo o .o T ooooo.ooo DEL
o o o. o * o o .o o U .

87654 321 87654 321 87654 321

6 13
CC 220/320 M
Annex
Flexible Automation Programming Instructions

Punched tape code (EIA)

Punched
tape track
87654 321

o . 0 Numerical value
. o 1 Numerical value
. o 2 Numerical value
o . oo 3 Numerical value
.o 4 Numerical value
o .o o 5 Numerical value
o .oo 6 Numerical value
.ooo 7 Numerical value
o. 8 Numerical value
oo. o 9 Numerical value
oo . o a Addr. angle dim. about x
oo . o b Addr. angle dim. about y
oo . oo c Addr. angle dim. about z
oo .o d Addr. path compensation addr.
ooo .o o e Addr. datain monitoring
ooo .oo f Addr. feedrate / dwell
oo .ooo g Addr. preparatory functions
oo o. h Addr. length compensation
oooo. o i Addr. interpolation parameter
o o. o j Addr. interpolation parameter
o o. o k Addr. interpolation parameter
o . oo l Freely available
o o .o m Addr. machine commands
o .o o n Addr. block number
o .oo o Not in use
o o .ooo p Addr. dwell / subroutine
o oo. q Addr. subroutine
o o. o r Reference plane / radius
oo . o s Addr. spindle speed
o . oo t Addr. tool / compensation
oo .o u Addr. parallel axis
o .o o v Addr. parallel axis
o .oo w Addr. parallel axis
oo .ooo x Addr. main axis
ooo. y Addr. main axis
o o. o z Addr. main axis
o <= End of block
o. oo STOP Start of program
oo . o / Optional block suppression
o . Negative direction of travel
o o.o Comment ON
oooo.o Comment OFF
o o.o *
oo o. oo . Decimal point
Accepted characters which are not processed
ooo . + Positive direction of travel
ooo. oo , Comma
o o.ooo : Colon
ooo.oo TAB Tabulator
oooo.ooo IRR Correction code
o . ZWR Space
. Sprocket holes
o o. o RT Character rebound
o oo. oo % Percent
Carriage return

87654 321

6 14
1070 073 661-102 (93.05) GB HB NC AT/VSP Printed in Germany

Vous aimerez peut-être aussi