The Publisher reserves all rights for contents
of this Manual. No reprinting, even in
extracts, is permissible unless our written
consent is obtained.
The text of this Manual has been compiled
and checked with utmost care, yet we
assume no liability for possible errors or
spurious data and for consequential losses or
demages.
8
1 Introduction
1 Introduction
1.1 The Part Program
The Part Program is a set of instructions that can be interpreted by the control system in order to
control the operation of the machine.
The Part Program consists of blocks which, in turn, comprise words.
Word: Address and Data
Each word is made up of two parts - an address and a data. The address has one or more
characters, the data is a numerical value (an integer or decimal value). Some addresses may be given
a sign or operator I.
At an address marked with a * in the Value Limits column, the data may have a decimal value as
well.
At an address marked with I and -, an incremental operator or a sign can be assigned, respectively.
The positive sign + is not indicated and not stored.
9
1 Introduction
Block
A block is made up of words.
The blocks are separated by characters s (Line Feed) in the memory. The use of a block number
is not mandatory in the blocks. To distinguish the end of block from the beginning of another block
on the screen, each new block begins in a new line, with a character > placed in front of it, in the
case of a block longer than a line, the words in each new line are begun with an indent of one
character.
Program Number and Program Name
The program number and the program name are used for the identification of a program. The use of
program number is mandatory that of a program name is not.
The address of a program number is O. It must be followed by exactly four digits.
The program name is any arbitrary character sequence (string) put between opening "(" and
closing brackets ")". It may have max. 16 characters.
The program number and the program name are separated by characters s (Line Feed) from the
other program blocks in the memory.
In the course of editing, the program number and the program name will be displayed invariably in
the first line.
There may be not two programs of a given program number in the backing store.
Beginning of Program, End of Program
Each program begins and ends with characters %. In the course of part program editing the
program-terminating character is placed invariably behind the last block in order to ensure that the
terminated locks will be preserved even in the event of a power failure during editing.
Program Format in the Memory
The program stored in the memory is a set of ASCII characters.
The format of the program is
Program Format in Communications with External Devices
The above program is applicable also in communications with an external device.
Main Program and Sub-program
The part programs may be divided into two main groups -
main programs, and
subprograms.
The procedure of machining a part is described in the main program. If, in the course of machining
repeated patterns have to be machined at different places, it is not necessary to write those
program-sections over and over again in the main program, instead, a sub-program has to be
organized, which can be called from any place (even from another sub-program). The user can
10
1 Introduction
return from the sub-program to the calling program.
DNC Channel
A program contained in an external unit (e.g., in a computer) can also be executed without storing it
in the control's memory. Now the control will read the program, instead of the memory, from the
external data medium through the RS232C interface. That link is referred to as "DNC channel". This
method is particularly useful for the execution of programs too large to be contained in the control's
memory.
The DNC channel is a protocol-controlled data transfer channel as shown below.
Controller:
Equipment:
<
BEL > DC1 NAK/ACK DC3ACK > BLOCK <
The above mnemonics have the following meanings (and their ASCII codes):
BEL (7): The control requests the sender to establish the communication. The control issues
L again unless ACK is returned in a definite length of time.
ACK (6): acknowledgment.
NAK (21): Spurious data transfer (e.g. hardware trouble in the line or BCC error). The
transfer of BLOCK has to be repeated.
DC1 (17): Transfer of the next BLOCK has to be started.
DC3 (19): Interruption of communication.
BLOCK:
– Basically an NC block (including the terminating character s) and the checksum
thereof (BCC) stored in 7 bits as the last byte of the block (bit 7, the
uppermost one, of BCC is invariably 0). No SPACE (32) or some other
character of lower ASCII code may be contained in the block.
– EOF (26) (End Of File), a signal is transferred by the Equipment ("sender") to
interrupt the communication.
For the DNC mode, set the second physical channel (only that one is applicable as a DNC channel)
for 8-bit even-parity mode.
A main program executed from the DNC channel may have a linear sequence only. This does not
apply to subprogram or macro (if any have been called) however, they must be contained in the
memory of control. In the event of a departure from the linear sequence in the main program
(GOTO, DO WHILE), the control will return error message 3058 NOT IN DNC. If the control
detects a BLOCK error and returns NAK, the BLOCK has to be repeated.
11
1 Introduction
1.2 Fundamental Terms
The Interpolation
The control system can move the tool along
straight lines and arcs in the course of machining. These activities will be hereafter referred
to as "interpolation".
Tool movement along a straight line:
program:
G01 Y__
X__ Y__
Tool movement along an arc:
program:
G03 X__ Y__ R__
Fig. 1.2-1
Although, in general, the table with the workpiece and not the tool moves, this description
will refer to the motion of the tool against the
workpiece.
Fig. 1.2-2
Preparatory Functions (G codes)
The type of activity to be performed by a block is described with the use of preparatory functions
(also referred to as G codes). E.g., code G01 introduces a linear interpolation.
Feed
The term "feed" refers to the speed of the tool
relative to the workpiece during the process of
cutting. The desired feed can be specified in the
program at address F and with a numerical
value. For example F150 means 150
mm/minute.
12
Fig. 1.2-3
1 Introduction
Reference Point
The reference point is a fixed point on the machine-tool. After power-on of the machine, the slides
have to be moved to the reference point. Afterwards the control system will be able to interpret data
of absolute coordinates as well.
Coordinate System
The dimensions indicated in the part drawing
are measured from a given point of the part.
That point is the origin of the workpiece
coordinate system. Those dimensional data have
to be written at the coordinate address in the
part program. E.g., X340 means a point of
coordinate 340 mm in the coordinate system of
the workpiece.
Fig. 1.2-4
The coordinate system
specified in the control
system and in which the
control interprets the
positions, is different from
the coordinate system of
the workpiece. For the
control system to make a
correct workpiece, the
zero points of the two
coordinate systems have
to be set at the same
position. This can be
achieved, e.g., by moving
Fig. 1.2-5
the tool center to a point
of known position of the part and setting the coordinate system of the control to that value.
13
1 Introduction
Absolute Coordinate Specification
When absolute coordinates are specified,
the tool travels a distance measured from
the origin of the coordinate system, i.e., to
a point whose position has been specified
by the coordinates.
The code of absolute data specification is
G90.
The block
G90 X50 Y80 Z40
will move the tool to a point of the above
position, irrespective of its position before
the command has been issued.
Fig. 1.2-6
Incremental Coordinate Specification
In the case of an incremental data specification,
the control system will interpret the coordinate
data in such a way that the tool will travel a
distance measured from its instantaneous
position.
The code of incremental data specification is
G91. Code G91 refers to all coordinate values.
The block
G91 X70 Y-40 Z-20
will move the tool over the above distance from
its previous position.
An incremental data may be defined to be
referred to a single coordinate as well. Standing
behind the address of the coordinate, character
I refers to the incremental specification of the
given coordinate value.
Fig. 1.2-7
In block
G90 XI-70 Y80 Z40
the data of X is interpreted as an incremental value, whereas data Y and Z are - for code G90 interpreted as absolute coordinates.
Modal Functions
Some codes are effective until another code or value is specified. These are modal codes. E.g., in
program detail
N15 G90 G1 X20 Y30 F180
N16 X30
N17 Y100
14
1 Introduction
the code of G90 (absolute data specification) and the value of F (Feed), specified in block N15, will
be modal in blocks N16 and N17. Thus it is not necessary to specify those functions in each block
followed.
One-shot (Non-modal) Functions
Some codes or values are effective only in the block in which they are specified. These are one-shot
functions.
Spindle Speed Command
The spindle speed can be specified at address S. It is also termed as "S function". Instruction S1500
tells the spindle to rotate at a speed of 1500 rpm
Tool Function
In the course of machining different tools have to be employed for the various cutting operations.
The tools are differentiated by numbers. Reference can be made to the tools with code T.
Instruction T25 in the program means that tool No. 25 has to be changed. The tool change can be
carried out manually or automatically, depending on the design of the machine.
Miscellaneous Functions
A number of switching operations have to be carried out in the course of machining. For example,
starting the spindle, turning on the coolant. Those operations can be performed with M
(miscellaneous) functions. E.g., in the series of instructions
M3 M8
M3 means “rotate the spindle clockwise”, M8 means "turn on the coolant".
Tool Length Compensation
In the course of machining, tools of
different length are employed for the
various operations. On the other hand, a
given operation also has to be performed
with tools of different lengths in series
production (e.g., when the tool breaks).
In order to make the motions described in
the part program independent of the
length of the tool, the various tool lengths
must be set in control system. If the
program is intended to move the tip of the
Fig. 1.2-8
tool to the specified point, the value of the
particular length data has to be called. This is feasible at address H. E.g., instruction H1 refers to
length data No.1. Henceforth the control will move the tip of the tool to the specified point. That
procedure is referred to as setting “tool length compensation" mode.
15
1 Introduction
Cutter Radius Compensation
Machining a workpiece has to be done with tools
of different radii. Radius compensation has to be
introduced in order to write the actual contour data
of the part in the program, instead of the path
covered by the tool center (taking into
consideration the tool radii). The values of radius
compensations have to be set in control system.
Hereinafter reference can be made to cutter
compensations at address D in the program.
Fig. 1.2-9
Wear Compensation
The tools are exposed to wear in the course of machining. Allowance can be made for such
dimensional changes (in length and radius as well) with wear compensations. The tool wear can be
set in the control system. A geometry value, i.e., the initial length and radius of the tool, and a wear
one belong to each compensation group (referred to at address H or D). When the compensation is
set, the control will compensate the movement with the sum of the two values.
16
2 Controlled Axes
2 Controlled Axes
Number of Axes (in basic configuration)3 axes
In expanded configuration5 additional axes (8 axes altogether)
Number of axes to be moved simultaneously8 axes (with linear interpolation)
2.1 Names of axes
The names of controlled axes can be defined in the parameter memory. Each address can be
assigned to one of the physical axes.
In the basic configuration, the names of axes
in a milling control system: X, Y and Z.
The names of additional (expansion) axes
depend on their respective types.
Possible names of expansion axes
performing linear motions are: U,V and W.
When they are parallel to the main axes X,Y
and Z, their name will be U,V and W,
respectively.
Axes performing rotational motions are
termed A, B and C. The rotational axes
whose axle of rotation parallel to X, Y and
Z directions are termed A, B and C,
respectively.
Fig. 2.1-1
2.2 Unit and Increment System of Axes
The coordinate data can be specified in 8 digits. They can have signs, too. The positive sign + is
omitted.
The data of input length coordinates can be specified in mm or inches. They are the units of input
measures. The desired one can be selected from the program.
The path-measuring device provided on the machine can measure the position in mm or in inches. It
will determine the output unit of measures, which has to be specified by the control system as a
parameter. The two units of measures may not be combined on a given machine.
In the case of different input and output units of measures, the control system will automatically
perform the conversion.
17
2 Controlled Axes
The rotational axes are always provided with degrees as units of measure.
The input increment system of the control is regarded as the smallest unit to be entered. It can be
selected as parameter. There are three systems available - IS-A IS-B and IS-C. The increment
systems may not be combined for the axes on a given machine.
Having processed the input data, the control system will provide new path data for moving the axes.
Their resolution is always twice the particular input increment system. It is termed the outputincrement system of the control.
Thus the input increment system of the control is determined by the resolution of the encoder.
Increment system Min. unit to be enteredMax. unit to be entered
0.01 mm999999.99 mm
IS-A
IS-B
IS-C
0.001 inch99999.999 inch
0.01 degree999999.99 degree
0.001 mm 99999.999 mm
0.0001 inch 9999.9999 inch
0.001 degree 99999.999 degree
0.0001 mm 9999.9999 mm
0.00001 inch 999.99999 inch
0.0001 degree 9999.9999 degree
18
3 Preparatory Functions (G codes)
3 Preparatory Functions (G codes)
The type of command in the given block will be determined by address G and the number following
it.
The Table below contains the G codes interpreted by the control system, the groups and functions
thereof.
constant surface speed control cancel65
canned cycle initial level return133
10
L Notes:
– The * marked G codes in a group represent the state assumed by the control system after power-
on.
– If several codes are marked with * in a group, a parameter can be set to select the effective one
after power-on. They are : G00, G01; G17, G18; G43, G44, G49; G90, G91; G94, G95.
– At the time of power-on, the particular one of G20 and G21 will be effective, that has been set at
the time of power-off.
– Default interpretation of command G05.1 after power-on can be specified with the MULBUF
parameter.
– G codes in group 00 are not modal ones; the rest are so.
– More than one G code can be written in a block with the restriction that only one of the same
function group may used.
– Reference to an illegal G code or specification of several G codes belonging to the same group
within a particular block will produce error message 3005 ILLEGAL G CODE.
21
4 The Interpolation
4 The Interpolation
4.1 Positioning (G00)
The series of instructions
G00 v
refers to a positioning in the current coordinate system.
It moves to the coordinate v. Designation v (vector) refers here (and hereinafter) to all controlled
axes used on the machine-tool. (They may be X, Y, Z, U, V, W, A, B, C)
The positioning is accomplished along a straight line involving the simultaneous movements of all axes
specified in the block. The coordinates may be absolute or incremental data.
The speed of positioning cannot be commanded in
the program because it is accomplished with
different values for each axis, set by the builder of
machine-tool as a parameter. When several axes
are being moved at a time, the vectorial resultant of
speed is computed by the control system in such a
way that positioning is completed in a minimum
interval of time, and the speed will not exceed
anywhere the rapid traverse parameter set for each
axis.
In executing the G00 instruction, the control system
performs acceleration and declaration in starting
and ending the movements, respectively. On completion of the movement, the control will check the
"in position" signal when parameter POSCHECK in the field of parameters is 1, or will not do so
when the parameter is set to 0. It will wait for the "in position" signal for 5 seconds, unless the signal
arrives, the control will return the 1020 POSITION ERROR message. The maximum acceptable
deviation from the position can be specified in parameter INPOS.
Being a modal code, G00 remains effective until it is re-written by another interpolation command.
After power-on, G00 or G01 is effective, depending on the value set in parameter group CODES of
the parameter field.
Fig. 4.1-1
4.2 Linear Interpolation (G01)
The series of instructions
G01 v F
will select a linear interpolation mode. The data written for v may be absolute or incremental values,
interpreted in the current coordinate system. The speed of motion (the feed) can be programmed at
address F.
The feed programmed at address F will be accomplished invariably along the programmed path. Its
axial components:
Feed along the axis X is
22
4 The Interpolation
Feed along the axis Y is
.............................
Feed along the axis U is
.............................
Feed along the axis C is
where x, y, u, c are the displacements programmed along the respective axes, L is the vectorial
length of programmed displacement:
G01 X100 Y80 F150
Fig. 4.2-1
The feed along a rotational axis is interpreted in units of
degrees per minute (°/min):
G01 B270 F120
In the above block, F120 means 120deg/minute.
If the motion of a linear and a rotary axis is combined
through linear interpolation, the feed components will be
distributed according to the above formula. E.g. in block
G91 G01 Z100 B45 F120
Fig. 4.2-2
feed components in Z and B directions are:
feed along axis Z: mm/min
feed along axis B:
°/min
Being a modal code, G01 is effective until rewritten by another interpolation command. After
power-on, G00 or G01 is effective, depending on the parameter value set in group CODES of the
parameter field.
23
4 The Interpolation
4.3 Circular and Spiral Interpolation (G02, G03)
The series of instructions specify circular interpolation.
A circular interpolation is accomplished in the plane selected by commands G17, G18, G19 in
clockwise or counter-clockwise direction (with G02 or G03, respectively).
Fig. 4.3-1
Here and hereinafter, the meanings of Xp, Yp, and Zp are:
Xp: axis X or its parallel axis,
Yp: axis Y or its parallel axis,
Zp: axis Z or its parallel axis.
The values of Xp, Yp, and Zp are the end-point coordinates of the circle in the given coordinate
system, specified as absolute or incremental data.
24
4 The Interpolation
Further data of the circle may be specified in one of two different ways.
Case 1
At address R where R is the radius of the circle. Now the control will automatically calculate the
coordinates of the circle center from the start point coordinates (the point where the control is in the
instant of the circle block being entered), the end point coordinates (values defined at addresses Xp,
Yp, Zp) and from the programmed circle radius R. Since
two different circles of radius R can be drawn between
the start and the end points for a given direction of
circumventing (G02 or G03), the control will interpolate
an arc smaller or larger than 180° when the radius of the
circle is specified as a positive or a negative number,
respectively. For example:
The circle center is specified at address I, J, K for the Xp, Yp and Zp axes. The values specified at
addresses I, J, K are interpreted always incrementally by the control system, so that the vector
defined by the values of I, J, K points from the start point to the center of the circle. For example:
With G17: G03 X10 Y70 I-50 J-20
With G18: G03 X70 Z10 I-20 K-50
With G19: G03 Y10 Z70 J-50 K-20
Fig. 4.3-3
25
4 The Interpolation
The feed along the path can be programmed at address F,
pointing in the direction of the circle tangent, and being
constant all along the path.
LNotes:
– I0, J0, K0 may be omitted, e.g.
G03 X0 Y100 I-100
– When each of Xp, Yp and Zp is omitted, or the end point
coordinate coincides with the start point coordinate,
then:
a. If the coordinates of the circle center are
programmed at addresses, I, J, K the
control will interpolate a complete circle of
Fig. 4.3-4
360°. E.g.: G03 I-100,
b. If radius R is programmed, the control returns error 3012 ERRONEOUS CIRCLE DEF.
R.
– When the circle block
a. does not contain radius (R) or I, J, K either,
b. or reference is made to address I, J, K outside the selected plane, the control returns
3014 ERRONEOUS CIRCLE DEF. error. E.g. G03 X0 Y100, or (G18) G02 X0
Z100 J-100.
– The control returns error message 3011 RADIUS DIFFERENCE whenever the difference
between the start-point and end-point radii of the circle defined in block G02, G03 exceeds
the value defined in parameter RADDIF.
Whenever the difference of radii is
smaller than the value specified in
the above parameter, the control
will move the tool along a spiral
path in which the radius is varying
linearly with the central angle.
The angular velocity, not the one
tangential to the path will be
constant in the interpolation of a
circle arc of a varying radius.
Fig. 4.3-5
26
The program detail below is an example of how
a spiral interpolation (circle of varying radius)
can be specified by the use of addresses I, J, K.
G17 G90 G0 X50 Y0
G3 X-20 I-50
If the specified circle radius is smaller than half
the distance of straight line inter-connecting the
start point with the end point, the control will
regard the specified radius of the circle as the
start-point radius, and will interpolate a circle of
a varying radius (spiral), whose center point is
located on the straight line connecting the start
point with the end point, at distance R from the
start point.
G17 G0 G90 X0 Y0
G2 X40 Y30 R10
4 The Interpolation
Fig. 4.3-6
Fig. 4.3-7
4.4 Helical Interpolation (G02, G03)
The series of instructions will define a helical interpolation.
It is distinguished from circular interpolation that a third axis (q), which is not an axis composing the
circular plane. The control performs a simple movement along axis q.
27
4 The Interpolation
The feed specified at address F is effective
along the circle path. Feed component Fq along
axis q is obtained from the relationship
where
Lq: displacement along axis q,
L
: length of circular arc,
arc
F: programmed feed,
Fq: feed along axis q.
For example:
G17 G03 X0 Y100 Z20 R100 F150
The series of instructions
Fig. 4.4-1
define a multi-dimensional spatial helical interpolation in which q, r, s are optional axes not involved
in the circle interpolation.
For example, series of instructions
G17 G3 X0 Y-100 Z50 V20 I-100
will move the tool along the superficies of an
oblique cylinder if V is an axis parallel to Y.
LNotes:
– Whenever parameter HELICALF in the field
of parameters is set to 1, the control will
implement the programmed feed along
the spatial path.
– In the case of the circle specified in the
selected plane having a varying radius,
the interpolation will be carried out
along the superficies of the specified
Fig. 4.4-2
cone.
28
4 The Interpolation
– The specified tool-radius compensation is implemented invariably in the plane of the circle.
4.5 Equal Lead Thread Cutting (G33)
The instruction
G33 v F Q
G33 v E Q
will define a straight or taper thread cutting of equal lead.
The coordinates of maximum two axes can be
written for vector v. The control will cut a
tapered thread if two coordinated data are
assigned to vector v. The control will take the
lead into consideration along the long axis.
If "<45°, i.e. Z>X, the programmed lead will
be taken into account along axis Z,
if ">45°, i.e. X>Z, the control will take the
programmed lead along axis X.
The lead can be defined in one of two 2 ways.
– If the lead is specified at address F, the data
will be interpreted in mm/rev or
Fig. 4.5-1
inch/rev. Accordingly, F2.5 has to be
programmed if a thread of 2.5 mm lead is to be cut.
– If the pitch is specified at address E, the control will cut an inch thread. Address E is interpreted
as number of ridges per inch. If, e.g., E3 is programmed, the control will cut a thread
a"=25.4/3=8.4667mm lead.
The shift angle of the thread start is specified at address Q expressed in degrees from the zero pulse
of the spindle encoder. A multiple thread can be cut by an adequate programming of the value of Q,
i.e., the control can be programmed here for the particular angular displacements of the spindle, at
which the various threads are to be cut. If, e.g., a double thread is to be cut, the first and the second
starts will be commenced from Q0 (no special programming is needed) and from Q180,
respectively.
G33 is a modal function. If several threadcutting blocks are programmed in succession,
threads can be cut in any arbitrary surface
limited by straight lines.
Fig. 4.5-2
The control is synchronized to the zero pulse of the spindle encoder in the first block, no
synchronization will be performed in the subsequent blocks resulting in a continuous thread in each
section of lines. Hence the programmed shift angle of the thread start (Q) will also be taken into
account in the first block.
29
4 The Interpolation
An example of programming a thread-cutting:
N50 G90 G0 X0 Y0 S100 M4
N55 Z2
N60 G33 Z-100 F2
N65 M19
N70 G0 X5
N75 Z2 M0
N80 X0 M4
N85 G4 P2
N90 G33 Z-100 F2
...
Explanation:
N50, N55 - Moving the tool over the center of hole, starting
the spindle in counter-clockwise rotation,
N60 - First thread-cutting cycle, (lead 2mm),
N65 - Oriented spindle stop (the spindle is stopped in a
fixed position),
N70 - Tool retraction along axis X,
N75 - Tool retraction to the top of hole, programmed stop,
the operator adjust the tool to the next thread-cutting
cycle,
N80 - Return to the center of hole, re-start of spindle,
N85 - Waiting for the speed to be assumed by the spindle,
N90 - Second thread-cutting cycle.
Fig. 4.5-3
LNotes:
– The control returns error message 3020 DATA DEFINITION ERROR G33 if more than two
coordinates are specified at a time in the thread-cutting block, or if both addresses F and E
are specified simultaneously.
– Error message 3022 DIVIDE BY 0 IN G33 is produced when 0 is specified for address E in the
thread-cutting block.
– An encoder has to be mounted on the spindle for the execution of command G33.
– In the course of command G33 being executed, the control will take the feed and spindle override
values automatically to be 100%; the effect of the stop key will only prevail after the block
has been executed.
– On account of the following error of the servo system, overrun and run out allowances have to be
provided for the tool in addition to the part at the beginning and end of the thread in order to
obtain a constant lead all along the part.
– In the course of thread-cutting the feed (in mm/minute) may not exceed the value selected in the
group of parameters FEEDMAX.
– In the course of thread-cutting the speed (r.p.m) of the spindle may not exceed the maximum
speed permissible for the spindle encoder mechanically and electrically (the maximum output
frequency).
30
Loading...
+ 176 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.