Documente Academic
Documente Profesional
Documente Cultură
ELECTRON
dal 1977 Al t a Tecnol ogi a
per l a Macchi na Ut ensi l e
Z32
CNC
Programming guide (Milling Machines)
Document M323
C0 31.01.07
CONTENTS
1.
INTRODUCTION .................................................................................................................................................... 1
2.
INTRODUCTION.................................................................................................................................................... 2
2.1.1 Machine behavior at reset....................................................................................................................... 2
2.1.2 Line number .............................................................................................................................................. 3
2.1.3 The standard ISO line.............................................................................................................................. 3
2.1.4 Comment lines.......................................................................................................................................... 4
2.1.5
G functions (modals and with stop) ............................................................................................................ 4
1.1.
F PARAMETER AND FEED MANAGEMENT (G93 G94 G95) ................................................................................... 5
2.2
S PARAMETER AND SPEED MANAGEMENT (G96 G97) ......................................................................................... 5
2.3
M FUNCTIONS ..................................................................................................................................................... 6
2.4
AUXILIARY FUNCTIONS MA, MB, MC ................................................................................................................ 7
2.5
END OF PROGRAM AND END OF SUBPROGRAM (M2 G26)..................................................................................... 7
2.6
ORIGIN RECALL FUNCTIONS................................................................................................................................ 8
2.7
T PARAMETER AND TOOL CHANGE ................................................................................................................... 10
2.8
TOOL LENGTH AND RADIUS ............................................................................................................................... 11
2.8.1
Tool length and radius modification (DDL DDR) .................................................................................... 11
2.9
CANCELLATION AND SUSPENSION OF ORIGINS AND LENGTHS (G53 G54 G45) .................................................. 12
2.10 WORKING TERN (G25), TOOL AXIS (G43 - G44) AND CONTOURING PLANE ....................................................... 13
2.11 MOVEMENT PROGRAMMING (G0 G1 G2 G3) .................................................................................................... 14
2.11.1 Rapid movement (G0) ........................................................................................................................... 14
2.11.2 Linear interpolation (G1) ....................................................................................................................... 15
2.11.3 Circular interpolation (G2 G3)............................................................................................................... 15
2.11.4 Helical interpolation (G12 G13) ............................................................................................................ 15
2.12 INCREMENTAL COORDINATES PROGRAMMING (G90 G91) ................................................................................. 16
2.13 THREADING AND RIGID TAPPING ....................................................................................................................... 17
2.13.1 Fixed pitch threading (G33) .................................................................................................................. 17
2.13.2 Variable pitch threading (G34, G35) ........................................................................................................ 18
2.13.3 Rigid tapping (G63)................................................................................................................................ 18
2.14 ROTATION, TRANSLATION, MIRRORING, SCALE FACTOR .................................................................................... 20
2.14.1 Machining rotation (IR JR QR) ................................................................................................................ 20
2.14.2 Machining translation (DA DB DC) ......................................................................................................... 20
2.14.3 Mirroring on the working plane (G56 G55)........................................................................................... 21
2.14.4 Scale factor ............................................................................................................................................. 21
2.14.5 Other correction parameters................................................................................................................. 22
2.14.6 Typical transformations examples: ........................................................................................................... 22
2.15 G116 MACHINING ON SLOPING PLANES (ROTO-TRANSLATION) .......................................................................... 23
2.16 OTHER FUNCTIONS ........................................................................................................................................... 25
2.16.1 Dwell (G4 TT..) ....................................................................................................................................... 25
2.16.2 Axes change (G16) ................................................................................................................................ 25
2.16.3 Alive axes management (G28, G29)......................................................................................................... 26
2.16.4 Suspending and resuming Tool change (G38, G39) ................................................................................. 27
2.16.5 Mounted tool reading (G104)................................................................................................................ 27
2.16.6 Real positions reading (G105) .................................................................................................................. 27
2.16.7 Radial programming (G106) ................................................................................................................. 27
2.16.8 Diametrical programming (G107) ............................................................................................................ 28
2.16.9 Axis movement with alarm CNxx12 (G119) ............................................................................................ 28
2.16.10 Working field limits (G123).................................................................................................................... 28
3.
3.2.1
G41/G42 circular approach with final positions and slope (G41/G42 X.. Y.. QF..) .............................. 32
3.2.2
G41 /G42 linear approach without positions (G41/G42) ....................................................................... 33
3.2.3
G41 /G42 linear approach with final positions (G41/G42) .................................................................... 33
3.3
RETRACT FROM PROFILE .................................................................................................................................. 34
3.3.1
G40 circular tangent retract (G40 X.. Y..).............................................................................................. 34
3.3.2
G40 retract without positions (G40)....................................................................................................... 35
3.4
FEED MANAGEMENT WITH RADIUS CORRECTION (G109V, G109U)................................................................... 35
3.5
NULL OR NEGATIVE RADIUS .............................................................................................................................. 36
3.6
CONNECTING RADIUS ON EXTERNAL EDGES (G109S, G109T) ........................................................................... 36
4.
PARAMETER MANAGEMENT............................................................................................................................... 47
5.1.1 Parameter assignment........................................................................................................................... 49
5.1.2
Parameter assignment through a formula .................................................................................................. 49
5.1.3
Axis movement programming with parameters ........................................................................................ 50
5.1.4 System parameters programming........................................................................................................ 50
5.1.5
Axes programming through parameters AA, AB, AC .............................................................................. 51
5.2
PROGRAMMING WITH ADVANCED LINES ( ! ... ! )............................................................................................ 52
5.2.1
Assigning values to parameters and computing expressions..................................................................... 52
5.2.2
Executing jumps without return (!GON..!) ............................................................................................... 52
5.2.3
Executing jumps with return (!GON....!) ................................................................................................ 53
5.2.4
Executing conditioned jumps (!IF .. ; GON.. !) ........................................................................................ 53
5.2.5
Controlling more than one condition on the same advanced line.............................................................. 54
5.2.6 Structuring conditioned jumps .............................................................................................................. 54
5.2.7
Jump to a CMOS subprogram (! GOP.. !)................................................................................................. 55
5.2.8
Jump to a CMOS subprogram with label (! GOP.. N..!) ......................................................................... 55
5.2.9
Jump to a CMOS subprogram with two labels (! GOP.. N.. N..!)......................................................... 56
5.3
CONDITIONING BLOCKS OF PROGRAMS (--IF)..................................................................................................... 56
5.4
PROGRAM BLOCK REPETITION (--DO --LOOP).................................................................................................. 58
5.4.1
Specifying the repetition number (LOOP {N}) ........................................................................................ 58
5.4.2 Repetition condition................................................................................................................................ 58
5.4.3
Anticipated exit condition --DO --LOOP (--EXIT DO)............................................................................ 59
5.5
WRITING CMOS PROGRAMS (--DEFINE P..) .................................................................................................... 60
5.6
WRITING A TEMPORARY SUBPROGRAM SUBTEMP (--DEFINE S..) ................................................................. 60
6.
ii
CLOSED LINES................................................................................................................................................... 95
7.1.1
Line end point (G1 X.. ; G1 Y.. ; G1 X.. Y..) ........................................................................................ 95
7.1.2
Line end coordinate and slope (G1 X..QF.. ; G1 Y..QF..) ..................................................................... 95
7.1.3
Line two coordinates end point and slope (G1 X.. Y.. QF..).................................................................. 96
7.2
OPEN LINES (G1 ; G1 QF..) ............................................................................................................................ 97
7.3
CLOSED CIRCLES .............................................................................................................................................. 98
7.3.1
Circle center and end point (G2/G3 I..J..X..Y..) .................................................................................... 98
7.3.2
Circle end point and radius (G2/G3 X..Y..RA..).................................................................................... 99
7.3.3
Circle center, radius and end slope (G2/G3 I..J..RA..QF..).................................................................. 100
7.3.4
Circle center and end slope (G2/G3 I..J..QF..)..................................................................................... 100
7.3.5
Circle radius and end slope (G2/G3 RA..QF..) .................................................................................... 101
7.3.6
Circle end point (G2/G3 X..Y..)........................................................................................................... 102
7.3.7
Circle center and end arc length (G2/G3 I..J..QA..)............................................................................. 102
7.4
OPEN CIRCLES ................................................................................................................................................ 103
7.4.1
Circle center and radius (G2/G3 I..J..RA..).......................................................................................... 103
7.4.2 Circle center (G2/G3 I..J..)............................................................................................................... 104
7.4.3 Circle radius (G2/G3 RA..)............................................................................................................... 104
7.5
LINE-CIRCLE COMBINATIONS .......................................................................................................................... 105
7.6
AUTOMATIC FILLETS (RR..) ............................................................................................................................ 107
7.7
CHAMFERS ...................................................................................................................................................... 111
8.
iii
8.2
8.3
9.
9.1
9.2
9.3
9.4
9.5
9.6
9.7
10.
10.1
10.2
10.3
10.4
10.5
10.6
10.7
10.8
10.9
10.10
10.11
10.12
10.13
10.14
10.15
10.16
10.17
10.18
10.19
10.20
10.21
10.22
10.23
iv
1.
INTRODUCTION
2.
BASE PROGRAMMING
2.1
Introduction
The base programming Z32 numerical controls follows the indications of ISO directions.
The program for a workpiece (or part-program) is a text file composed by a series of instructions stored in
sequential way.
The ISO lines are composed by a line number (not mandatory) and by a series of elementary instructions.
All geometric transforms, translations, mirroring, rotations, scale factors, etc. are disabled at reset.
All functions and settings related to RTCP (rotating tool centre point) are disabled at reset.
At reset, all high speed settings are restored with the corresponding parameters contained in the machine
setup. Please consult the machine tool builder for further information.
2.2
The S parameter defines the spindle rotational speed and is programmed writing the letter S followed by the
desired speed value (numeric value with a maximum of 9 significant digits). The S function doesnt activate the
spindle rotation, activated through the auxiliary functions M3 or M4.
Programmed after G97 it defines the spindle rotational speed in rpm.
G97 is active after reset and it is thus the normal mode if not otherwise specified.
Programmed after G96 it sets the mode Constant cutting speed". This is a typical functionality of lathes: the
spindle rotational speed is computed in such a way that the cutting speed is equal to the programmed S value
(expressed in m/min), considering the tool distance from the rotation centre of the spindle.
Note on G96: In order to avoid excessive speed when the distance from spindle center is very small, aside
G96 the parameter MS is activated (programmable also before the S value) which sets the maximum spindle
rotational speed (in rpm) allowed. The active MS value is that present at the moment of last programmed S: if
the parameter MS is newly programmed, the limit doesn't change until a new programming of S value.
The tool may jump over the rotation centre: the speed is in every case determined by the absolute value of
the distance from spindle center, while the center crossing is limited by the programmed MS. It is possible to
program:
MS 4000
G96 S100 M3
This programming imposes a cutting speed of 100 m/min.
With a maximum speed limit of 4000 rpm.
2.3
M Functions
The M functions (miscellaneous) are mainly related to the machine tool behavior and their functionality is mostly
defined by the machine tool builder.
All M functions require a machine stop.
The ISO standards indicate the functionality of many M codes: only some M codes are decoded and managed by
the Z32, and only these codes will be discussed.
The numeric value (two integer digits) following the letter M, indicates the programmed M function. All leading
zeros can be omitted (G0 = G00).
ISO M codes
M0 - stop
It stops the program execution; program resuming trough Start pushbutton. This function also stops
spindle and coolants.
M1 conditioned stop
Same behavior as M0, but M1 activity is conditioned by a dedicated logic input: for further details, please
consult the machine tool builder. This function also stops spindle and coolants.
M2 End of program
Exits the control EXECUTION mode and terminates all automatic operations.
M3 Spindle clockwise
Requests a clockwise rotation of the spindle, with the previously programmed S (speed).
M3 Spindle counterclockwise
Requests a counterclockwise rotation of the spindle, with the previously programmed S (speed).
M5 Spindle stop
Requests the spindle stop. It stops also the coolants.
M6 Tool change
Requests the mounting of last programmed T (in the same or preceding blocks) on the spindle. It also
stops spindle and coolants. After the M6 execution, the CNC takes into account the description of the tool
mounted on the spindle, updating accordingly all parameters.
M7 coolant #1 delivery
Requests delivery of coolant #1.
M8 coolant #2 delivery
Requests delivery of coolant #2.
M9 Coolant stop
Requests stop of coolants delivery.
M19 Spindle orientation
Requests the spindle orientation.
This function also stops spindle and coolants.
The machine tool builder can define other M functions for particular usage and purposes of the machine. For
further details, please consult the machine tool builder.
Special M codes
A category of M functions is defined as Special M. Unlike normal M functions, interpreted exclusively by the
machine PLC, every special M code is associated with a service part-program. A typical example of special M is
the M6 for tool changing.
The definition and programming of subprograms associated with special M codes, are activities reserved to the
machine tool builder.
During the execution of the subprogram associated to a special M, the progressive block number counting is
suspended (in block search the special M appears as a single block, not searchable in an intermediate point).
The subprogram associated to the special M may be executed as a single block.
2.4
Besides M auxiliary functions, the Z32 control offers to the machine tool builder three more auxiliary functions
categories (MA, MB, MC) sent to the machine logic.
The MA, MB and MC functions may be programmed with 9 significant digits, before or after the decimal delimiter.
The MA, MB and MC functions provoke the machine stop.
For further details, please consult the machine tool builder.
2.5
2.6
OX1 OY1
G0 X20 Y25
G1 X55
Y40
X20
Y25
Note: The supplementary origins are stored in the CNC CMOS memory.
Depending on the process the origins belong, the files are the following:
Process:
Origin file:
0
126
1
123
2
120
3
117
4
114
5
111
In single process machines, the file containing the origins is the file 126 (the file related to process 0).
The syntax of an origin file is as follows:
:OS
X1=123.4
Y1=-231.5
The file begins with the header :OS which indicates the start of the section specific for the origins
In the following lines, the values of the various origins are stored.
In the example:
The origin number 1 on X axis determines a translation of 123.4 with respect to the base origin.
2.7
The T parameter is devoted to the tool change, together with the M6 function. The digits following the T letter
indicate the tool number to recall.
The T parameter has the purpose to prepare the machine for the tool changing (i.e. to prepare the axes of tool
magazine for the change), while the function M6 starts the actual change.
For further details, please consult the machine tool builder.
Warning: At the moment of tool change all parameters present in the tool table for the desired tool are
recalled and assigned.
The values for tool length (L) and radius (R) are assigned, together with every other parameter stored in the
table. It is thus possible to save in the table also the S and F values (Speed and Feed) related to the
tool interested. In this mode, after tool change, also these values will be assigned.
Note: The tool table is stored in the CNC CMOS memory.
Depending on the process the tool tables belong, the files are the following:
Process:
Tool table:
0
127
1
124
2
121
3
118
4
115
5
112
In single process machines, the file containing the tool descriptions is the file 127 (the file related to process 0).
The syntax of a tool table file is as follows:
T1P127
:TL
T0#0R0L,000
T1#1L10,000R2(CENTER DRILL)
The file starts with the tool actually mounted on the spindle. In the above example, it is the tool number 1,
contained in the file number 127.
The :TL label specifies the start of the section describing the tools.
In the following lines, the descriptions of the various tool are stored.
- The T parameter indicates the tool number
- The # parameter indicates the position of the tool in the tool magazine.
- The various parameters describing the tool are inserted in the line through the parameter name and
its numeric value.
- The line may have a comment inserted between parenthesis.
In the above example:
The tool T1 is positioned at place #1, has a length L10 and radius R2
10
2.8
2.8.1
Through the parameters DDL and DDR it is possible to modify length and radius of the active tool.
To compute the correction related to the tool length, the Z32 numerical control considers the sum between
parameters L and DDL.
The correction set through the parameter DDL is not incremental; to cancel its effect it is necessary to program
DDL0.
Example:
N10 T1M6
N20 L100 (imposes a tool length of 100)
N30 DDL1 (tool correction equals L + DDL, i.e. 101)
N40 DDL0 (cancels DDL, tool correction equals 100)
The correction of tool radius happens through the parameter DDR.
The correction set through the parameter DDR is not incremental; to cancel its effect it is necessary to program
DDR0.
Example:
N10 T1M6
N20 R5 (imposes a tool radius of 5)
N30 DDR0.1 (tool radius equals R + DDR, i.e. 5.1)
N40 DDR0 (cancels DDR, tool radius equals 5)
11
2.9
12
2.10 Working tern (G25), tool axis (G43 - G44) and contouring plane
The function allowing the definition of the machine working tern and the contouring plane is the G25 function.
The G25 code must be followed by three characters representing three axis names defined as continuous on the
machine.
As example: G25XYZ define the working tern composed by the three axes X, Y, Z.
The first two axes of the working tern define the contouring plane (where circular interpolations are allowed). The
third axis is an additional axis coordinated to the first two (may be used for fixed cycles and for other machine
functions).
At power on and after each program start, the working tern defined by the machine tool builder setup is activated.
The axis along which the tool length is considered is defined from G43 (positive correction) or G44 (negative
correction) as shown in the figure:
L
G43Z
G43X
G44X
G25 XYZ
G43Z
X
G25 ZXY
G43Y
X
G25 YZX
G43X
X
The default machine tern is normally set by the machine tool builder, together with the default axis for tool
length correction. This situation is always restored after a reset.
13
It is possible to define a different machine behavior through the setup, setting all G movement functions as NOT
MODAL.
In this case all movement without an explicit G function indication are assumed as programmed in G1 mode.
(behavior with NOT MODAL G movement functions)
F1000
G0 Z100 (G0 movement)
X100 (G1 movement)
Y100 (G1 movement)
G1 X0 (G1 movement)
Y0 (G1 movement)
X10 (G1 movement)
14
G1 X..Y..Z..
X
The velocity in G1 mode is defined through the programmed feed (address F).
Warning: programming only G1 on a line (without positions) is allowed, but it has a special meaning
(OPEN linear move, see the chapter describing the profile programming) and doesnt have the purpose
to prepare for a G1 movement.
Example:
...
N10 G1
N11 X0 Y0
...
not allowed: block 11 issues the error CN3414
2.11.3 Circular interpolation (G2 G3)
I,J
X,Y
G2
I,J
G3
X,Y
X
15
Warning: If a segment shortened or deleted due to the radius correction, contains a movement on
the third axis, this movement will be completely executed together with the next valid movement.
Because the function G12 poses some limitations (slope, radius correction, etc.) it is a good programming practice
to program it only when necessary and disable it (G13) when not.
Example:
G12
G3 X..Y..I..J..Z..
G13
It is not possible to program an helicoids more than one complete turn in a single block. To program more than one
turn, a repeating cycle must be used.
HX.. G91
The parameter HX defines the scale of increment expressed in thousandth of display units.
To get programmed increments in display units (millimeters, inches or degrees) it is necessary to program HX1000
In the normal practice it is common to program:
HX1000 G91
The G91 function is modal and can be deactivated by programming G90.
Y
Example:
80
15
35
10
0
20
0 10
F1000
G0 X10 Y10
(activates incremental programming:)
HX1000 G91
G1 X20
Y35
X30
Y15
(deactivates incremental programming:)
G90
X80 Y80
30
80
16
17
K = initial threading pitch (mm or inches) This parameter can be programmed in the same block of G34/G35, or in
preceding blocks.
Warning: if the K parameter is newly programmed in subsequent blocks, when G34/G35 is active, an
abrupt pitch variation is encountered.
I = pitch increment expressed in mm/round or in/round. This parameter can only be programmed in the same line of
G34/G35. The parameter is always positive and assumed as absolute value if programmed as a negative
number.
In G34 mode, it expresses the increment in mm or inches imposed on pitch K at every round.
In G35 mode, it expresses the decrement in mm or inches imposed on pitch K at every round.
Warning: if the continuous decrement of K brings to a negative value, the alarm CN1F13 will be issued
(in real time).
Threading movements with a fixed or variable pitch may be executed in sequence: the threading pitch will
continuously vary or remain constant, or it will have a discontinuity, depending on the threading function and
parameters programmed.
18
spindle inversion. During the inversion time, the Z axis, still connected to the spindle,
continues to advance overriding the -50 programmed position, in order not to lose the
thread: if the axis go beyond its final point of an excessive quantity (setup definable,
normally 10 mm), the alarm CN0713 will be issued. It is however necessary to leave
sufficient space at hole end.
return, still with Z axis connected to the spindle, up to starting position (Z10)
positioning of Z axis to starting position (Z10). Because the axis requires a braking space,
the synchronization Z axis/spindle is broken at a certain distance from the end point: the
programmer is in charge to leave an adequate safety space.
N12: spindle inversion (returns in M3 direction) and rapid movement up to X-10
N13: another tapping cycle. Please note that the spindle must have completed its inversion before
the start of N13. If the spindle inversion is not terminated, the initial sign will be erroneously acquired,
provoking the axis to go rearward when the spindle has finally inverted, up to the issuing of alarm
CN0713.
It is possible to repeat an already executed thread (only if the tap has not been turned in the spindle!)
because the movement start is synchronized with the spindle zero crossing.
- During the G63 the following are not active:
axes override
spindle override
feed-hold
- In order to use the rigid tapping function, the machine must be equipped with a transducer on the spindle and
the spindle inversion must be properly managed in the machine logic.
19
2.14
With these functions it is possible to translate, rotate, mirror and scale a workpiece program.
Please note that all these transformations are made on programmed positions, instead of measured positions.
2.14.1 Machining rotation (IR JR QR)
Through the rotation functions it is possible to rotate the machining of an angle QR, around a point of coordinates
IR and JR.
(IR, JR)
JR
IR
DA10 DB14
14
10
In order to execute a roto-translation it is necessary to combine translations and rotations:
20
DA100 DB50
IR0 JR0 QR45
QR
DB
DA
2.14.3 Mirroring on the working plane (G56 G55)
The programmed figure is transformed in the mirror figure with respect to the mirroring axis defined by the point of
coordinates (IS, JS) and by the slope QS.
Y
QS
(IS, JS)
JS
X
IS
Y
The scale factors are automatically applied after programming the
parameters KP and KT.
KP = 2
21
Warning: Unlike all other translation, rotation, mirroring and scale factors, the additive and multiplicative
parameters on a single axis cannot be used in programs containing circular interpolations.
Combined mirroring with respect to both first and second axis of working plane (axes X and Y in
G25XYZ)
In this case it is necessary to use a 180 degrees rotation with respect to zero point:
IR0 JR0 QR180
22
Warning:
In order to avoid erroneous movements, the first positioning after the G116 programming, containing a
reference system translation, must contain the positions of all three axes with logical numbers 0, 1, 2
(normally X, Y, Z).
Warning: The G116 function affects only the first three continuous axes defined for the machine, i.e. on the
axes with logical number 0, 1 and 2. In all examples shown, the G116 operates properly only if axis X has
the logical number 0, Y the logical number 1 and Z the logical number 2. Please consult the machine tool
builder for further details.
23
Example:
Usage of G116 to machine the surfaces of a parallelepiped with an associative composition of the rotations.
30
40
30
Y
Y
Z
30
30
30
40
X
Y
Y
Z
X
Z
40
30
40
30
1) Vertical head:
Standard configuration
G116KA0
2) Right side face:
G116 X40 Z-30 K90
G116 I90
3) Rear face:
G116 Y30 Z-30 I-90
G116 K180
4) Left side face:
G116 X-40 Z-30 K-90
G116 I90
5) Front face:
G116 Y-30 Z-30 I90
24
G16
...
...
0 1 2 3 ...
25
The function G28 (modal, with stop) asks the CNC to maintain under control the axis also when it is not
interested by the current move (alive axis).
After G28 the axis name (i.e. X) desired as alive must be specified, for instance:
G28X
Only one axis can be specified, choosing among those defined as continuous in the machine setup.
If more than one axis are desired as alive axes, it is possible to program G28 more than once, in the same
or subsequent lines. Example:
G28Z G28A
asks to maintain always under control the axes Z and A.
Some axes (defined in the machine setup) may be defined as alive since power on: at every program start
(or after a reset) the alive/not alive axes situation defined in the machine setup is restored.
Note: Depending on machine setup, it is possible to define the axes as alive at reset. With this setup
all axes programmed as alive (with G28) or abandoned (with G29) restore their alive/not alive axes
state also after a reset or next power on.
It is allowed, without effect, the request to activate one already alive axis.
The function G29 (modal, with stop) asks the CNC to abandon the specified axis.
After G29 the axis name (i.e. X) to be abandoned must be specified, for instance:
G29 X
Only one axis can be specified, choosing among those defined as continuous in the machine setup.
If more than one axis have to be abandoned, it is possible to program G29 more than once, in the same or
subsequent lines. Example:
G29X G29A
asks the CNC to abandon the axes X and A.
It is allowed, without effect, the request to deactivate one already not alive axis.
Note on programming not alive axes
If the part-program contains a movement for a not alive axis, the axis is automatically activated,
moved and then abandoned, but only if its physical position doesnt coincide with the programmed
one.
The CNC considers the physical position coincident with the programmed position if the error is
less than the positioning error defined in the setup (normally some hundredth of millimeter).
Some problem may arise if the error is very close to the tolerance. If the measured position of the
not alive axis (which shouldnt move) changes a little, bringing the error over the setup threshold,
an alarm CN1513 may be issued.
The measured position may oscillate by some transducer count, still remaining inside the
positioning threshold; the threshold override may thus happen if the position is already close to the
tolerance limit. Typical examples are:
a turntable (or other axis) during the mechanical lock may have a little movement bringing the axis
very close to the maximum setup error allowed
programming a little movement for a not alive axis, corresponding to a space very close to the
positioning threshold
In these cases it is recommended to not use the automatic activation of a not alive axis, but to
force it alive or not, directly with part-program instructions.
26
N10 G39
N12 T10 M6 (MANUALLY CHANGE WITH MILL R=10)
N13 G38
The function G39 is modal and it is deactivated by G38, which restores the automatic execution of tool change.
The function G38 is activated at reset.
N10 T101 M6
N11 G104
After execution of line N11, HX contains the value 101 (the tool actually mounted on the spindle is T101). If the
management for replacement tools is installed, and the tool actually mounted is a replacement for T101, the
parameter HX will contain the T code related to the tool actually mounted.
27
G107
G0 X10
G106
X10
G107 X10
(X axis
(radial
(X axis
(X axis
28
Sets the positive limits on the continuous axes X.., Y.. and activates the positive limits.
G123 KA-1 [X...] [Y...]
Sets the negative limits on axes X.., Y.. and activates the negative limits.
The limits are programmed by the name of continuous axis where the limits have to be applied.
The programmed limits are always referred to the active origin.
The limits are applied only on continuous axes explicitly programmed with G123KA1 or G123KA-1,
the other remaining unchanged.
At reset all limits are disabled.
Only the positive or negative limit can be active, or they may be both active.
On each axis : (positive limit) > (negative limit)
If the axes are already outside the limits when G123 KA1 or G123 KA-1 is programmed, the alarm
CN5514 will be issued
Function modes
G123 KA3
Activates alarm mode: if one of the programmed positions is outside the working field, the alarm
CN5614 is issued.
G123 KA4
Restores normal mode, the positions are limited by working field. This is the default mode, the
mode normally active if not otherwise programmed. If a movement outside the limits is
programmed, the movement stops when it reaches the limit set, without generating any alarm.
G123 KA5
Enables stop mode: if one or more programmed positions are outside working field, all movements
are stopped and resumed only when all programmed positions lie inside working field. When the
programmed positions re-enter inside the working field, all axes previously blocked are considered
as programmed.
Warning: if during the stop phase more than five axes were moving, when the
movement is restored, more than five axes are considered as programmed, bringing
to the alarm CN2C14 (incompatible parameters).
29
3.
When a contouring profile is programmed for the numerical control, the radius of tool executing the profile is
normally not known: the tool radius may vary due to many reasons (availability, sharpening, different tools used for
roughing and finishing, etc.).
The Z32 CNC allows to program directly the finished workpiece profile, and automatically executes all necessary
profile modifications as a function of the effective tool radius.
It is thus clear that the tool center path (i.e. the machine axes motion) is different from that necessary to describe
the programmed profile with a speckled tool (R=0).
In the figure, the tool center path (AG) corresponding to the programmed profile (16) is shown.
30
3.1
G3 I0 J0 RA85 KA1
G1 X-80 Y60 QF180
Y50
G1 QF0 KA1
G3 I0 J0 RA85
G1 X-45 Y40 QF0
Y30
X-55
Y20
X-45
Y5
G1 G2 I-30 J0 RA5 QF-135
G1
X-20 Y-15 QF0
Y20 RR-5
G1 QF0 KA1
G3 I0 J15 RA6 KA1
G1 X25 Y20 QF0
G1 QF90
G2 I25 J40 X10 Y40
G40 X0 Y40
M2
If a profile cannot be executed with tool radius compensation, the INCOMPATIBLE PROFILE error may be issued.
In these cases it is possible to program the function G109R, which forces the generation of a fillet also around
internal edges (provoking a kind of knot) with the purpose to display the element generating the problem, and
eliminating the issuing of INCOMPATIBLE PROFILE error.
G109R is canceled by G109N.
Please pay attention that the activation of G109R may provoke the tool to enter in the programmed profile, and
long fillets may remain around internal edges in case of complex profiles.
Warning: usually G109R is programmed only to understand the situation provoking the INCOMPATIBLE
PROFILE error with tool radius correction. It is not a function to be used in normal programming.
31
3.2
Approach to profile
To initiate the mode RADIUS CORRECTION on the Z32 CNC, it is necessary to program G41 (workpiece on the
right) or G42 (workpiece on the left).
After the function G41/G42, all programmed positions are no more interpreted as tool center positions, but as
positions of the workpiece profile.
3.2.1 G41/G42 circular approach with final positions and slope (G41/G42 X.. Y.. QF..)
Together with the preparatory function G41 (start of radius correction with workpiece on the right) or G42 (start of
radius correction with workpiece on the left) are programmed the following:
the two final positions of the approach movement (initial profile point)
final slope of circular arc
The final slope is programmed as described in the chapter for Geometry.
The approach to the profile is done through a circular arc bringing the tool to skim the programmed point, ready to
execute an element starting from the programmed point with a QF slope.
Length and curvature of the circular arc are automatically computed by the CNC, depending on the start point of
the approaching element.
The examples below show the tool movement with different tangent profile approaches
Y
40
...
G0 X0 Y40
G41 X0 Y20 QF0
G1 X50
...
...
G0 X-20 Y30
G41 X0 Y20 QF0
G1 X50
...
30
20
20
-20
...
G0 X-45 Y-15
G41 X-30 Y0 QF90
G2 I0 J0 X0 Y30
G1 X50
...
...
G0 X-50 Y0
G41 X-30 Y0 QF90
G2 I0 J0 X0 Y30
G1 X50
...
-15
R30
R30
-45
-50
In some cases it may be necessary to compute the final slope of the approaching movement:
Y
20
30
30
R40
R40
-20
...
G0 X<-20*CS30> Y<20*SN30>
G42 X<-40*CS30> Y<40*SN30> QF60
G2 I0 J0 X40 Y0
G1 Y-20
...
...
G0 X-20 Y0
G42 X<-40*CS30> Y<40*SN30> QF60
G2 I0 J0 X40 Y0
G1 Y-20
...
32
The advantage of this profile approach, if the slope is correctly programmed, is that the tool enters in contact with
the profile along the tangent, making a minimum mark on the workpiece.
A disadvantage may arise when the QF computing is difficult.
3.2.2 G41 /G42 linear approach without positions (G41/G42)
It is possible to program a sequence like this:
...
N20 G41
(without any position)
N21 G1 X10 Y4 (G1 may be omitted, both positions are mandatory)
N22 ...
The block N21 specifies the first point of profile to be reached with the radius correction.
The block N22 contains the first movement on the profile, with the radius correction; the movement can be chosen
among those valid for the Z32 geometry, starting from the point of N21.
The approaching movement will bring the tool tangent to the profile on the point programmed in N21 (the tool
center will be on the vertical of the profile point of N21, with an offset equal to the radius).
After programming G41/G42 without positions, a profile element in G1, G2 or G3 is normally programmed.
...
G0 X... Y...
G41
G1 X-40 Y10
X0 Y30
X50
...
...
G0 X... Y...
G41
G1 X<-40*CS30> Y<40*SN30>
G2 I0 J0 X0 Y40
G1 X50
...
Y
40
30
R40
10
0
30
-40
Y
40
...
G0 X0 Y40
G41
G1 X0 Y0
X50
...
Y
40
...
G0 X0 Y40
G41 X0 Y20
X50
...
20
20
Please note that with the G41/G42 approach with final positions, the approaching element is considered at all
effects a profile element. Please note also that, differently from the approach without positions, this kind of
approach may left not machined zones on the profile.
33
3.3
The retract from the profile is analogous to the profile approach: also in this case the CNC changes the meaning of
the programmed positions, but in inverted direction; it interprets no more the positions as profile positions, but as
tool center positions.
The G function to be used is G40.
In the first movement block following that containing G40, it is necessary to program a movement type (G1, G2 or
G3).
Y
40
G41 ...
...
...
G1 X0 Y20
G40 X0 Y40
...
G41 ...
...
...
G1 X0 Y20
G40 X20 Y30
...
30
20
20
G41 ...
...
...
G2 I0 J0 X30 Y0
G40 X60 Y0
...
20
G41 ...
...
...
G2 I0 J0 X30 Y0
G40 X50 Y-15
...
R30
R30
-15
0
60
34
50
G41 ...
...
...
G2 I0 J0 X30 Y0
G40
X... Y...
...
30
10
R30
40
The block programmed after G40 without positions, may have any movement type G0, G1, G2, or G3.
If the end of radius correction G40 is programmed together with G0 and a position, for instance:
N30 G40 G0 Z20
the programming alarm CN1D14 will be issued.
3.4
The programmed FEED is normally the velocity desired by the programmer for the profile machining. Normally the
CNC maintains constant the tool center velocity (if compatible with the dynamic limits imposed by allowed
accelerations), equal to the programmed F.
With radius correction the programmer normally desires to maintain constant the profile machining velocity,
corresponding to that of tool periphery, and not that of the center.
On linear elements, the velocities of tool center and tool periphery are the same, while differences arise with
circular elements.
The contouring velocity of tool periphery in internal arcs is higher that that of tool center, while it is smaller in
external arcs.
Normally, with radius correction, the Z32 CNC tries to maintain constant the contouring velocity of tool periphery,
instead of that of tool center: in every case are EXCLUDED velocity increments with respect to the tool center
programmed feed.
If it is instead desired to maintain the tool center velocity equal to the programmed feed, thus deactivating the
control on tool periphery velocity, it is necessary to program G109U.
The function G109V restores the control on tool periphery velocity with radius correction. The G109V mode is
active at reset, thus being the default setting.
35
3.5
Null or negative tool radius are allowed: in case of null radius, exactly the programmed profile will be executed,
while a negative radius is equivalent to exchange the meaning between G41 and G42.
A negative radius may be useful when the profile has already been computed (i.e. by an automatic programming
system) for the typical tool radius, and the operator has added the tool radius compensation directly on the
machine to compensate possible wearing or difference in the actual tool used.
Please, pay attention that the radius considered by the Z32 is fictitious, losing the automatic adaptation of tool
center velocity and the constancy of tool periphery velocity: in the blocks where this adaptation is required, the
FEED must be programmed anew.
Warning: in presence if very small tool radius (less than about 3 micron) the machined profile may have a
maximum error of about 2 micron, normally well supported in most applications, because these errors are
lower than other errors influencing the final result (following errors, temperature, tool geometry, etc.). If
this error entity cannot be supported, it is recommended not to program very small tool radius; it is better
to program the physical tool radius and not its correction with respect to the theoretical radius.
3.6
G109T
G109S
Warning: In order to avoid large elongations of programmed elements, the G109S mode cancels only the external
fillets below 91 degrees.
G109S
36
4.
4.1
The function G117 manages spindle heads mounted on rotating axes. The head may rotate around a single axis
(mono-rotating head) or around two cascaded axes, the leading and the following (bi-rotating head).
G117 computes the tool displacement generated by head rotations.
G117 can be used in two modes:
4.1.1
The static G117 generates offsets (similar to origins) added to the displayed positions of linear axes (XYZ), without
inducing any movement on the axes.
The static G117 is used, for example, in three axes machining with fixed slant head. When the static G117 is
activated (by G117KA2), the linear axes doesnt move, but their displayed positions change as a function of the
rotating axes positions.
Warning: When one rotating axis is moved with static G117 active, the connected linear axes dont
move, nor change the displayed positions. If, after moving the rotating axes, an updating of the
correction due to head slant is desired, it is necessary to program again the static G117 with G117KA2.
The syntax of static G117 is as follows:
G117 KA2 [RA..] [I.. J.. K..]
RA: not programmed (or RA0) activates spindle parameters set 0 (in the machine setup, up to three parameter sets
may be inserted for mono/bi-rotating spindle heads; the RA parameter selects the set used)
RA1 spindle parameters set 1 is activated
RA2 spindle parameters set 2 is activated
I, J, K set the point around which the rotation is made. These values are added to the distance between spindle
nose and tool tip, along the three linear axes (XYZ). Their computing must be done by thinking to the
machine when the rotating axes are all on their zero point
Sample programming for G117KA2 mono-rotating (rotating axis B). The linear axes where G117 acts are X and Z:
G0X0Y0Z0
G0B30
(tilts the heads for 30 degrees without moving the linear axes)
G117KA2
(computes the offsets along X and Z due to head slant, adding them to displayed positions)
G117KA0
deactivation of static G117
The G117 KA2 doesnt rotate the working plane. To activate the working plane rotation, it is necessary to combine
the usage of G117 and G116.
37
It is possible to combine the functions G116 and G117 in order to machine on planes with any inclination with a
slanted head. For this purpose it is very useful to program G116 KA2 which determines the rotation to be assigned
to the machining, starting from the angles of rotating head when G117 is active.
Warning: The function G116 KA2 is only available if the G117 is defined as generalized in machine setup.
Please consult the machine tool builder for further information.
The example below supposes to have a bi-rotating head with axis B (following) and C (leading).
30
40
30
Z
Y
Y
Z
30
30
30
40
X
Y
Y
Z
40
30
40
30
1) Vertical head:
G0 B0 C0
2) Right side face:
G0 B90 C0
G117 KA2
G116 X40 Z-30 KA2
3) Rear face:
G0 B90 C90
G117 KA2
G116 Y30 Z-30 KA2
4) Left side face:
G0 B90 C180
G117 KA2
G116 X-40 Z-30 KA2
5) Front face:
G0 B90 C270
G117 KA2
G116 Y-30 Z-30 KA2
Z
C+
Z
B+
X
Y
38
4.1.2
The dynamic G117 maintains still the tool with respect to workpiece; in this case the head rotation induces
movements on the linear axes (XYZ).
The dynamic G117 function may be used, for example, in 4 or 5 axes machining programs generated by CAM
systems. The linear axes (XYZ) displayed positions are referred to the programmed positions and not to those
reached due to head rotation.
When the dynamic G117 is active, by programming the movement of a rotating axis, also the linear axes will be
moved in order to maintain the contact point with the workpiece.
Movements of both rotating and linear axes together are allowed.
Programming syntax of dynamic G117:
G117 [KA1] [RA..] [I.. J.. K..]
Warning: If the parameter KA is not programmed, it is assumed the default activation of G117 KA1
(dynamic G117)
RA: not programmed (or RA0) activates spindle parameters set 0 (in the machine setup, up to three parameter sets
may be inserted for mono/bi-rotating spindle heads; the RA parameter selects the set used)
RA1 spindle parameters set 1 is activated
RA2 spindle parameters set 2 is activated
I, J, K set the point around which the rotation is made. These values are added to the distance between spindle
nose and tool tip, along the three linear axes (XYZ). Their computing must be done by thinking the machine
when the rotating axes are all on their zero point.
4.1.3
G117 usage
G117 deactivation
The function G117 (static and dynamic) is deactivated by:
G117 KA0
I,J and K parameters in G117
The RTCP-head system, activated by G117, allows the head rotation by maintaining still the virtual tool tip.
In case of spherical tools, what is mostly wanted is to maintain still not the tool tip, but instead the tool center,
displaced by the tool radius.
It is possible to program, at the moment of G117 activation, a modification to the length of rotating components by
means of the three parameters I J K, which act correspondingly on the X Y and Z axes.
The values of parameters I J and K are referred to the condition of rotating axes in their zero position.
For example, on a mono-rotating vertical head (the tool is along Z when the rotating axis is at its zero), the
programming of G117 K10 is equivalent to shorten the tool by 10 mm.
The I J K programming is optional: if one or more of these parameters is not programmed, the length of the rotating
arm along the corresponding axis remain unchanged.
Example: activation of dynamic G117 with tool shortening:
G117 K10
Z
X
39
Warning:
- The reset cancels both static and dynamic G117.
- The static G117 is incompatible with dynamic G117. By programming G117 while G117KA2 is active, or
G117KA2 while G117 is active, an alarm CN2C14 (incompatible parameters) will be issued
- It is not allowed to change origin on the following/leading rotating axes when the dynamic G117 is active.
The origins may be modified only if G117 is not active,
- G105 doesnt function if G117, both static and dynamic, is active
- The G117 is non compatible with permanent formulas or copying movements (G111).
- The dynamic G117 is not compatible with G43/G44/G45, otherwise the alarm CN5B14 is generated.
- G53 cancels G117KA2
- By programming G117KA2 or G117 when G53 is active issues alarm CN3914 (formulas + G53/G54)
- The G54, which cancels G53, doesnt restore a static G117 possibly active before the G53: G117KA2
must be newly programmed to restore it.
IMPORTANT NOTE ON RTCP: When the RTCP functions (G116 G117 G118 G122) are activated, it is
necessary that all three linear axes (normally X Y Z) interested by the RTCP transformations are all alive,
otherwise the alarm CN7D14 (RTCP + not alive axis) will be issued. The same alarm is issued if a request to
abandon (G29) one linear axis interested by the RTCP is made when a RTCP function is active.
In order to avoid this kind of alarm, all linear axes interested by the RTCP must be alive axes
4.1.4
The G124 allows to activate handwheels on the rotating axes related to G117, while G117 is active.
The purpose is to allow the manual movement of the machine head during workpiece machining in auto or
semiauto.
While G124 is active, it is not allowed to program movements for the rotating axes connected to G117 (rotating axis
for a mono-rotating head, leading/following axes for a bi-rotating head).
G124 programming
Syntax:
G124 KA1 activates the handwheels on rotating axes connected to G117; KA1 not necessary
G124 KA0 deactivates G124
Rules and restrictions for G124
- After power on and at reset, G124 is disabled
- The programming of G124 has effect only if G117 is active.
- By programming G124 when G117 is not active has no effect, without issuing any alarm.
- The two activations: G124 or G124KA1 are equivalent
- If G117 is deactivated when G124 is active, also G124 is immediately deactivated.
- If a rotating axis connected to G117 is programmed while G124 is active, the alarm message CN5814
G124+ROTATING AXIS OF G117 is issued
The only way to move the rotating axes connected to G117, while G124 is active, is to use the related
handwheels.
Deactivation
By programming G124KA0 the handwheels connected to the rotating axes of G117 are disabled and these axes
may be newly programmed.
40
4.2
The function G118 manages turntables. The turntable may rotate around a single axis (mono-rotating table) or
around two cascaded axes, the leading and the following (bi-rotating table).
G118 computes the tool center displacement generated by table rotations.
G118 can be used in two modes:
4.2.1 G118 simple
Manages the turntable rotation, but doesnt rotate the reference system.
This management mode is useful when the table has the purpose to orient the workpiece, but no machining is done
when the table moves.
When a table axis is moved, the linear axes are moved together with the table in order to maintain constant the
contact point between tool and workpiece.
The syntax of G118 is as follows:
During table motion, the simple G118 maintain the position of tool tip relative to workpiece. Substantially, during the
motion of rotating axes, the distance between tool tip and workpiece is maintained constant.
Warning: with the simple G118 it is NOT possible to program coordinated movements between table
axes and linear axes moving together. It is necessary at first to position the table by moving only the
rotating axes, and then to program the machining executed by the linear axes.
41
Z
K
A normal usage of I, J and K parameters is that to refer the dragged point not at tool tip, but to the center of
spherical sector of the tool, as already discussed about G117.
42
The difference between the simple G118 and G118 HR1 is that in the latter case a movement of rotating axes
provokes also a rotation of the reference system used for the programmed positions of part-program.
The example below clarify the behavior: supposing the rotating axis is C and the axis aligned with the tool is Z:
43
Y
Y'
G118C
G118C HR1
X'
4
5
3
1
4
5
2
X
G0 X100 Y0
G118C
C30 (1)
G1 X200 Y0 (2)
Y50 (3)
X100 (4)
Y0 (5)
2
1
G0 X100 Y0
G118C HR1
C30 (1)
G1 X200 Y0 (2)
Y50 (3)
X100 (4)
Y0 (5)
The simple G118 may be considered as an origin change: a movement of rotating axes provokes a translation of
workpiece origin.
G118 HR1 has a different behavior.
The programmed positions are referred to the machining desired on the workpiece. On this machining it is possible
to program rotating axes movement, without causing a different axes path on the workpiece.
4.2.3
G118 usage
G118 deactivation
G118 is deactivated by the instruction:
G118E
44
4.3
G122 deactivation
To deactivate the G122 correction, program the following:
G122 KA0
45
4.4
The function G131 allows to maintain constant the relative velocity between tool and workpiece with RTCP
motions.
G131 is a modal function.
This feature allows to execute the relative motion between workpiece and tool tip with the programmed F velocity,
when the RTCP is active; the velocity to be maintained constant (equal to the programmed F) is that relative to the
programmed movements of the axes XYZ only, without taking into account the programmed motion of rotating axes
and dragging motions induced on the linear axes from the rotating axes movement.
The general format for G131 activation is the following:
G131 I
The I parameter programmed in the same line as G131 expresses the maximum velocity allowed for the rotating
axes interested by the movement. If this parameter is not programmed, the rapid velocity will be assumed.
When G131 is active, the CNC maintains the relative velocity between tool and workpiece equal to the
programmed F value, with the following restrictions:
-
No linear axis interested by the movement may exceed its maximum speed. If one or more axes is
requested to move at a velocity exceeding its rapid velocity, due to the effects of dragging motions
induced by the RTCP, the movement will be executed at a lower velocity, to respect the limitations
of all interested axes.
No rotating axis connected to the RTCP may exceed its rapid velocity, or the velocity expressed by
I parameter. For example, on blocks programmed with a null linear movements, the rotating axes
will be moved with the maximum allowed velocity (I parameter or rapid).
46
5.
5.1
PARAMETRIC PROGRAMMING
Parameter management
Literal parameters:
They are composed by a combination of one or more alphabetic characters.
The names of literal parameters cannot contain:
- space (BLANK) characters
- NUMERICAL characters
- the characters ! $ % ( ) * + , - . / ; < = >
- the first character cannot be one of the following: G, N, O
Lower case characters cannot be used.
SYSTEM PARAMETERS:
Some parameters have a special meaning in Z32 programming, and they cannot be used for purposes
different to those already assigned. These parameters, defines as system parameters, are:
AA
AB
AC
AE
AM
AN
AP
AU
BM
BN
BP
CM
DA
DB
DC
DM
F
HR
HT
HX
HY
I
IR
IS
J
JR
JS
K
KA
KD
47
KG
KM
KP
KT
L
LX
LZ
M
MA
MB
MC
MS
P
QA
QF
QR
QS
R
RA
RB
RR
S
T
TA
TB
TT
#
#A - #Q
D.ELECTRON may define further parameters in the future, to enhance the Z32 software features.
AXES NAMES:
The axes names are always defined with a single letter, by choosing among the following:
A B C D H P Q U V W X Y Z
They must be defined in the machine setup.
USER PARAMETERS
The user is allowed to define up to 60 literal parameters in a program for the purpose of parametric
programming.
The following combinations are not allowed:
RQ SN CS AT
PI
PC CP
IF
EB
It is common to use as user parameters for parametric programming, the parameters composed by the
letter H followed by a second letter, for instance HA, HB, HC, etc.
48
PAR[] parameters
The PAR parameters are composed by a vector of 513 parameters, numbered from PAR[0] to PAR[512].
The parameter number may be an expression result, for example:
HA10 HB5
PAR[6]30
PAR[HA + PAR[HB + 1]]
is equivalent to:
PAR[10+PAR[6]]
than means:
PAR[40]
The usage of PAR[] parameters may be a substitute for literal user parameters in all situations.
Furthermore, these parameters are not subject to any restriction on the maximum number of parameters
allowed to be used.
PAL[] parameters
Same usage notes as for the array PAR[].
The PAL parameters are composed by a vector of 513 parameters, numbered from PAL[0] to PAL[512].
These parameters contain only INTEGER numbers, normally used for the information exchange between
PLC and part-program.
The values from PAL[256] to PAL[512] are read only.
The values from PAL[0] to PAL[255] may be written by the part-program. When a non integer number is
assigned to a PAL[] parameter, the number is rounded to the nearest integer value.
5.1.1
Parameter assignment
The assignment of a numeric value to a parameter is made through a programming very similar to that for an axis
movement.
For example, to assign the value 100 to the parameter HA, it is possible to write:
HA100
or, to assign the value 1 to the parameter PAR[10], it is possible to write:
PAR[10]1
5.1.2
It is possible to program mathematical expression whose result is a function of numeric values or other parameters.
Mathematical operators with a single operand:
SN(sine of an angle in degrees)
CS(cosine of an angle in degrees)
TAN(tangent of an angle in degrees)
AT (arcotangent in degrees)
RQ (square root)
ABS (absolute value)
INT (truncated integer value)
NEI (rounded integer value)
- (sign change)
Mathematical operators with two operands:
+ addition
- subtraction
* multiplication
/ division
49
To assign an expression result to a parameter, the lower than sign < and higher than sign > (acute parenthesis)
are used to indicate the beginning and the end of the expression.
Inside the expression it is possible to use the parenthesis ( and ).
For example, to assign the value HB+1 to the parameter HA, it is possible to write:
HA< HB + 1 >
or to assign the square root value of parameter HC to the parameter PAR[10]:
PAR[10]< RQ(HC) >
Through the use of parenthesis it is possible also to program complex expressions.
HA< HB + (HC+HD/2)/(SN(HE) >
5.1.3 Axis movement programming with parameters
Through the parameter programming it is possible also to program machine movements.
A very simple example:
N10 HA 10
N20 HB 1000
N30 HC 30
N40 G0 X<HA>
N50 F<HB>
N60 G1 X<HC+100>
In lines from N10 to N30, values are assigned to the parameters.
In the line N40, a rapid movement of X axis is executed up to the position contained in the parameter HA
(i.e. 10)
I the line N50 a feed is set with the value contained in parameter HB (1000)
In the line N60 a feed movement of X axis is executed up to the position HC+100 (i.e. 130) with a Feed of
1000.
The movement programming using parametric expressions may be quite complex, following the same rules
indicated for parameters programming.
50
Example:
OX1 OY1 OZ1
T1M6
F1000
S3000 M3
G25ZXY G43Y
G0 AA0 AB0 AC2
G1 AC0
AA5
AB2
AA0
AB0
AC-0.5
AA5
AB2
AA0
AB0
M2
G25XYZ G43Z
G0 AA0 AB0 AC2
G1 AC0
AA5
AB2
AA0
AB0
AC-0.5
AA5
AB2
AA0
AB0
M2
51
5.2
The Z32 CNC allows the usage of special program lines, called advanced lines.
Through these lines it is generally possible to handle most cases of logic-parametric programming, allowing for
conditioning and jumps with or without return.
An advanced line is a program line beginning and terminating with the ! character. This line may be preceded by
the letter N followed by a line number.
Inside an advanced line more than one instruction may be contained, each separated from the others by means of
character ; or !, as below described.
Note:
In advanced lines it is NOT possible to program machine movements.
N10 !GON20!
N20
52
N20 !GON40-N50!
N30
N40
N50
The program executes N20, jumps to N40, executes the instructions between N40 and N50 and then returns
executing line N30.
Returning jumps may be nested inside other returning jumps up to a maximum depth of 10 levels.
Warning: In order to use the N numbers as destinations for a jump, it is necessary for the N character to be
the first character present in the line, without leading spaces.
Correct programming:
N10 !GON20!
N20
Erroneous programming:
N10 !GON20!
N20
53
5.2.5 Controlling more than one condition on the same advanced line
On a single advanced line it is possible to control more than one condition:
!IF HA > 10 ;IF HB < 5 ; GON30!
jumps to N30 if HA is higher than 10 and HB is lower than 5.
54
N50 !GOP10!
The main program is executed up to line N50, then the execution jumps to CMOS program number 10.
The subprogram must terminate with the subprogram end instruction G26. Example:
N10
N50 !GOP10!
N60
N100 G26
The main program is executed up to line N50, then the execution switches to subprogram 10, executed
from line N10 to line N100. The G26 instruction indicates the end of subprogram, then the execution
switches back to the calling program continuing from line N60.
Warning: the subprogram end instruction is the function G26. If a called subprogram contains the
end of program instruction M2, the execution stops without returning to the calling program.
N50 !GOP10-N30!
N60
N30
N100 G26
The main program is executed up to line N50, then the execution switches to subprogram 10, executed
from line N30 to line N100. The G26 instruction indicates the end of subprogram, then the execution
switches back to the calling program continuing from line N60.
55
5.2.9 Jump to a CMOS subprogram with two labels (! GOP.. N.. N..!)
It is possible to jump in a CMOS subprogram starting the execution from a given label.
Example:
N10
N50 !GOP10-N30-N70!
N60
N30
N70
N100 G26
The main program is executed up to line N50, then the execution switches to subprogram 10, executed
from line N30 to line N70. After execution of line N70, the calling program continues the execution from line
N60.
5.3
The structured instruction --IF is useful when it is necessary to condition the execution of whole program blocks.
Example:
--IF {condition 1}
N10
N20
--END IF
The program executes the lines from N10 to N20 only if {condition 1} is verified.
A condition may be any parametric expression containing one of the following comparison operators:
> higher than
< lower than
= equal
<> different
>= higher or same
>= lower or same
The complete syntax is as follows:
--IF {condition 1} ;comment
N10
(executed if condition 1 is true)
N20
--ELSE IF {condition 2} ;comment
N30
(executed if condition 1 is false and condition 2 is true)
N40
--ELSE ;comment
N50
(executed if condition 1 is false and condition 2 is false)
N60
--END IF ;comment
N70
56
The --IF instruction indicates the first checked condition. If {condition 1} is verified, the blocks from N10 and N20
are executed, then the execution passes to N70.
If {condition 1} is not verified, the condition --ELSE IF is checked. If {condition 2} is verified, the blocks from N30
and N40 are executed, then the execution passes to N70.
If neither {condition 1} nor {condition 2} are verified, the execution passes to the --ELSE block, and the blocks from
N50 to N60 are executed, then the execution passes to N70.
In lines containing --IF, --ELSE IF, --ELSE and --END IF it is possible to insert a comment after the character ;.
In synthesis:
The --IF instruction is the first checked condition.
The blocks --ELSE IF specify the conditions checked if the preceding conditions are not true. It is possible to have
more than one block --ELSE IF. In this case the conditions are checked in sequence.
--IF {condition 1}
(executed if condition 1 is true)
--ELSE IF {condition 2}
(executed if condition 1 is false and condition 2 is true)
--ELSE IF {condition 3}
(executed if condition 1 is false, condition 1 is false and condition 3 is true)
--ELSE
(executed if condition 1 is false, condition 1 is false and condition 3 is false)
--END IF
N70
The instruction --ELSE identifies the block of instructions executed if all other conditions are not true.
The --END IF instruction identifies the end of an IF block.
It is possible to nest IF instructions up to 31 levels.
Example:
--IF {condition 1}
--IF {condition 2}
--IF {condition 3}
N30
(executed if condition 1 is true, condition 1 is true and condition 3 is true)
N40
--END IF
--END IF
--END IF
57
5.4
The blocks inserted between the instructions --DO and --LOOP are repeated until the exit condition is satisfied
Example:
--DO
N10
N100
--LOOP
The blocks from N10 to N100 are endless repeated.
N100
--LOOP 10
N110
5.4.2 Repetition condition
A condition to be checked in order to execute the repetition may be specified on the same line as the LOOOP
instruction:
--LOOP IF {condition}
In the following example, blocks from N10 to N100 are repeated if the specified condition is verified, then the
execution passes to block N110. That means, if HA is lower than 10, the repetitions are executed; if HA is higher
than 10 the repetitions are no more executed.
--DO
N10
N100
--LOOP IF HA < 10
N110
58
N100
--LOOP
N110
Warning: It is possible to use the --EXIT DO instruction also without the IF condition written on the
same program line; it is thus possible to write:
--DO
--IF HA>100
--EXIT DO
--END IF
--LOOP
59
5.5
Through the instruction --DEFINE P.. it is possible to write a CMOS file of the CNC.
With this instruction it is possible to write a CNC CMOS file without the need to directly edit it.
The --DEFINE P.. instruction may be used only for CMOS user files, that means for CMOS files from number 1 to
number 109.
The instruction has the following syntax:
--DEFINE P.. ; comment
{program listing}
{program listing}
--END DEFINE
The definition of a CMOS program doesnt produce any machine movement.
The written program may be executed by recalling it by a CMOS subprogram jump instruction !GOP..!
Example:
T1M6
F5000
--DEFINE P10
G1 X100
G1Y100
G1X0
G1Y0
G26
--END DEFINE
G0 Z100
G0 X0Y0
G0 Z1
G1 Z1
!GOP10!
M2
In the above example, the instructions for the definition of program 10 dont produce any movement; the CMOS
program number 10 is executed only after its recall trough the function !GOP10!
Warning: In the definition of a CMOS subprogram by means of the --DEFINE P.. instruction, it is necessary
to insert the subprogram end instruction G26.
Warning: The --DEFINE P.. instruction must be executed before the calling of the defined subprogram (by
the instruction !GOP..!)
Warning: The definition of a CMOS program through the --DEFINE P.. instruction is not temporary. The
program can be also used after machine shutdown and successive power on.
5.6
{program listing}
60
{program listing}
--END DEFINE
The definition of a subtemp doesnt produce any machine movement.
The written subtemp may be executed by recalling it by a subtemp subprogram jump instruction !GOS..!
This instruction has the same syntax as the subprogram jump instruction !GOP..!, the only difference being the
character S which must be used instead of character P, to specify the subtemp number.
Example:
T1M6
F5000
--DEFINE S20
G1 X100
G1Y100
G1X0
G1Y0
G26
--END DEFINE
G0 Z100
G0 X0Y0
G0 Z1
G1 Z1
!GOS20!
M2
Up to 64 subtemps may be used for a process.
A single subtemp may contain a program no larger than 240KB.
The total content of all defined subtemps cannot exceed 1MB.
A subtemp may be recalled by using the instructions !GOS..!, !GOS..N..! and !GOS..N..N..! These instructions
are equivalent to the corresponding !GOP.. ! instructions valid for CMOS programs.
It is possible to use a subtemp as a fixed cycle with the instruction G27S.. To program a subtemp as a fixed cycle,
please consult the section related to fixed cycles.
Warning: In the definition of a subtemp by means of the --DEFINE S.. instruction, it is necessary to insert
the subprogram end instruction G26.
Warning: The --DEFINE S.. instruction must be executed before the calling of the defined subtemp with the
instruction !GOS..!
Warning: The definition of a subtemp through the --DEFINE S.. instruction is temporary. The subtemp is
valid only during the current execution. At execution end, the subtemp is cleared.
61
6.
This chapter describes the standard macros and fixed cycles of the Z32 CNC. Cycles and machining here
described are valid for versions SIS T109-8B and following.
Cycles and machining are recalled through the functions:
G800 FIXED CYCLES
G801 POSITIONING MACROS
G802 MACHINING MACROS
6.1
62
63
6.1.1
G800K1: Drilling
Mandatory parameters:
MHA: start position
MHB: hole end position
MHC: high retraction position
feed MHF
feed F
MHC
G0
MHA
MHD
MHB
MHT
feed MHF
G0
MHA
MHI
MHI
64
MHC
feed F
MHD
MHR
MHB
MHT
6.1.3
feed MHF
MHC
feed F
MHT
MHZ
G0
MHA
MHD
MHI
MHS
MHB
MHP
MHC
G0
MHA
MHB
MHT
MHW
feed F
G800K5: Reaming
MHC
G0
Mandatory parameters:
MHA: start position
MHB: hole end position
MHC: high retraction position
MHA
MHB
MHT
65
Mandatory parameters:
MHA: start position
MHB: hole end position
MHC: high retraction position
feed F
MHC
G0
MHA
MHB
66
feed MHF
MHC
feed F
MHW
G0
MHZ
MHA
MHD
MHI
MHU
MHL
MHS
MHB
feed MHF
MHC
feed F
G0
MHA
MHD
MHI
MHU
MHV
MHI
MHB
feed MHF
feed MHJ
feed F
feed MHK
G0
MHC
MHA
MHD
MHI
MHU
MHI
67
MHV
MHI
MHB
MHD > 0
MHD < 0
MHD
MHC
MHA
MHK
MHB
68
MHD > 0
MHS
MHD
MHD < 0
MHC
MHA
MHK
MHB
6.2
and
macro
At the end of machining the macro parameters are cleared, if the recalling of a new machining is desired, all
necessary parameters must be programmed anew
Optional parameters management
In the macros definition some parameters defined as optional are present.
It is possible not to program all optional not desired parameters.
The available positioning macros may be used in two modes:
As positioning connected to a fixed cycle
If on every macro point the execution of a fixed cycle is desired, the fixed cycle must be activated before the
positioning macro recall. The fixed cycle must be deactivated (G27 C0) after calling the positioning macro, or after
all positioning where the fixed cycle must be executed.
69
70
6.2.1
MP
MPG
71
MPB
MPX
0
MPA
MPY
MPV
MPJ
MPK
MPW
M PM
Mandatory parameters:
MPX, MPY: starting point coordinates
MPJ, MPK: row increments
MPV, MPW: column increments
MPN: number of points in a row
MPM: number of points in a column
Optional parameters for machining position:
(MPF): MPF = 0 : on all points a fixed cycle is executed
MPF <> 0 : on all points a programmed figure, stored
in CMOS program MPF, is positioned
(MPR): MPR = 0 : the figure is not rotated
MPY
MPR = 1 : the figure is rotated by the slope of
positioning line
0 MPX
Optional parameters for positioning skipping:
(MPS): number of points to be skipped. The numbers of
points to be skipped are stored in PAR array from PAR[1] to PAR[MPS]
MPN
M PM
Mandatory parameters:
MPT
MPX, MPY: starting point coordinates
MPP
MPP: distance between row points
MPG: row angle relative to the first axis of plane
MPQ: distance between columns points
MPQ
MPT: column angle relative to the first axis of plane
MPN: number of points in a row
MPM: number of points in a column
Optional parameters for machining position:
(MPF): MPF = 0 : on all points a fixed cycle is executed
MPF <> 0 : on all points a programmed figure, stored
MPY
in CMOS program MPF, is positioned
MPN
(MPR): MPR = 0 : the figure is not rotated
MPR = 1 : the figure is rotated by the slope of
0 MPX
positioning line
Optional parameters for positioning skipping:
(MPS): number of points to be skipped. The numbers of points to be skipped are stored in PAR
array from PAR[1] to PAR[MPS]
MPG
6.2.6 G801K6: Grid row and column starting and end points
72
MPD
M PM
Mandatory parameters:
MPX, MPY: first row starting point coordinates
MPA, MPB: first row end point, last column starting point
coordinates
MPC, MPD: last column end point coordinates
MPN: number of points in a row
MPM: number of points in a column
Optional parameters for machining position:
(MPF): MPF = 0 : on all points a fixed cycle is executed
MPF <> 0 : on all points a programmed figure, stored in
CMOS program MPF, is positioned
(MPR): MPR = 0 : the figure is not rotated
MPR = 1 : the figure is rotated by the slope of positioning
line
Optional parameters for positioning skipping:
MPB
MPY
MPN
MPX
MPA MPC
(MPS): number of points to be skipped. The numbers of points to be skipped are stored in PAR array
from PAR[1] to PAR[MPS]
73
MPA
Mandatory parameters:
MPX, MPY: circle center coordinates
MPC: circle radius (positive or negative value)
M
PB
If
MPC
is
positive,
positioning
happens
counterclockwise
If MPC is negative, positioning happens clockwise
MPA: initial angle
MPB: final angle
MPY
If MPA = MPB the points are spaced along the whole
MPC
circumference, starting from the initial angle.
MPN: number of points
Optional parameters for machining position:
(MPF): MPF = 0 : on all points a fixed cycle is executed
MPF <> 0 : on all points a programmed figure, stored
0
MPX
in CMOS program MPF, is positioned
(MPR): MPR = 0 : the figure is not rotated
MPR = 1 : the figure is rotated by the slope of positioning line
Optional parameters for positioning skipping:
(MPS): number of points to be skipped. The numbers of points to be skipped are stored in PAR
array from PAR[1] to PAR[MPS]
Optional parameters for positioning type:
(MPW): movement type between points
MPW = 0 : linear movement
MPW = 1 : circular movement
MPQ
MPG
MPY
MP
M
Mandatory parameters:
MPX, MPY: rectangle center coordinates
MPG: rectangle rotation angle
MPN: number of points on rectangle base
MPP: distance between points on the base
MPM: number of points on rectangle height
MPQ: distance between points on the height
Optional parameters for machining position:
(MPF): MPF = 0 : on all points a fixed cycle is executed
MPF <> 0 : on all points a programmed figure, stored
in CMOS program MPF, is positioned
(MPR): MPR = 0 : the figure is not rotated
MPR = 1 : the figure is rotated by the slope of
positioning line
MP
MPX
MP
L
MP
MP
MPY
MP
M
MP
74
MPX
Mandatory parameters:
MPX, MPY: rectangle center coordinates
MPG: rectangle rotation angle
MPN: number of points on rectangle base
MPL: rectangle base
MPM: number of points on rectangle height
MPH: rectangle height
MPG
6.2.13
P
MP
M
MP
Mandatory parameters:
MPX, MPY: lower left corner coordinates
MPG: rectangle rotation angle
MPN: number of points on rectangle base
MPP: distance between points on the base
MPM: number of points on rectangle height
MPQ: distance between points on the height
Optional parameters for machining position:
(MPF): MPF = 0 : on all points a fixed cycle is executed
MPF <> 0 : on all points a programmed figure,
stored in CMOS program MPF, is positioned
(MPR): MPR = 0 : the figure is not rotated
MPR = 1 : the figure is rotated by the slope of
positioning line
N
MP
MPY
MPX
L
MP
MP
MPY
MPX
MP
75
MP
MP
Mandatory parameters:
MPX, MPY: lower left corner coordinates
MPG: rectangle rotation angle
MPN: number of points on rectangle base
MPL: rectangle base
MPM: number of points on rectangle height
MPH: rectangle height
Optional parameters for machining position:
(MPF): MPF = 0 : on all points a fixed cycle is executed
MPF <> 0 : on all points a programmed figure,
stored in CMOS program MPF, is positioned
(MPR): MPR = 0 : the figure is not rotated
MPR = 1 : the figure is rotated by the slope of
positioning line
6.3
76
77
6.3.1
Mandatory parameters:
pocket center coordinates
through axes positions)
MMD: pocket diameter
MMA: pocket start position
MMB: pocket end position
MMC: high retraction position
MMK: pass depth
MME: safety distance
MMJ=0
(programmed
AA, AB
MMJ=1
MMD
R
MMC
MMS
MME
MMA
MMK
MMU
be
MMB
MMN
78
6.3.2
(programmed
MMP
MMG
MMR
AA, AB
MMH
MML
MMS
MMC
MME
MMA
MMK
MMU
MMN
MMB
79
MMH>0
MMH<0
MML>0
MML<0
MMH>0
MMH<0
MML<0
MMP
MMG
MMR
MMH
MML
MMS
MMC
MME
MMA
MMK
MMB
MMN
MMU
80
6.3.4
(programmed
MMJ=0
AA, AB
MMD
MMQ
MMJ=1
MMC
MMS
MME
MMA
MMK
MMU
MMB
MMN
81
6.3.5
MMQ
MMG
MMR
AA, AB
MMH
MML
MMS
MMC
MME
MMA
MMK
MMB
MMU
MMN
82
MML>0
MMH>0
MMH<0
MML>0
MML<0
MMH>0
MMH<0
MML<0
MMQ
MMG
MMR
MMH
MML
MMS
MMC
MME
MMA
MMK
MMB
MMU
MMN
83
MMD
AA, AB
MML
MMC
MMS
MME
84
MMA
MMK, MMH
MMG
MMB
6.3.8
MMR
MMC
MMS
MME
MMA
AA, AB
MMK
MMH
MMD
MMB
MML
B
85
MMG
A
MMR
MML
6.3.9
MMG
AA, AB
MMD
MMC
MMS
MMK
MMH
MME
MMA
B
MMB
86
6.3.10 G802K10: Hole thread milling with a single flute end mill
Mandatory parameters:
hole center coordinates (programmed through
axes positions)
MMD: bottom of thread diameter
MMQ: hole diameter
MMA: machining start position
MMB: machining end position
MMC: high retraction position
MMP: thread pitch
MMK: pass depth for thread roughing. The
roughing machining ends on thread bottom
(MMD). On this diameter are executed the
MMN polishing passes.
MMA
MMD
MMP
MMQ
MMB
87
88
6.3.12 G802K12: Stud thread milling with a single flute end mill
Mandatory parameters:
stud center coordinates (programmed
through axes positions)
MMD: external diameter
MMQ: bottom of thread diameter
MMA: machining start position
MMB: machining end position
MMC: high retraction position
MMP: thread pitch
MMK: pass depth for thread roughing. The
roughing machining ends on thread bottom
(MMD). On this diameter are executed the
MMN polishing passes.
MMA
MMD
MMP
MMQ
MMB
89
MMH
Mandatory parameters:
MMD
stud center coordinates (programmed
MMA
through axes positions)
MMD: external diameter
MMP
MMQ: bottom of thread diameter
MMA: machining start position
MMB: machining end position
MMQ
MMC: high retraction position
MMP: thread pitch
MMK: pass depth for thread roughing. The
roughing machining ends on thread bottom
MMB
(MMD). On this diameter are executed the
MMN polishing passes.
MMH: comb height (mm or inches, depending
on machine setup)
MMS: threads overlap (number of threads). If the area to be threaded is smaller than
comb height, the threading may be executed in a single turn (adding a fourth of turn
approach and a fourth of turn retract); if the area to be threaded is higher than comb
height, the threading is executed in more than one turn. After each turn, the comb is
translated by a quantity equal to comb height minus the programmed overlap.
Optional parameters for safety distance:
(MME): safety distance on thread top and bottom. The approach (and retraction) to the
thread is executed in a fourth of thread; the MME diameter indicates the starting
diameter initiating the fourth of thread approach to the machining. For example, if the
internal diameter is 50, tool radius is 10 and MME is 2, the approach point is at
coordinates X0 Y37. If MME=0 a default safety distance of 2mm is assumed.
Optional parameters for polishing passes:
(MMN): number of polishing passes.
Optional parameters for last roughing pass:
(MMW): last roughing pass depth. If MMW=0, all roughing passes have the same pass
increment, less than or equal to MMK. If MMW>0, the last roughing pass has a MMW
depth.
Optional parameters for thread direction:
(MMJ): thread direction:
MMJ = 0 : right thread
MMJ = 1 : left thread
90
MMV=1
AA, AB
MMV=0 MMP
MMC
MMX, MMY
MMA MMB
91
6.4
Through the instruction G27C.. it is possible to activate a set of fixed cycles generally supplied by the machine tool
builder.
The syntax and usage of G27C.. instruction is the same as the G800K.. instruction.
When the fixed cycle is activated, it will be executed after all successive rapid positioning.
The fixed cycle may be suspended through the instruction G27X (see description of G800 function).
92
7.
The Z32 CNC offers an instruction set designed to solve computing problems of complex geometrical profiles.
It is possible to use the geometric instructions for complex profiles programming, only on the working plane
defined by G25.
All succeeding discussion assumes the plane X-Y as the working plane. To program profiles on different planes, it
is necessary to correctly program the G25 function, specifying the desired axes instead of X-Y.
A geometric profile is composed by the following elements:
-
points
linear segments
circular arcs
chamfers
fillets
Warning: When the G12 function (helical interpolation) is active, it is possible to coordinate a movement
along the third axis direction specified by G25, with any profile element.
Some preliminary notes:
A defined point is any point programmed on the plane or computed by Z32. A defined point may be
the starting or end point of an element.
An element is a line segment or a circular arc, and may be open or closed.
A line or a circle are defined as closed elements when their final point is known.
A line or a circle are defined as open elements when their end point is not defined, but will be
computed as intersection with the succeeding element.
Each element may terminate with a chamfer (only linear elements) or with a fillet.
As discussed with more detail in the following, the parameters used to define geometric elements are the following:
Element end point. Programmed with the axis name and corresponding position, i.e. X and Y.
Arc center coordinates. Programmed with the parameters I and J, where I is the coordinate related
to the first axis of working plane and J the coordinate related to the second axis.
Arc radius. Programmed with the RA parameter, always positive.
Element final slope. Programmed with the QF parameter, expressed in degrees and considering the
following figure:
QF > 0
QF < 0
-270 > QF > -360
0 < QF < 90
-180 > QF > -270
93
Arc length in degrees or auxiliary slope. Programmed with QA parameter, expressed in degrees as for
parameter QF. It is used in two cases:
To define the length in degrees of a circular arc.
To define the slope of a line in the combinations line-circle G1 G2/G3.
Intersection choice. Programmed with KA parameter:
The end point of an open element may be computed through its intersection with the succeeding element.
If at least one of the elements is a circle, two different solutions are possible.
Observing the movement with reference to the first programmed element, one of the solutions turns to the
right while the other turns to the left.
The correct solution is chosen with the KA parameter:
KA0
KA1
KA1
By programming KA in a block where it is not required, it is ignored with no alarm issued; KA0 may be
omitted.
The radius sign of a fillet decides the intersection to be chosen; thus in most cases by programming a fillet
radius eliminates the need to choose an intersection with KA.
RR>0
RR<0
RR>0
RR<0
94
7.1
Closed lines
G0 X40 Y0
G1 X20 Y20
X10
Y30
G3 I0 J30
G1 X-20 Y20
X-40
Y0
30
20
-40
-20
10
40
20
G0 X40 Y0
G1 Y10
Y30 QF120
X15
X0 QF210
Y40 QF135
X-40
X-50 QF-120
Y0
40
45
30
30
30
30
10
0
-50
-40
15
40
95
7.1.3 Line two coordinates end point and slope (G1 X.. Y.. QF..)
G1 X.. Y.. QF..
The programmed end point is reached with an element having programmed slope QF.
The preceding element must be an open circle or an open line.
If the preceding element is closet, an error is issued.
The line starting point is computed by intersecting the line with the preceding element.
If the preceding element is a circle, there are two possible intersections. In order to choose between the two
solutions it is possible to use the KA parameter, or to define a very small signed fillet.
G0 X50 Y0
G3 I35 J0 KA1 (or RR-0.0001)
G1 X0 Y30 QF150
X-10
G2 I-25 J30 KA1 (or RR-0.0001)
G1 X-40 Y40 QF100
40
30
30
10
R15
R15
-40
-25
-10
50
35
All closed lines may be terminated or be preceded by a fillet RR or by a chamfer RB, if the preceding or the
following elements are lines.
Y
40
R5
R10
30
R10
30
10
R15
G0 X50 Y0
G3 I35 J0 RR-5
G1 X0 Y30 QF150 RR10
X-10 RR5
G2 I-25 J30 RR-10
G1 X-40 Y40 QF100
R15
R5
-40
-25
-10
35
50
96
7.2
Open lines are defined only as direction and must then originate from a defined point, represented by a rapid
movement, the end point of a closed line or of a closed circle.
The line end point is computed by intersecting the line with the succeeding element. The succeeding element must
be an open element, line or circle. It cannot be a closed element.
If the succeeding element is a circle, there are two possible intersections.
To choose the intersection desired, the KA parameter must be used.
KA0 : turns to the left (default setting if KA is not programmed)
KA1 : turns to the right.
The desired intersection may be chosen also by inserting a fillet with a very small signed radius (i.e. RR0,0001 or
RR-0,0001)
The syntax for an open line is as follows:
G1 QF.. (known slope line)
G1 (continuing line)
The continuing line has the same slope as the preceding element.
If programmed after a closed line definition with end coordinates and angle, it defines a line of known slope, with
start and end points unknown, but with an intermediate known point.
Example:
Y
10
10
G0
G1
G3
G1
G1
G3
G1
15
5
0
R15
R15
-80
-30
80
30
10
10
G0
G1
G3
G1
G1
G3
G1
15
10
5
0
R15
R15
-80
-30
X-80 Y15
QF-10 KA1
I-30 J0 RA15 KA1
X0 Y5 QF0
KA1
I30 J0 RA15 KA1
X80 Y15 QF10
80
30
X-80 Y15
QF-10 RR-0.0001
I-30 J0 RA15 RR-0.0001
X0 Y5 QF10
RR-0.0001
I30 J0 RA15 RR-0.0001
X80 Y15 QF10
If programmed after a closed circle with center coordinates, radius and final slope, it defines a line tangent to the
preceding circle, and sloped by QF degrees.
Y
30
45
20
R12
R2
R2
R2
5
0
45
R15
R15
-55
-45
-25
25
55
97
G0
G1
G1
G3
G1
G1
G3
G1
G1
X-55 Y30
X-45 Y20
RR-2
I-25 J0 RA15 RR-2
X0 Y5 QF0
RR-2
I25 J0 RA15 QF45
RR12
X55 Y30 QF90
7.3
Closed circles
Z32 considers closed circles all circular arcs terminating on a point with known coordinates.
7.3.1
Y
15
R15
R15
-30
R15
-15
15
G0
G3
G2
G3
X30 Y0
X15 Y15 I15 J0
X-15 Y15 I0 J20
X-30 Y0 I-15 J0
30
G0 X-50 Y10
G1 QF10
G3 X50 Y30 I30 J30 KA1 (or RR-0.0001)
Y
30
10
10
-50
30
50
98
If the circle originates in a defined point, it solves the problem of a circle passing between two points with a given
radius.
If the circle originates in an open line, a tangent condition is forced and the rotation direction is chosen in such a
way the exit is tangent to the line, independently from the programmed G2/G3.
If the preceding element is an open circle, an error is issued.
Y
30
R50
R5
G0 X40 Y0
G42 X30 Y0 QF90
Y30 RR4
G2 X-30 Y30 RA50 RR4
G2 X-30 Y-30 RA50 RR4
G2 X30 Y-30 RA50 RR4
G1 Y0
G40 X40 Y0
R4
R4
R50
R4
R4
R50
-30
-30
30
If the circle originates in an open line, a tangent condition is forced and the rotation direction is chosen in such a
way the exit is tangent to the line, independently from the programmed G2/G3.
Y
30
R15
G0
G1
G1
G2
G1
30
5
0
20
50
99
X50 Y0
Y5
QF150
X20 Y30 RA15 (or G3)
X0
30
45
G0 X-10 Y0
G1 QF90 RR5
G2 I0 J30 RA15 QF-45
G1 RR-5
X40 Y0 QF-90
R5
R5
0
-10
40
G0 X0 Y0
G1 QF45
G3 I40 J20 QF-45
G1 RR-5
X65 Y0 QF-90
45
20
45
R5
40
65
100
If the preceding element is closed, a circle with center in a known point, passing through another known point is
obtained.
Y
10
G0
G1
G2
G1
R3
0
10
X30 Y10
X10 RR3
I0 J0 QF90
Y10
30
G0
G1
G2
G1
0
X0 Y0
X30 Y30
RA10 QF-90
Y0
30
45
G0 X-30 Y0
G1 X-15 RR3
G2 I0 J0 QF-45
G3 RA10 QF45
G1 RR-5
X50 Y20 QF0
20
R3
0
45
-30
-15
50
101
-50
-30
-10
G0 X-50 Y30
G1 X-30
G2 X-10 Y20
G3 X10 Y20
G1 RR-1
X50 Y30 QF0
50
10
Y
30
10
0
-50
-30
-10
10
30
G0
G1
G2
G3
G2
G1
X-50 Y30
X-30
X-10 Y10
X10 Y10
X30 Y30
X50
50
30
G0 X-50 Y30
G1 QF0
G2 I-20 J20 QA90
G3 I0 J20 QA135
G1
X50 Y30 QF0
20
135
-50
-20
50
102
7.4
Open circles
Z32 considers as open circles all circular arcs whose end point is computed by the intersection with next element.
7.4.1 Circle center and radius (G2/G3 I..J..RA..)
The preceding element, line or circle, must be open.
G2 I.. J.. RA..
G3 I.. J.. RA..
The intersections between a line and a circle or between two circles are generally two. The programming of KA
parameter allows to choose the desired intersection.
KA0 : turns to the left (default setting if KA is not programmed)
KA1 : turns to the right.
The desired intersection may be chosen also by inserting a fillet with a very small signed radius (i.e. RR0,0001 or
RR-0,0001)
Next element may be a point external to the circle (in this case a tangent condition is forced) or another open or
closed circle, or a closed line.
The intersection choice criteria with next element may be the programming of KA parameter, or a small signed fillet
radius.
Y
40
20
30
R20
20
-50
-10
G0
G1
G1
G3
G1
X-50 Y0
Y20
QF0 RR-0.0001
I-10 J30 RA20 RR-0.0001
X50 Y40 QF20
G0
G1
G1
G3
G3
G1
X-50 Y0
Y20
QF0 RR-0.0001
I-10 J30 RA20 RR-0.0001
I15 J40 RA20
X50 Y40
50
Y
40
R20
30
R20
20
-50
-10
15
50
103
7.4.2
G2 I.. J..
G3 I.. J..
The preceding element may be a defined point or an open line.
Y
40
G0
G1
G1
G2
G1
G2
G1
28
20
30
15
10
X
0
-60
-33
-20
X50 Y0
Y10
QF150
I15 J15 KA1 (or RR-0.0001)
X-20 Y20 QF180
I-33 J28
X-60 Y40
50
15
45
20
10
R30
0
-10
-10
-55
-20
G0
G1
G2
G3
G2
G1
20
30
40
X60 Y-10
X40 Y10
I30 J20 RR0.0001 (or KA0)
I0 J0 RA30 QF225
I-55 J20 RR-0.0001 (or KA1)
X-60 Y-10 QF180
60
-60
7.4.3
G2 RA..
G3 RA..
The circle must originate from a defined point, possibly the end point of preceding line or circle. The circle starts
with the same slope as the preceding element.
Y
30
R1
R15
25
20
R1
R10
R10
30
-50
-20
60
20
104
G0
G1
G2
G1
G1
G2
G3
G1
X-50 Y0
X-20 Y30
RA10 RR1
X0 Y20 QF0
RR1
I20 J20 RA15 QF-120
RA10
X60 Y5
7.5
Line-circle combinations
20
R4
45
R10
10
R10
-50
-20
G0
G1
G1
G1
G1
X-50 Y0
G2 I-1 J20 RA10
G3 I30 J0 RA10 QF45
RR-4
X80 Y10 QF0
80
30
R30
50
0
R20
G0 X0 Y-10
G41 X0 Y-20 QF0
G3 I0 J0
G1 G3 I0 J50 RA30
G1 G3 I0 J0 RA20 QF0
G40 X0 Y-10
-10
G1 G2/G3 I..J..X..Y..QA..
Line with QA slope, tangent to a circle defined by center and end point
G1 G2/G3 I..J..RA..QA..
Line with QA slope, tangent to a circle defined by center and radius
G1 G2/G3 I..J..RA..QF..QA..
Line with QA slope, tangent to a circle defined by center, radius and final slope
105
The three cases must originate from an open line or from an open circle.
Y
R5
R30
30
45
R30
X
30
R5
-60
-40
40
106
G0 X-60 Y0
G41 X-70 Y0 QF-90
G3 I-40 J0 RR-5
G1 G3 I40 J0 RA30 QF225 QA-30
G1 RR-5
G1 G3 I-40 J0 RA30 QF-90 QA150
G40 X-60 Y0
7.6
Fillets (connecting arcs) are inserted by programming the RR parameter representing the arc radius.
To insert a fillet it is necessary to consider that between a line and a circle, or between two not oriented circles, up
to 8 connecting arcs may exist.
The definition order of the two elements to be connected and the sign of the fillet radius allow to choose the desired
solution among those geometrically possible. The Z32 CNC chooses the solution warranting the rotation direction
concordance of the elements to be connected, and of the fillet itself.
The selection between the various solutions is made by using:
RR sign:
RR>0 : counterclockwise fillet (G3)
RR<0 : clockwise fillet (G2)
KA selection parameter:
KA0 : short fillet (default setting)
KA1 : long fillet
It is possible to insert a fillet between any two geometric elements, excluding the cases where the definition inhibit
the connection programming; it is not allowed, for example, to insert a connecting arc between already tangent
elements.
It is therefore possible to insert a fillet between:
- two linear open or closed elements
- a linear element and a circular element
- two intersecting circular elements
- two internal circular elements
- two external circular elements
107
G0 X0 Y0
G1 X20 Y20 RR-10
G1 X40 Y0
R10
0
40
20
Y
20
G0 X40 Y0
G1 X20 Y0 RR10
G1 X0 Y0
R10
0
40
20
G0
G1
G3
G1
R6
60
30
108
X0 Y20
X20 RR-6
I30 J20 X40 Y20 RR-6
X60
R5
15
R15
G0
G1
G3
G3
G1
R15
R5
R5
0
-15
15
45
X-15 Y15
X0 RR-5
I15 J15 RR-5
I45 J15 RA15 RR-5
X75 Y15 QF0
75
Y
R10
R15
R15
G0
G2
G2
G2
X-35 Y0
I-20 J0 RR10
I20 J0 RA15 RR-70
I-20 J0 X-35 Y0
R70
-20
20
KA selection parameter
The KA selection parameter define if the desired connecting arc is a long or short fillet.
KA0 (short fillet)
KA1 (long fillet)
Usually the correct choice is the short fillet; this is also the Z32 default choice.
In some cases it may be necessary to choose the long connecting arc, for example in connecting two external
circular elements.
R40
R15
(short fillet)
G0 X0 Y-15
G1 QF180
G2 I-20 J0 RA15 RR-40 (KA0)
G2 I20 J0 RA15 QF180
G1 X0 Y-15
R15
-20
20
109
R40
R15
R15
-20
20
110
(long fillet)
G0 X0 Y-15
G1 QF180
G2 I-20 J0 RA15 RR-40 KA1
G2 I20 J0 RA15 QF180
G1 X0 Y-15
7.7
Chamfers
Chamfers are inserted at the end of the element, by programming the RB parameter, representing chamfer length
along the line element where RB is programmed.
If only RB is programmed, a symmetrical chamfer is assumed; if RB is programmed with QA, an asymmetrical
chamfer is assumed, following the rule:
Second element length / RB = tangent of QA
Chamfers may be programmed only between linear elements.
10
Y
30
10
G0 X30 Y0
G1 Y30 RB10
G1 X0
5.77
10
30
X
0
30
Y
30
G0 X30 Y0
G1 Y30 RB10 QA30
G1 X0
10
30
0
30
0
Y
10
30
10
G0 X0 Y0
G1 X30 Y30 RB10
G1 X60 Y0
30
30
G0 X0 Y0
G1 X30 Y30 RB10 QA30
G1 X60 Y30
5.77
60
111
60
8.
8.1
When it is necessary to machine a file generated by CAD-CAM systems it is preferable to create a file recalling the
desired part-program to be executed, where all technological parameters relative to the machining are specified.
That means that the CAM file contains only machine movements, while the recalling file contains all settings related
to machining technological parameters: origin recall, tool recall, feed and speed setting, etc.
For example, suppose the CAM generated file has the name TEST.ISO, saved in the folder C:\Z32\PPG\CAM.
The launcher file may be also saved on the hard disk, in the same folder as TEST.ISO.
8.2
Through the instruction !:L254! contained in an advanced line, it is possible to execute a program of any
dimension, stored on the hard disk.
The syntax is as follows:
!:L254 {program name}!
The program name may contain a full path specification.
For example, to recall the file TEST.ISO stored in folder C:\Z32\PPG\CAM, it is possible to write the instruction:
!:L254-C:\Z32\PPG\CAM\TEST.ISO!
If the launcher file is residing in the same folder of the called file, it is possible to omit the path specification.
For example, if the folder C:\Z32\PPG\CAM contains both TEST.ISO and its calling file TESTLAUNCH, the calling
instruction may the following:
!:L254-TEST.ISO!
Warning: the program files called in DNC mode must terminate with the subprogram end instruction G26. If
the program ends with the M2 instruction, the execution terminates without return to the calling program.
It is possible to organize the machining by calling more than one DNC file.
For example, suppose the folder C:\Z32\PPG\CAM contains the two files part1.iso and part2.iso. It is possible to
create a recall file for both machining with a content like the following:
OX1 OY1 OZ1 (origin 1 valid for part1.iso)
T5 M6 (tool for part1.iso)
F1500 S5000 M3 (feed and speed for part1)
G0 Z100 (initial approach)
!:L254-part1.iso!
OX2 OY2 OZ2 (origin 2 valid for part2.iso)
T8 M6 (tool for part2.iso)
F3000 S4000 M3 (feed and speed for part2)
G0 Z100 (initial approach)
!:L254-part2.iso!
G0 Z100 (final retract)
M2
112
Warning:
A program called by the instruction !:L254! cannot in turn call a program with the same instruction
!:L254!
A program called by the instruction !:L254! may call CMOS subprograms, or subtemp by means of
instructions !GOP...! or !GOS...!
A program called by the instruction !:L254! may contain the jump instruction !GON..!, repetition --DO
--LOOP and conditioning !IF..! and --IF.
8.3
113
9.
It may be useful to use the high speed functions offered by the Z32 CNC, when executing files generated by CADCAM systems.
Warning: in the following discussion it will be assumed that the motion control function G113X (or its
evolution G113X KA1) is available to the customer.
The functions to be used are:
- G114
- G113X (or its evolution G113X KA1)
- G113A (or its evolution G113B)
- G135
9.1
The "RA" parameter represents the tolerance, expressed in mm or inches, used to round the edges. The
programming range varies from 0.0000625 mm (1/16 micron or 0,0000025 inches) to 2 mm (0.08 inches).
Warning: high values of RA (higher than 0.015mm) are reserved to roughing due to
possible differences between adjacent passes.
In finishing it is preferable to limit the RA programming field between 0.001 mm (0.00004
inches for very fine surfaces with high curvature changes) and 0.015 mm (0.0006 inches
for smoother surfaces).
A generally valid finishing value is RA = 0.005 mm (0.0002 inches).
Note: The deviation from ideal trajectory is higher for small curvature radius. On straight
angles edges, the deviation may be 4 times the RA value.
The K parameter represents the maximum allowed trajectory acceleration, expressed in mm/s . This
value may be equal or lower than the acceleration defined in the machine setup.
Warning: The K parameter of G114 doesnt have any effect on rapid movements; on
these movements only the setup values remain active.
2
Please note that K is expressed in mm/sec also on inches programmed machines.
No effect is produced if the K parameter requires acceleration values higher that those
expressed in the machine setup; lower acceleration values are instead allowed with the
aim to obtain still smoother movements, with related better finishing.
If K is not programmed, the limit of setup acceleration remain valid.
The J parameter represents the machine softness factor. This value is an integer parameter in the range
0 to 6 and may be up to one unit lower than the value defined in machine setup.
Warning: The J parameter of G114 doesnt have any effect on rapid movements; on
these movements only the setup values remain active.
If J is not programmed, the setup value remain active.
In defining the optimal value, please consider that J intervenes in all critical profile situations:
- allows softer accelerations and decelerations
- decelerates further on edges and points with curvature changes
Synthetically, an higher J increases machining time, but produces workpieces with a better finishing.
The suggested usage of J parameter is:
- dont program J for a normal machining (the J factor defined by machine tool builder remain active)
- program a lower J if a lower machining time is desired
- program an higher J if a better finishing is desired
114
The I parameter represents the minimum feed on profile edges. In computing the deceleration necessary
to execute profile edges, the I parameter expresses the minimum velocity imposed on the axes by the
CNC.
A common value for I parameter is 30 mm/min.
Higher values may spare machining time, but the workpiece may be "marked" on internal edges.
Lower values are normally not necessary.
The HY and HR parameters are used only if G113A (or G113B) is programmed. The HR and HY
parameters are connected to the algorithm for recomposing curves defined by a series of points, activated
by G113A (or G113B). During curve reconstruction, starting from CAM generated points, the CNC
recomposes the best continue and smooth trajectory as possible.
Warning: G113A (or G113B) functions must be used only on part-programs typically generated
by CAM systems. When the program is defined by means of geometrical elements, the function
G113A (or G113B) must not be used.
HY maximum length of segment to be rounded
It must be used only on part-programs defined by a series of points, when the function G113A or
G113B (rounding command) is active.
The parameter is not considered on part-programs defined composed of circular arcs or NURBS.
HY is the maximum length a segment may have in order to be considered as roundable. Longer
segments are not rounded.
HY can assume a maximum value of 6mm. Higher values are limited to the 6mm value.
The length of a segment is obtained as the square root of the sum of squares of single axes
movements. It is expressed in mm (or inches for machines programmed in inches) for linear axes, and
in degrees for rotating axes.
In case of mixed movements (with both linear and rotating axes) a measuring unit cannot be defined,
but the number expressing the total segment length is always computed with the square root of the
sum of squares of movements.
On machines programmed in inches the behavior is identical to that of a mm machine, considering the
conversion factor (25.4) between inches and millimeters.
Therefore, for an inches machine:
- maximum HY value: 6/25.4 = 0.2362
At reset and program start, HY is initialized with the setup value.
The HY parameter is normally set to its maximum (6mm).
A lower HY value may be useful if the CAM generating the profile has been set for a maximum chordal
length (always lower than 6mm). In this case, a HY value a little bit higher (i.e. +20%) than the CAM
maximum chordal length, may discriminate not roundable segments, having higher lengths.
HR maximum chordal distance for rounding
Only used on part-programs defined by a series of points, when the function G113A or G113B
(rounding command) is active.
The parameter is not considered on part-programs defined composed of circular arcs or NURBS.
HR is the maximum distance from the programmed linear segment allowed by G113B.
HR has the same measuring units as HY.
In case of inches programming and rotating axes movement, the same computing methods of HY are
valid.
At reset and program start, HR is initialized with a fixed value of 0.08mm.
The optimum choice of HR value is the maximum chordal error used by the CAM to generate the tool
center trajectory.
115
Warning: Some CAM systems compute the chordal error on workpiece surface, and not on
tool center. In these cases, for an external curvature, the chordal error seen by the CNC on
the tool center trajectory is increased by the two curvatures ratio.
In these cases, the best compromise is to set a HR value much higher then the
corresponding CAM value.
In summary:
- if the CAM limits the chordal error on tool center path, HR must be set equal to the CAM
chordal error
- if the CAM limits the chordal error on workpiece surface, HR must be much higher than the
CAM chordal error (up to 10 times higher)
It is clear that the latter situation is far from ideal: it is good practice to try to force the CAM
to measure its chordal error on the path considered by the CNC and not on workpiece
surface.
The machine setup defines standard values to be used by the G114 function.
To restore the machine setup values for G114, program:
G114 KA0
To deactivate the high speed settings activated by G114m program:
G115
9.2
The high speed settings must consider the activation of G113X (or G113X KA1) function.
These functions affect the control of machine movement. The G113X KA1 function is an evolution of G113X; its
usage is preferable, if available.
The functions G113X and G113X KA1 consider the possibility to execute an auto-tuning on the machine axes.
The setup for G113X is made through G125.
The setup for G113X KA1 is made through G125 KA1.
The G125 function allows to execute the axes setup in a simple and automatic way, every time an optimal machine
setup is desired for a given machining configuration.
For programming conventions on automatic setup done by G125, please consult the machine tool builder, or the
high speed manual.
Warning: depending on machine setup, it is possible to activate G114 and G113 functions (or its evolution
G113KA1) at reset. In this case it is not necessary to activate the functions by programming, if the setup
configuration is desired.
9.3
This paragraph discusses tool paths programmed as a series of points (only linear segments).
The finishing required by todays high speed machines, where a few micron difference between adjacent passes
are often detectable as defects, is possible only if the trajectory errors are very small, because only a few micron of
error may be clearly seen on the machined surface.
It is therefore useful:
- a CAM generating an adequate number of points, with sufficient precision, to the CNC
116
- a CNC interpolating between the received points not using linear segments, but curves more similar as possible
to the original curve.
The curve interpolation may be not necessary if the CAM generates a very high number of points, but this may lead
to an increase in CAM computing time and to very large part-programs.
In order to re-construct the curve (a process called rounding), the function G113A (or G113B) must be used,
utilizing the HR and HY parameters programmed together with G114.
G113B is an evolution of G113A.
Some other rules used by Z32 to manage edges and rounding:
- all functions with stop (i.e. the M, or a G4 dwell) introduce an edge, thus provoking a temporary movement stop
- a G0 movement may never be rounded
- a circular arc interrupts the sequence of roundable segments.
- a segment longer than the HY parameter of G114, interrupts the sequence of roundable segments
On inches programmed machines, the behavior is identical to that of millimeter machines, because all programmed
positions for linear axes are converted from inches to millimeters before their usage.
9.4
It is very important that the strategy used by CAM to generate the series of points and the strategy used by Z32 to
reconstruct the curve trough G113A (or G113B) be compatible.
The path generated by the CAM is better if the following conditions are respected:
All programmed points belong to the curve to be reproduced
If the curve to be reproduced contains edges, each edge corresponds to a programmed point
Between two successive edges, at least three segments are present
The chordal error is computed on tool center path
Other settings are then user definable; in particular:
- decimals number
- maximum chordal error
- maximum chordal length
The effects of all these settings on overall performance are as follows.
Decimals number
Positive effects of an higher decimals number:
- better precision
- better finishing
- better execution velocity computing
Negative effects:
- higher size of generated file
- higher CAM computing time
- higher CNC computing time
A good finishing may require local precision in the micron range, therefore the CAM must compute at least
the micron, better if 4 decimals (one tenth of a micron) are produced.
Chordal error
The chordal error determines the quantity of points generated by the CAM.
For the best Z32 operation, the CAM should choice the points by maintaining approximately constant the
chordal error on tool path center, and the same chordal error used by the CAM be transferred to the HR
parameter in G114 activation.
A chordal error normally used may be of 5 micron, therefore HR 0.005.
117
The strategy to maintain a very small chordal error (1 micron or less) gives better results, but produces very
large part-programs. In this case, interpolation velocity problems may arise, mainly due to the DNC
transmission speed, and secondarily to the Z32 reading speed (very high).
9.5
When G113X (high speed) is active, Z32 controls and limits the jerk (acceleration derivate), due to both velocity
changes (when the CNC accelerates or decelerates on the path), and to curvature changes (edge, discordant linecircle or circle-circle).
The maximum allowable jerk is defined in machine setup and may be modified with the J parameter (softness
factor) of G114.
Through the function G135 it is possible to modify the CNC behavior in presence of path curvature changes. A
curvature change imposes a deceleration; for example, on a 90 degrees corner it is clear the necessity to
decelerate before executing the corner. By means of G135 the deceleration amount due to curvature changes may
be reduced in order to reduce the machining time.
The deceleration reduction imposed by curvature changes has both positive and negative effects, to be evaluated
for every single case.
Positive effects using G135
- Machining time reduction
- Lower feed variation during the machining process
Negative effects using G135
- Higher solicitations on machine structure and possible increase of following error
The optional increase of curvature jerk is obtained by programming the HX parameter, followed by a number
between 0 and 4, together with G135 I1.
G135 I1
G135 I1 HX0
G135 I1 HX1
G135 I1 HX2
G135 I1 HX3
G135 I1 HX4
G135 I0
To orient the choice, it is advisable to start by programming G135 I1 HX1, increasing the value up to 4, or
decreasing to zero, depending on the results; the correct value is function of machine dynamics and therefore not
easy to forecast.
118
9.6
Z32
high
speed
system activation
N10
G114
RA0.01
Chordal error
allowed on the
path (mm)
(edge rounding)
N20
G113B
N30
G113X KA1
HR0.02
HY6
Roundable segment
maximum length(mm)
Used only with G113B
Maximum acceleration
2
(mm/s )
K4000
J2
I30
Movement softness
factor.
Integer value.
Function of machine
setup.
MIN=0 MAX=6
Minimum
velocity
(mm/min)
Activates the
algorithm for curve
reconstruction
Deceleration
reduction due to
curvature changes.
N40
G135 I1 HX2
Value 0 = disabled
Value 1 = enabled
Note: Depending on the machine and on the available software versions, it is possible that not all functions are
available or appropriated for a given application. Please consult the machine tool builder for further information.
119
9.7
Example 1: Recalls a DNC program with G114, G113X KA1 and G113B active
T1M6
OX1 OY1 OZ1
F1000 S4000 M3
G0 Z200
(high speed settings)
G114 RA0.01 K2000 J2 I30 HY6 HR0.02
G113X KA1
G113B
(DNC launch)
!:L254-prog1.iso!
M2
Example 2: Recalls a DNC program with G114 and G113X KA1 active
T1M6
OX1 OY1 OZ1
F1000 S4000 M3
G0 Z200
(high speed settings)
G114 RA0.01 K2000 J2 I30
G113X KA1
(DNC launch)
!:L254-prog1.iso!
M2
Example 3: Recalls two DNC programs, with different settings for each program
T1M6
OX1 OY1 OZ1
F1000 S4000 M3
G0 Z200
(high speed settings)
G114 RA0.02 K4000 J2 HY6 HR0.04 I30
G113X KA1
G113B
G135 I1 HX2
(DNC launch)
!:L254-prog1.iso!
T4M6
F4000 S6000 M3
(high speed settings)
G114 RA0.005 K2000 J2 HY6 HR0.02 I30
(The G113X KA1 and G113B remain active)
G135 I0 (deactivates G135)
(DNC launch)
!:L254-prog2.iso!
M2
120
10.
PROGRAMMING EXAMPLES
10.1 Profile 1
Y
70
R20
65
R10
R20
30
R20
20
R15
0
X
0
100
25
121
10.2 Profile 2
Y
R15
65
R18
45
40
R8
75
R7
10
0
60
R20
-20
R18
-40
-35
-20
122
40
50
10.3 Rotation
Y
50
A
B
45
Profile A:
OX1 OY1 OZ1 (origin 1)
T1 M6 S2000 M3
G0 Z10 (initial approach)
G0 X0 Y0 (initial positioning)
G1 Z-1 F100(approach)
F1000 (machining to 1000 mm/min)
G1 Y50
X20
Y0
X0
G0 Z10 (retract)
M2
Profile B:
OX1 OY1 OZ1 (origin 1)
T1 M6 S2000 M3
G0 Z10 (initial approach)
QR45 (rotation)
G0 X0 Y0 (initial positioning)
G1 Z-1 F100(approach)
F1000 (machining to 1000 mm/min)
G1 Y50
X20
Y0
X0
G0 Z10 (retract)
M2
Profile C:
OX1 OY1 OZ1 (origin 1)
T1 M6 S2000 M3G0
Z10 (initial approach)
IR20 JR50 QR45 (rotation)
G0 X0 Y0 (initial positioning)
G1 Z-1 F100(approach)
F1000 (machining to 1000 mm/min)
G1 Y50
X20
Y0
X0
G0 Z10 (retract)
M2
45
20
123
10.4 Translation
Y
50
A
20
DA50
Profile A:
OX1 OY1 OZ1 (origin 1)
T3 M6 S5000 M3
G0 Z10 (initial approach)
G0 X0 Y0 (initial positioning)
G1 Z-1 F100(approach)
F1000 (machining to 1000 mm/min)
G1 Y50
X20
Y0
X0
G0 Z10 (retract)
M2
Profile B:
OX1 OY1 OZ1 (origin 1)
T3 M6 S5000 M3
G0 Z10 (initial approach)
DA50 DB-25
G0 X0 Y0 (initial positioning)
G1 Z-1 F100(approach)
F1000 (machining to 1000 mm/min)
G1 Y50
X20
Y0
X0
G0 Z10 (retract)
M2
124
DB-25
10.5 Roto-translation 1
40
Y'
20
Y
0
X'
R10
R20
30
50
R10
R20
20
0
-20
Y ''
R20
R10
-50
30
R20
R10
0
X''
-20
40
30
100
50
125
10.6 Roto-translation 2
B
A
X
Y
X
E
X
126
10.7
Mirroring 1
Y
0
30
60
20
B
A
R10
10
0
127
10.8 Mirroring 2
10
20
60
30
45
R10
X
128
129
45
130
131
132
133
10.14 Ellipse
134
135
T1M6
S2000 M3 F1000
G0 Z50
-- DO
X0 Y0 Z0
G1 Y10 RR-6
X20 RR10
X40 Y20 RR-20
X120 RR-10
Y0
G116
I-5
Y20 RR10
X40 RR20
X20 Y10 RR-10
X0RR6
Y0
G116 I-5
-- LOOP 18
G116 KA0
G0 Z50
M2
136
G25 XZY
OX1 OY1 OZ1
T1 M6
F5000 M3 S3000
R3
X-75 Y-20 Z10 G0
!PAR[1]=0!
-- DO
DC<PAR[1]>
Y-15
G25XZY (sets working plane XZ)
G41 X-75Z0QF0
G1 X-45RR8
G1 Z25
G1 X-12 Z40
G2 I0 J20 X12 Z40
G1 X45 Z25
Z0 RR8
X75
G40 X75 Z10
Y-13.5
G41 X75Z0QF180
G1 X45RR-8
G1 Z25
G1 X12 Z40
G3 I0 J20 X-12 Z40
G1 X-45 Z25
Z0 RR-8
X-75
G40 X-75 Z10
!PAR[1]=PAR[1]+3!
-- LOOP 10
Z100 G0
G25 XYZ
M2
137
Z'
Z
B-20
20
X'
X
OX1 OZ1
60
5
OX1 OY1
T2 M6
S1000 M3
F500
Z10
G117 B-20 (head rotation)
G116 X-60 KA2 (X Z reference system)
G0 X-20 Y0 Z5
G1 Z-10
Z5
M2
138
139
140
This second part-program is different from the preceding only for positioning type (linear movements) and the
machining stored in file 40 is not rotated (MPR=0).
141
142
143