Академический Документы
Профессиональный Документы
Культура Документы
Application Manual
II Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Programming Manual
Validity The specified data is for product description purposes only and
may not be deemed to be guaranteed unless expressly confirmed
in the contract. All rights are reserved with respect to the content
of this documentation and the availability of the product.
Contents
Contents
Page
5 CPL-Functions . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1
5.1 Coordinate and Axis Values . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-1
5.2 Zero Offsets . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-18
5.3 Tool Compensation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-22
5.4 Tool Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5-24
5.5 Placements (Inclined Plane) . . . . . . . . . . . . . . . . . . . . . . . . . . 5-27
5.6 General Access to XML Tables . . . . . . . . . . . . . . . . . . . . . . . . 5-30
IV Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Contents
A Appendix . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-1
A.1 Abbreviations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-1
A.2 Overview Tables of NC Functions . . . . . . . . . . . . . . . . . . . . . A-2
A.3 ASCII Character Set . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-48
A.4 Additional Key Codes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-48
A.5 Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A-49
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 1-1
and Controls
L Store this documentation in a place to which all users have access at all
times.
DANGER
This symbol is used wherever insufficient or lacking compliance with in-
structions may result in personal injury.
CAUTION
This symbol is used wherever insufficient or lacking compliance with in-
structions may result in damage to equipment or data files.
DANGER
Danger of loss of life through inadequate EMERGENCY STOP de-
vices!
EMERGENCY STOP devices must be active and within reach in all
system modes. Releasing an EMERGENCY STOP device must not
result in an uncontrolled restart of the system!
First check the EMERGENCY STOP circuit, then switch the system
on!
DANGER
Incorrect or unintentional axis movements!
Always test new programs while inhibiting axis movements. For
this purpose, as a function of the Execute mode, the control pro-
vides the option to block axis movements or auxiliary functions by
means of special softkey commands.
DANGER
Incorrect or undesired control response!
Rexroth accepts no liability for damage resulting from the execu-
tion of an NC program, an individual NC block or the manual move-
ment of axes. Furthermore, Rexroth accepts no liability for resul-
ting damage which could have been avoided by programming the
PLC appropriately.
DANGER
Retrofits or modifications may adversely affect the safety of the
products described!
The consequences may include severe injury, damage to equip-
ment, or environmental hazards. Possible retrofits or modifica-
tions to the system using third-party equipment therefore must be
approved by Rexroth.
DANGER
The high output of the LED in the fiber optic connection can en-
danger eyesight if viewed directly.
When the converter is switched on, do not look directly at the LED
or into the open end of a short connected cable.
DANGER
Tool or axis movements!
Feed and spindle motors generate very powerful mechanical for-
ces and can accelerate very quickly due to their high dynamics.
D Always stay outside the danger area of a machine when the sy-
stem is on!
D Never deactivate safety-relevant functions!
D Report any malfunction of the unit to your servicing and repair
department immediately!
CAUTION
Use only spare parts approved by us!
ACHTUNG
Beim Umgang mit Baugruppen und Bauelementen alle Vorkehrun-
gen zum ESD-Schutz einhalten! Elektrostatische Entladungen
vermeiden!
Trademarks
All trademarks of software installed on our products upon delivery are
the property of the respective manufacturer.
NC Programming Basics
2 NC Programming Basics
An NC-control contains all the information about an NC-program (parts
program) that is required to machine a workpiece on a machine tool.
The structure of such an NC-program is not fixed, so that nearly any kind
of workpiece can be machined with a wide range of technologies (mil-
ling, turning, grinding, etc.). The parts program contains information ab-
out not only movements that the path of the tool describes relative to the
workpiece, but also about technologies.
Every NC program has an NC program name which must satisfy the ge-
neral conditions for file names.
D A maximum of 28 characters is allowed as NC program name.
D All letters, numbers and special characters . and _ are permitted.
D A distinction is made between capital and lowercase letters.
D Filenames within a directory must be unique.
D . and .. are permitted as program names.
2-2 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
NC Programming Basics
NC Programming Basics
NC Programming Basics
NC Programming Basics
NC Programming Basics
Each (DIN) instruction can also be programmed in the first line of a sub-
routine; as a result, a subroutine that is marked in this way is not linked.
Alternatively, key word DIN (without parentheses) can also be written
directly behind the subroutine call in the calling program (also see sec-
tion 2.6, Subroutines).
Link units
Independent link units result from subsequent linkage during the pro-
gram runtime:
D If a subroutine call is programmed using CPL-variables (e.g. P[UP$]),
the calling program and the called subroutine belong to different link
units.
D If a subroutine is programmed directly but linked subsequently (e.g.
due to a DIN-ID for subroutine call P UP DIN), the calling program and
the called subroutine belong to the same link unit, but all additional
subroutines called by the subroutine belong to another link unit.
NC Programming Basics
MP:
...
N10 P UP1 SR1
... ...
N1010 P UP11 DIN UP11
... ...
N2010 P UP111 UP111
...
100 UP$=UP2
...
N200 P[UP$] SR2
... ...
...
N300 UP3 DIN UP3
...
N1010 P UP31 UP31
... ...
NC Programming Basics
Instructions
Instructions are program words that directly or indirectly affect the tool
path, program run, status or mode of reaction of the control. For exam-
ple, all NC functions are typical instructions.
Available NC-functions, together with the corresponding required syntax
rules, can be found in chapter 4.
Example:
Path function with coordinate specification
G01 X40 Y50 Move at feedrate to X40/Y50
Coordinate specification
Path function
Additional conditions
Additional conditions are program words with which you can set required
technologies or processing boundary conditions for the machine.
Important program words that function as additional conditions include:
F<number> affects the feed of synchronous axes
FA<number> affects the feed of asynchronous axes
S<number> affects the spindle speed
M<number> activates M-functions (e.g. gear range selection, direc-
tion of spindle rotation subroutine call). Auxiliary functions
are also often programmed as M-functions.
T<number> selects tools
NC Programming Basics
NC Programming Basics
Each program word always consists of one or two partial words which
can be combined as follows:
Program word: Partial word 1: Partial word 2: Examples:
NC function Function syntax - AxAcc
G0
G52.1
Function syntax Parameter list AxAcc(...)
G0(NIPS)
Function syntax Value D5
M777
Synchronization Command syntax - OFFSTOPA
command
Command syntax CPL parameter WPV[@9=10]
list
Subroutine SR syntax: - P UP1
SR name G4711
SR syntax CPL parameter P UP2[7,@25]
SR name list G81[Z,R1]
Parameter Parameter syntax Value X-23.45
Y=AC(40)
S250
F5000
Parameter syntax Parameter list O(0,0,1)
ROTAX(0,45)
NC Programming Basics
D Parameter lists can be optional and contain at least one valid parame-
ter. If several parameters exist for one parameter list, they are to be
separated from one another using commas.
Example:
Syntax rule:TangToolOri({SYM<s>},{ANG<a>})
Using the syntax rule, you can see that parameters SYM and ANG
are optional parameters. For SYM, a suitable value must be pro-
grammed in place of wildcard <s> as well as in place of wildcard <a>
for ANG. The syntax rule generally specifies which values are per-
mitted for <s> and <a>.
For instance, one possible program for the syntax rule shown above
would be TangToolOri(SYM4) .
2-12 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
NC Programming Basics
Example:
GetAxis(X1,X,Y3,Y) The axes with system names X1 and Y3
transferred to the channel, where they
are assigned channel names X and Y.
GetAxis(X1,Y3,X,Y) The axes with system names X1 and X
are transferred to the channel, where
they are assigned channel names Y3
and Y.
Example:
GetAxis(<Phy.Ax1> {,<Log.Ax1>} {,<Phy.Ax2} {,<Log.Ax2>} {,...})
programmed without parameters within the list: GetAxis(X,,Z)
programmed without parameters at the end: GetAxis(X)
Example:
Variable name as transfer parameter:
10 AX1$=U String variable AX1$ receives the
content U.
20 AX2$=V String variable AX2$ receives the
: content V.
N100 G17([AX1$],[AX2$]) G17 opens the working plane with
axes U and V.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 2-13
and Controls
NC Programming Basics
Example:
KvProg(X1.2,Y1.4,Z1.6) and
KvProg(Z1.6,Y1.4,X1.2)
have the same effect because the individual CO values can be uniquely
assigned using axis addresses X, Y and Z.
CPL expressions can be used for both syntax elements and numerical
values. These must be enclosed in square brackets: [ and ].
Example:
20 VALUE=1.2 Assign a value of 1.2 to variable
WERT.
N30 KvProg(Y[VALUE],X1.2) Program CO values of axes Y and X.
The Y-axis receives the value contai-
ned in variable WERT while the X-
axis receives a value of 1.2 (con-
stant).
Example:
40 ACHSB$=X:FACT%=2 Assign values of X to string variable
ACHSB$ and 2 to integer variable
FACT%.
N50 Scale([ACHSB$][FACT%]) Switch on scaling by a factor of 2 for
axis X.
In the programming: Scale(X2)
Example:
60 DIM PARAMETER$(10) Create a character field for a
string with a maximum length of
10 characters.
70 PARAMETER$=X2
N80 AxAcc([Parameter$]) Assign an axis acceleration of
2 m/s2 to axis X.
NC Programming Basics
Example:
Program word consisting of address letter and a number
(here: coordinate value of the X axis
X-2407.0458
Decimal value
Value left of decimal point
Sign
Address letter
NC Programming Basics
Programming attributes
When programming axis and coordinate positions, it is also possible to
provide a programming attribute for the programmed position value.
Examples:
N10 G90 G1 F1000 X10 Y=IC(15) The X-axis traverses absolutely to po-
sition 10, the Y-axis incrementally 15
mm further.
N20 G91 X=AC(15) Y5 Despite G91, the X-axis traverses to
absolute position 15, the Y-axis incre-
mentally 5 mm further.
N30 B=DC(90) The B-axis (endless axis) is to traverse
to the 90-degree position following the
shortest path.
N40 B=ACP(350) The B-axis is to traverse to the
350-degree position with a positive di-
rection of rotation (working path: 260
degrees).
N50 B=ACN(0) The B-axis is to be positioned at 0 de-
grees with a negative direction of rota-
tion (working path: 350 degrees).
2-16 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
NC Programming Basics
Examples:
1. N10 OVE FeedForward(...) suitable separator: .
2. N20 X2=2 suitable separator: =
In the 2nd case, or + can also be used as a separator; - is also pos-
sible in the case of negative value assignment.
Using separators can also be relevant for parameter lists with syntax-
specific elements!
Axis and coordinate designations always start with a letter and can:
D consist of one or more letters, where the resulting character string
may not have the same appearance as an NC function.
Examples: X, PALETTE
D consist of one or more letters and end with a number.
Examples: X1, PALETTE1
D In this case, a suitable separator must be programmed between the
designation and the following value: =, +, - or a space.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 2-17
and Controls
NC Programming Basics
Example:
Axis designations X and X2 are defined.
N40 G1 X10 Axis X traverses to position 10
N50 G1 X20 Axis X traverses to position 20
N60 G1 X2.5 Axis X traverses to position 2.5
N70 G1 X=2.2 Axis X traverses to position 2.2
N80 G1 X 2.8 Axis X traverses to position 2.8
N90 G1 X2 Axis X traverses to position 2
N100 G1 X2 1 Axis X2 traverses to position 1
N110 G1 X2=2.8 Axis X2 traverses to position 2.8
N120 G1 X2+3 Axis X2 traverses to position 3
N130 G1 X2-2.4 Axis X2 traverses to position -2.4
Example:
:
N250 ... N250 is the last program block.
M30 End of program.
NC Programming Basics
Modal
Modal means that a program word remains effective in every subse-
quent program block until you
D program the same program word with a different value,
D program another program word that cancels its effect, or
D specifically switch off the function of the program word.
NC Programming Basics
Nonmodal
Nonmodal means that a program word has an effect only in the pro-
gram block in which it was programmed.
NC Programming Basics
Syntax:
$<Channel number>
Example:
N10 $2 This program can run only in channel 2.
: Program instructions
M30 End of program
NC Programming Basics
Example:
N10 G0 (<Remark text<) Invalid programming!
N20 G0 (NIPS) (<Remark text<) Valid programming
D You can initiate a remark with // behind a function with a possible op-
tional parameter list if the list is missing. Such a remark can be optio-
nally terminated with \\.
2-22 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
NC Programming Basics
Syntax:
REM <Remark text>
Example:
...
10 REM ***SR to demask the status word ***
...
NC Programming Basics
You can also program a note to provide the machine operator with a
handling instruction. To do this, program e.g. an M0 in the very same
line or in the following one. In this way, you ensure that the program is
interrupted immediately after the note text is output. The rest of the pro-
gram runs only after NC start is pressed .
Example:
: Program code
N60 (MSG Measure workpiece!) Output channel-spec. note.
N70 M0 Wait for NC start button.
: Program code
NC Programming Basics
D Decision/branch instructions
(see section 2.8, page 2-38 ff.)
Use such commands if individual program blocks, different program
sections or entire subroutines are to be executed depending on cer-
tain conditions.
D Repeat instructions
(see section 2.9, page 2-42 ff.)
Use repetition operations if program sections or entire subroutines
are to be run repeatedly. You can generally also enter how often the
repetition should take place.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 2-25
and Controls
NC Programming Basics
2.6 Subroutines
Subroutines (SR) are programs that are called using a subroutine call.
Once the execution of a subroutine has been concluded, the calling pro-
gram will continue to run from the point where the SR was called. A pro-
gram calling itself is called a recursive subroutine call.
The main program (MP) is the program from which execution jumps into
the first subroutine level (SR level).
Formally, no differentiation is made between main programs and sub-
routines; however, only subroutines can have transfer parameters. The
following applies:
D Subroutines can contain standard NC blocks and CPL blocks.
D Each parts program can be called by other programs as a subroutine.
However, a program is incapable of calling itself as a subroutine (re-
cursive calling is not possible).
D The calling program can transfer parameters to a subroutine.
D The maximum nesting depth is 8, i.e. the control can keep a maximum
of 8 subroutine levels open at the same time.
D Subroutine names are case-sensitive for the control.
Example:
Subroutine nesting. SRx: subroutine name
The IndraMotion MTX provides the following variants for calling subrou-
tines:
D Call with P address and subroutine name from a standard NC block
(optionally with path information).
2-26 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
NC Programming Basics
D Call only with subroutine name without path information and without P
address from a standard NC block.
D Subroutine as a self-defined G- or M-function in a standard NC block.
D Activation of a modal subroutine with self-defined syntax from a stan-
dard NC block.
D Call using the CALL function from a CPL block.
Syntax:
P{<Path>}<Name> {DIN}
where:
<Path> Directory in which the subroutine is located .
<Name> Name of the calling program.
DIN Optional. Prevents the subroutine from being linked.
Use this parameter only if the SR does not call any CPL
blocks or any additional SRs. Otherwise, an error message
occurs during the program runtime.
For further information, see the CALL-command on page
2-29.
Example:
:
N40 P Drill pattern Call program "Drill pattern".
N50 X100 Block N50 follows the end of the SR.
:
N140 G0 X10 Y0 PUP1 First positioning to X10/Y0 in rapid traverse.
N150 Z0 Then call of program "SR1".
: Block N150 follows the end of the SR.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 2-27
and Controls
NC Programming Basics
Syntax:
<Name>
where:
<Name> Name of the calling program.
Examples:
:
N40 XUP Call program "XUP".
N50 X100 Block N50 follows the end of the SR.
:
N100 X1UP Caution! The SR name X1UP programmed
: here leads to a syntax error because X1 is
: interpreted as a coordinate of an axis named
: X and a program named UP does not exist.
:
:
N140 G0 X10 Y0 XUP First positioning to X10/Y0 in rapid traverse.
N150 Z0 Then call of program "XUP".
: Block N150 follows the end of the SR.
2-28 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
NC Programming Basics
The G and M codes configured as subroutine calls may not collide with
permanently defined G and M codes.
NC Programming Basics
The syntaxes of the modal subroutine calls may not collide with the per-
manently defined NC functions.
The CALL keyword is followed by the program name. This, in turn, may
be followed by transfer parameters enclosed in square brackets and, to
conclude the instruction, the DIN identifier (to influence the link pro-
cess).
Example:
50 IF A% = 1 THEN
%! CALL P999
% ENDIF
:
NC Programming Basics
Example:
50 IF A% = 1 THEN
51 CALL P999 DIN SR P999 is excluded from linking
52 ENDIF
M30
The parameters transferred during the subroutine call are always ad-
dressed via variables P1, P2, P3, etc. in accordance with the sequence
of the parameter transfer.
The parameters may also be addressed by means of, for example,
P1TEST, P2XYZ, etc. However, the capital letters following P1, P2, etc.,
will be ignored (P1 = P1TEST = P1XYZ).
Example:
D P1 has a value of 2.75 in SR P999;
D P2 has the value of variable X% at the time of the parameter transfer
D P3 has a value of 0.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 2-31
and Controls
NC Programming Basics
Main program:
50 IF A% = 1 THEN
51 CALL P999 [2.75, X%, 0] Subroutine call with parameter trans-
fer
52 ENDIF
M30
Subroutine P999:
1 FACTOR=P1 : XVALUE%=P2% : CORRTAB%=P3%
N1 G1 X[XVALUE%*FACTOR]
N2 G22 K[CORRTAB%]
If a subroutine
D is to be invoked with a string-constant as a transfer parameter and
D the invoking program is selected without linking,
the PDIM-command must be used.
Syntax:
PDIM <Parameter name>(<Field size>)
If the field size programmed is too small or missing entirely, the control
reports parts program error Invalid variable.
Example:
Main program:
N10 (DIN)
:
N50 P UP[Test]
M30
Subroutine:
10 PDIM P1$(4)
M30
NC Programming Basics
The IndraMotion MTX offers the following functions in terms of jump in-
structions:
D Label programming for standard NC blocks (DIN)
D Label programming for CPL blocks
D GoAhead (GOA): Forwards jump to a standard NC block
D GoBack (GOB): Backwards jump to a standard NC block
D GoCond (GOC): Conditional jump to a standard NC block
D GoTo: Unconditional jump to a standard NC block
D CPL jump (GOTO): Jump to any program block
. CPL jump GOTO is already initiated at the linking time. In the stan-
dard NC commands, on the other hand, the target for the jump is
first searched while the program is running; this has a particularly
unfavorable effect on the runtime behavior when the target for the
jump is far away from the jump call.
NC Programming Basics
Syntax:
GoAhead <Label>
Abbreviation: GOA
where:
<Label> Name of target of jump.
2 to 32 characters. Letters, underlines and numbers are allo-
wed, but the first two characters may not be numbers.
Example:
:
N40 GoAhead LABEL1 Forwards jump to the target
: LABEL1.
N80 LABEL1: Label programming of the target of the jump
: LABEL1.
NC Programming Basics
Syntax:
GoBack <Label>
Abbreviation: GOB
where:
<Label> Name of target of jump.
2 to 32 characters. Letters, underlines and numbers are allo-
wed, but the first two characters may not be numbers.
Example:
:
N40 LABEL1: Label programming of jump target LA-
: BEL1.
N80 GoBack LABEL1 Backwards jump to the target
: LABEL1.
If no additional jump command is pro-
grammed between N40 and N80, the
program runs through an infinite loop
between N40 and N80!
NC Programming Basics
Syntax:
GoCond N<Number>
Abbreviation: GOC
where:
<Number> Block number.
D Number in integer or real format, with max. 15 digits.
D If the target block number is programmed with leading ze-
roes (e.g. N0020 ...), preceding zeroes must also be
programmed.
(GoCond N0020).
Example:
10 WAIT Pause block preparation until all blocks be-
N20 GoCond N090 fore N20 have been processed.
: Then jump to N090 if input signal Conditio-
: nal jump is active at the time of block pre-
: paration of N20.
:
N090 ...
:
NC Programming Basics
Syntax:
GoTo N<Number>
where:
<Number> Block number.
D Number in integer or real format, with max. 15 digits.
D If the target block number is programmed with leading ze-
roes (e.g. N0020 ...), preceding zeroes must also be
programmed here (GoTo N0020).
Example:
:
N40 GoTo N080 Forwards jump to block N080.
:
N080 GoTo N40 Backwards jump to block N40.
: If no additional jump command is program-
med between N40 and N080, the program
runs through an infinite loop between N40
and N080!
NC Programming Basics
Syntax:
GOTO <Target>
Example:
10 GOTO N20 Jump to block N20
N20 X100
30 GOTO 120 Jump to CPL block 120
...
120 GOTO .ZIEL1 Jump to label .ZIEL1
...
150 .TARG1
NC Programming Basics
Example:
: Interface signal Skip block is activated.
:
/N100 ... Block N100 is ignored.
: Interface signal Skip block is deactivated.
:
/N300 ... Block N300 is processed.
:
. The Skip block function can be used only for standard NC blocks
(DIN)!
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 2-39
and Controls
NC Programming Basics
Syntax:
IF <Condition> THEN <Routine> [ELSE <Alternative routine>]
ENDIF
Similar to the abort conditions for loop instructions, the condition for the
IF instruction may contain arithmetic, trigonometric and logical links.
Here, nesting is possible too.
Example:
...
10 X = 1
20 .START
30 IF X>=100 THEN
40 GOTO .END
50 ELSE X=X+2.75
60 GOTO .START
70 ENDIF
...
90 END
...
NC Programming Basics
The <instruction> area of a CASE construct can include all CPL instruc-
tions. A maximum of 10 CASE constructs can be nested.
Examples:
10 CASE A% OF
20 LABEL 0 : Y=1
30 LABEL 2
40 Y=Y*Y
50 LABEL 4 : Z=Y*Y
60 Y=Z*Z
70 OTHERWISE Y=0
80 ENDCASE
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 2-41
and Controls
NC Programming Basics
10 CASE (INT(X/Y)+C%) OF
20 LABEL 1.2 : X=1 : Y=2
30 LABEL 4.8
40 X=2 : Y=4
50 LABEL 0
60 X=0 : Y=1
70 OTHERWISE X=0 : Y=0
80 ENDCASE
10 CASE INTFELD%(1,2) OF
20 LABEL 1,2,3 : GOTO .MARK1
30 LABEL 4,5,6 : GOTO .MARK2
40 OTHERWISE GOTO .END
50 ENDCASE
NC Programming Basics
Syntax:
FOR <Count var.>=<Starting value> [STEP <Step size>] TO <End
value><Routine>
NEXT [<Count.variable>]
Example:
10 FOR I%=0 TO 18
20 XSINUS(I%)=SIN(I%*10)
30 NEXT I%
After the end of the loop, the counting variable will have a value which is
larger than the end value (max. step size).
In this example, the sine values for 0 through 180 degrees are written to
the XSINUS field. The I% that was appended to the NEXT in line 30 is
for clarification purposes only and may be omitted.
Example:
10 OPENW(1,P222,130)
20 SCHRITT%=2 : START%=1 : END%=3500 : NJUST
FOR COUNTER%=START% STEP STEP% TO END%
40 STEP%=ROUND(STEP%*SORT(STEP%))
50 PRN#(1,COUNTER: ,COUNTER%,STEP SIZE:
,STEP%)
60 NEXT
70 CLOSE(1)
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 2-43
and Controls
NC Programming Basics
Syntax:
REPEAT <Routine> UNTIL <Condition>
Example:
:
30 REPEAT
40 X=X+1 Loop until X = 100
50 UNTIL X=100
:
NC Programming Basics
Syntax:
WHILE <Condition> DO <Routine> END
Example:
:
30 WHILE SD(9)=0 DO Wait loop until SD(9) takes on a value of 0
40 I=I+1
50 END
:
NC Programming Basics
NC Programming Basics
Local variables
take effect only within the program for which they have been declared.
When the referred program reaches the end of program (EP), the varia-
bles are deleted, thus releasing the occupied memory. In the case of a
subroutine call, the name of a variable that is local with respect to the
main program will not be visible to the subroutine. However, the same
variable can also be declared as a local variable in the subroutine without
consequential interference due to the similarity of their respective na-
mes. Upon the return to the main program, the original local variable will
again be available, bearing the value that was current at the time the sub-
routine was invoked from within the main program.
Global variables
are identified by a leading # (number sign, gate or hash) character.
Once a value has been assigned to a global variable, it can be accessed,
read and/or modified from within all program parts for the remainder of
the entire program. Global variables are deleted subsequent to end of
program (EP).
NC Programming Basics
Permanent variables
are identified by a leading @ character that is followed by the name of
the variable. They can be addressed by any active program. The varia-
ble will be permanently retained even subsequent to EP. Deletion is pos-
sible only through direct overwriting. Permanent variables are stored in a
separate memory range. As a result, clearing the entire memory will not
affect permanent variables.
NC Programming Basics
Examples:
@WZNR%(1)=4 The first variable (with Index 1) of the 1-dimen-
sional field @WZNR of the INTEGER type is
assigned a value of 4.
@WZKOR(2,2)=0.2 The variable (with the indices 2,2) within the
2-dimensional field @WZKOR of the REAL type
is assigned a value of 0.2.
NC Programming Basics
NC Programming Basics
NC Programming Basics
Structured variables
can be replaced by system data (SD), but are retained for reasons of
compatibility (see section 5.8.2, System Data of Structured Types).
. For all variable names, the first 16 characters are significant. If two
names of variables exhibit a difference only with the 17th charac-
ter or later, CPL will interpret them as a single variable!
Example:
DEF DBT1Rec_t SV.A; Definition of a structured varia-
ble of type DBT1Rec_t
CPL instructions can access both SV.A and all the structure components
of SV.A. The various structure components are separated from one an-
other by a ..
Example:
10 SV.A.Hd=DBSEA(DBT1,-1,-1,K1=1,FOUND%)
2-52 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
NC Programming Basics
10 NUMBER% = 4
INTEGER variable
10 PI = 3.141593
10 PI! = 3.141592653589793
10 START? = FALSE
BOOLEAN variable
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 2-53
and Controls
NC Programming Basics
Example:
Dimensioning an ARRAY variable
10 DIM FIELDVAR(2,3)
Example:
Access to array variable
100 FIELDVAR(1,1) = MPOS(1)
110 FIELDVAR(2,1) = CPOS(1)
120 FIELDVAR(1.2) = MPOS(2)
130 FIELDVAR(2.2) = CPOS(2)
140 FIELDVAR(1.3) = MPOS(3)
150 FIELDVAR(2.3) = CPOS(3)
Prior to the initial access to the field variables, the index range and/or the
field size must be dimensioned with INTEGER constants:
D Field size of the field variable of types INTEGER and REAL:
max. 65536
D Field size of the field variables of type CHARACTER:
max. 1024
NC Programming Basics
Example:
1 REM String variable AB (length = 10)
2 DIM AB$(10)
3 REM 3 string variables CD (each with a length of 5)
4 DIM CD$(3,5)
5 AB$ = Z
6 CD$(2) = ABC
Overview of variables
Variable group Variable name Variable type Fields (arrays)
possible (X=yes)
Local max. 8 significant % INTEGER X
characters REAL X
! DOUBLE X
? BOOLEAN X
$ CHARACTER X
Global# incl. #character, % INTEGER X
max. 8 significant REAL X
characters ! DOUBLE X
? BOOLEAN X
$ CHARACTER X
Permanent@ 1 - 100
Definable max. 16 signifi- % INTEGER X
permanent@ cant characters REAL X
! DOUBLE X
? BOOLEAN X
$ CHARACTER X
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 2-55
and Controls
NC Programming Basics
NC Programming Basics
ERRNO
CPL variable ERRNO is an optional parameter that can be programmed
in the CPL functions in which it has been entered as a parameter. It can
be programmed at any position there.
NC Programming Basics
Example:
Read the position of channel-axis X in the first channel.
One of the following four lines (all with the same effect) can be program-
med:
10 POS = ACS(X,1,1,ERRNO)
10 POS = ACS(X,1,ERRNO,1)
10 POS = ACS(X,ERRNO,1,1)
10 POS = ACS(ERRNO,X,1,1)
2-58 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
NC Programming Basics
SETERR
After ERRNO has been evaluated, CPL command SETERR can be
used to generate a runtime error. As a result, the parts program is inter-
rupted at this point.
The text entered in parameter <Error string> is always output, regard-
less of the general language setting.
Syntax:
SETERR(<Error string>[,<Channel>])
where:
<Error string> Text that is output as an error.
(under Wera error number 3371)
<Channel> Channel number in which the error is to be output.
If <Channel> is not entered, the current channel is
used as the default value.
ERRNO CPL variable that can be programmed in any position
within parentheses.
When ERRNO is programmed, no runtime error is is-
sued; the return values are:
0: Access OK
-1: Parameter error
-5: Channel does not exist.
Example:
Read the position of channel axis X in the first channel.
10 POS = ACS(X,1,1,ERRNO)
20 IF ERRNO <>0 THEN
30 SETERR(Position could not be read)
40 ENDIF
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 2-59
and Controls
NC Programming Basics
SETWARN
After ERRNO has been evaluated, CPL command SETWARN can be
used to generate a warning; the parts program will continue to run.
The text entered in parameter <Warning string> is always output, re-
gardless of the general language setting.
Syntax:
SETWARN(<Warning string>[,<Channel>])
where:
<Warning string> Text that is output as a warning.
(under Wera error number 3372)
<Channel> Channel number in which the warning is to be
output.
If <Channel> is not entered, the current channel
is used as the default value.
ERRNO CPL variable that can be programmed in any po-
sition within parentheses.
When ERRNO is programmed, no runtime error
is issued; the return values are:
0: Access OK
-1: Parameter error
-5: Channel does not exist.
CLRWARN
Command CLRWARN makes it possible to clear all the warnings of a
channel generated by SETWARN.
Syntax:
CLRWARN([<Channel>])
where:
<Channel> Channel number in which all the warnings generated
by SETWARN are to be cleared.
If <Channel> is not entered, the current channel is
used as the default value.
ERRNO CPL variable that can be programmed in any position
within parentheses.
When ERRNO is programmed, no runtime error is is-
sued; the return values are:
0: Access OK
-1: Parameter error
-5: Channel does not exist.
Example:
10 CLRWARN(,ERRNO)
20 IF ERRNO <>0 THEN
30 SETWARN(Warnings not cleared)
40 ENDIF
2-60 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
NC Programming Basics
Example:
GOTO 10 Jump to line 10
GOTO10 any symbol name (variable); if it is alone, it leads to error
message Runtime error 2167 = missing because a va-
lue assignment for variable GOTO10 is expected.
Key terms
O: ABS AXO B: BCD C: CALL COF D: DATE DIRDEL
ACOS AXP BIN CASE COS DBSEA DIRINF
AND BITIF CHR$ CPOS DBTAB DO
APOS CLOCK CPROBE DCT DPC
ASC CLOSE DIM
ASIN CLRWARN DIRCR
ATAN
I: ELSE ERRNO F: FALSE FILESIZE G: GETERR I: IF
END FILEACCESS FOR GOTO INP#
ENDIF FILECOPY FXC INSTR
ENDCASE FILEDATE FXCR INT
EOF FILENO FXDEL
ERASE FILEPOS FXINS
L: LABEL M: MCODS N: NCF O: OF
LEN MCOPS NEXT OPENR
LJUST MID$ NJUST OPENW
MMC NOT OTHERWISE
MPOS NUL OR
Z: ZOT
ZOV
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 2-61
and Controls
NC Programming Basics
Value
Assignment symbol
(Logical) variable
NUL
If a value has not been assigned to a variable, it will have the value of
NUL. As a consequence, the statement <Variable>= NUL is true. This
signifies that the equals sign can also be used in expressions represen-
ting comparisons or conditional operations.
NC Programming Basics
Mathematical operations
Besides the assignment of a value in the form of a constant expression
(numerical) or a variable, it is also possible to assign the value of a CPL-
expression to a variable. A CPL-expression may contain functions using
both constants and variables.
As a rule, multiplication and division take priority over addition and sub-
traction. It is also possible to use parentheses, the nesting of which, to a
depth of seven, can be used with simple expressions (containing no
function calls).
Example:
1 I% = 25: XACTUAL = 10
2 XSET = 150/(100-I%)+XACTUAL XSOLL has a value of 12.
ABS
Returns the absolute value of the input value, i.e. negative values be-
come positive, while positive values remain positive.
Example:
1 I% = -125
2 XVALUE = 2*SQRT(ABS(100+I%)) XWERT has a value of 10.
INT
converts the input value (REAL) by cutting off the decimal places (roun-
ding) to a whole number (INTEGER). The input value may be a constant
or a variable.
Example:
1 XVALUE% = INT(10.9) XWERT has a value of 10.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 2-63
and Controls
NC Programming Basics
ROUND
converts the input value into a whole number (INTEGER) by rounding it
down or up. The input value can be a REAL-expression.
Example:
1 XVALLUE% = Round(10.9) XWERT has a value of 11.
2 XVALLUE% = Round(5.5) XWERT has a value of 6.
3 XVALUE% = Round(5.49) XWERT has a value of 5.
SQRT
This command forms the square root of an input value. The input value
must not be a negative value; this is not defined.
Example:
1 I% = 44
2 XSET = 4*SQRT(100+I%) XSOLL has a value of 48.
Example:
1 ANGLE = 30
2 XVALUE= SIN(ANGLE) XWERT has a value of 0.5.
3 YVALUE = ASIN(XVALUE) YWERT has a value of 30.
2-64 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
NC Programming Basics
Logical links
Binary logical operations can be effected by means of logical variables,
and decimal logical operations by using INTEGER variables. As depic-
ted in the diagram below, logical operations can be represented with the
usual operating symbols, i.e. the -and +-symbol (not in CPL, ho-
wever). As a consequence, multiplication/division calculations take
priority over addition/subtraction calculations, i.e. the AND operation
takes priority over the OR operation. Parentheses may be nesting up to a
depth of seven.
E1 E1 E1
E1 1 o!A & A >1 A =1 A
E2 E2 E2
E1 = A E1 . E2 = A E1 + E2 = A E1 . E2+E1 . E2=A
E1 0 L 0 0 L L 0 0 L L 0 0 L L
E2 0 L 0 L 0 L 0 L 0 L 0 L
A L 0 0 0 0 L 0 L L L 0 L L 0
NC Programming Basics
BCD
Converts binary value into BCD-format:
<BCD-Value>=BCD(<Binary value>)
Example:
1 BCD_VALUE = BCD(49) BCD_WERT has a value of 73.
BIN
Converts BCD-coded numbers into binary value:
<Binary value>=BIN(<BCD-Value>)
Example:
1 BIN_VALUE = BCD(49) BIN_WERT has a value of 31.
Comparison operations
NC Programming Basics
Constants
If numerical values are declared for program execution and are to re-
main unchanged (constant), such values may be entered into the in-
structions as a numerical expression.
Integer-constant (INTEGER)
Integers are written without decimal points.
Example:
NUMBER% = 4 INTEGER-constant
Example:
PI = 3.141593 REAL constant
Example:
Assignment of double-precision REAL constants and comparison of va-
riables with double-precision REAL constants.
NC Programming Basics
Example:
BEISPIEL$ = This is a character STRING constant
string
Code characters
CPL uses the following code characters:
NC Programming Basics
2.14.1 Overview
NC block synchronization commands can be used to:
D Synchronize NC programs to specific events.
D Synchronize block preparation with program execution.
D Limit Look-Ahead to a certain number of blocks.
D Synchronize NC programs in different channels to one another.
NC Programming Basics
WAIT(no parameter)
Function WAIT stops block preparation until all the blocks that were
programmed before the WAIT block have been fully processed. It is ab-
solutely required if current machine- or process-based data are to be
subsequently accessed within the program.
NC Programming Basics
Syntax:
WAIT(,<Waiting time>[,<ResVar>])
where:
<Waiting time> Waiting time in milliseconds; no places to the right of
the decimal point. The waiting time may also be pro-
grammed as an arithmetic expression.
<ResVar> Optional integer variable. After the waiting time has
elapsed, <ResVar> is assigned a value of 1.
Syntax:
WAIT(<BITIF-Condition>[,[<Timeout>][,<Result var>]])
where:
<BITIF condition> Specifies the condition that is to be checked on
the PLC-NC bit interface. The following syntax
must be maintained:
[NOT(]BITF(<Parameter>)[)][=<Sta-
tus>]
<Parameter> Transfer parameter of the BITIF-
function (for a description,
please refer to BITIF-Function,
page 5-51).
<Status> BOOLEAN expression with
which the result of the BITIF
function is compared. If <Status>
is not programmed, the compari-
son will be made to TRUE.
If the condition is fulfilled, block preparation re-
sumes.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 2-71
and Controls
NC Programming Basics
NC Programming Basics
BlkNmb (BNB)
Using the standard NC function BlkNmb, the maximum number of blocks
in the block preparation function can be limited.
For example, the BlkNmb function can be used to control further proces-
sing of runtime measuring results in the parts program.
Syntax:
BlkNmb(<Num>) Limit ON.
BlkNmb() or Limit OFF.
BlkNmb(0) The max. permitted number of blocks
depends on MP 7060 00110.
Abbreviation: BNB(...)
where:
<Num> Maximum desired number of blocks.
Integer.
Input range: greater than or equal to 0.
0: The number of blocks depends on
MP 7060 00110.
NC Programming Basics
All synchronization functions for the block execution time have CPL pa-
rameter lists (similar to subroutines). Lists of CPL expressions that
must be enclosed in square brackets: [ and ] are programmed in
these.
General rule:
D The permanent CPL-variables used in the functions WPV, WPVE,
SPV, SPVE are valid throughout the system. Therefore, the program-
mer has to make sure that incorrect use does not lead to unintended
function interaction.
D In the framework of the NC-functions offered, only the following sim-
ple types of permanent CPL-variables are permitted:
- INT
- BOOL
- REAL
- DOUBLE
In the case of arrays, only individual elements may be addressed!
NC Programming Basics
Wait for the states on the PLC-NC bit interface: WAITA / WAITO
Using function WAITA / WAITO starts the waiting process at runtime until
one or more of a maximum of 16 interface signals have reached a speci-
fied value.
Example:
Program 1 on channel 1 processes the end face of a turned part. Pro-
gram 2 in cahnnel 2 is to cut a groove into this end face and mustwait, for
program 1 to release the turned part for program 2. The release for pro-
gram 2 is effected by setting certain interface signals. When the inter-
face signals have reached the status, channel 1 transmits the release to
channel 2. While program 2 is machining, program 1 is waiting for pro-
gram 2 in order to continue its machining task.
Syntax:
Wait for each of the specified signals:
WAITA[BITIF(<Parameter>){=<Status>}, BITIF(<Parame-
ter>){=<Status>},...,{<Timeout>}]
NC Programming Basics
Examples:
N10 WAITO[BITIF(10,1,1)=FALSE, Waits actively until BI-
BITIF(11,1,2)] TIF(10,1,1) takes on a
value of 0 or BITIF(11,1,2) a
value of 1.
N10 WAITA[BITIF(10,1,1)=FALSE, Waits actively until BI-
BITIF(11,1,2)] TIF(10,1,1) takes on a value
of 0 and BITIF(11,1,2) a va-
lue of 1.
NC Programming Basics
Syntax:
The comparison value is determined at runtime:
WPV[<Perm.CPL-Variable><Comparison operator><Simple CPL-Ex-
pression>{,<Timeout>}]
NC Programming Basics
Examples:
N10 WPV[@9=10] The program waits at the active point in
time until the permanent variable @9 re-
aches a value of 10.
N10 WPVE[@8=(5*#VAR2%)] The term 5 * #VAR2% is evaluated at
preparation time. The value thus determi-
ned is compared to permanent variable
@8 at runtime. As long as @8 does not
correspond to the value determined, no
new NC block will become active.
2-78 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
NC Programming Basics
Syntax:
The value to be assigned is determined at runtime:
SPV[<Perm.CPL-Variable> = <Simple CPL-Expression>]
Examples:
N10 SPV[@6=1] A value of 1 is assigned to
permanent variable @6 at
runtime.
N10 SPV[@5=(7*(@PERMVAR1% +5))] The value of the term
(7*(@PERMVAR1% + 5)) is
determined at runtime and
then assigned @6.
N10 SPVE[@5=(7*#VAR1%)] The value of the term (7 *
#VAR1%) is determined at
preparation time and assigned
@5 at runtime.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 2-79
and Controls
NC Programming Basics
Movement stop until an axis positions has been attained. ASTOPA / ASTOPO
Using function ASTOPA / ASTOPO, it is possible to synchronize move-
ments between channels. Depending on the position of one or more
axes of the axis coordinate system ACS on a channel, the synchro-
nous movement on another channel is stopped and resumed.
Restrictions:
D The axes used for synchronization must belong to a channel other
than the channel to be controlled; otherwise a modal interlock may
occur.
D The channel to be controlled must be in automatic or manual input
mode.
D If AND and OR conditions have been specified for the channel simul-
taneously, there will be a channel stop when the respective condition
for at least one of the two functions has been fulfilled.
One or more conditions for stopping the channel can be entered for each
channel to be controlled:
D ASTOPA: As long as all conditions are fulfilled, the synchronous
movement of the channel to be controlled will be stopped (logical
AND -link).
D ASTOPO: As long as at least one condition is fulfilled, the synchro-
nous movement of the channel to be controlled will be stopped (logi-
cal OR -link).
. If new AND- and OR- conditions are entered, all previous condi-
tions in this channel become invalid.
Syntax:
AND-conditions:
ASTOPA[<Channel num-
ber>,<Cond.1>{,<Cond.2>}{..{,<Cond.8>}.}]
OR-conditions:
ASTOPO[<Channel num-
ber>,<Cond.1>{,<Cond.2>}{..{,<Cond.8>}.}]
where:
<Channel num- Number of the channel to be controlled (1-n).
ber> Integer-value or integer-variable.
<Cond.1, Entry of 1 to 8 conditions in the form:
Cond.2... <Axis><Comparison operator><Comparison va-
Cond.8> lue>
where:
<Axis> System or channel axis name, pro-
grammed as a CPL string constant
or as a CPL string variable.
2-80 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
NC Programming Basics
Example:
Use of axis names and numbers
10 AXISNO% = 2 Definition:
20 AXISNAME$ = X - axis number,
30 STOPCHAN% = 2 - axis name
: - channel number
N40 ASTOPO[STOPCHAN%, AXISNO%<10]
:
N90 ASTOPO[STOPCHAN%, Z>20.3]
:
N150 ASTOPO[STOPCHAN%, AXISNAME$<1.5]
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 2-81
and Controls
NC Programming Basics
Movement stop until a basic workpiece position has been attained. BSTOPA / BSTOPO
Using function BSTOPA / BSTOPO, it is possible to synchronize move-
ments between channels. Depending on the position of one or more
coordinates of the basic -workpiece coordinate system BCS on a
channel, the synchronous movement on another channel is stopped and
resumed.
Restrictions:
D The coordinates used for synchronization must belong to a channel
other than the channel to be controlled; otherwise a modal interlock
may occur.
D The channel to be controlled must be in automatic or manual input
mode.
D If AND- and OR- conditions have been specified for the channel si-
multaneously, there will be a channel stop when the respective condi-
tion for at least one of the two functions has been fulfilled.
One or more conditions for stopping the channel can be entered for each
channel to be controlled:
D BSTOPA: As long as all conditions are fulfilled, the synchronous
movement of the channel to be controlled will be stopped (logical
AND -link).
D BSTOPO: As long as at least one condition is fulfilled, the synchro-
nous movement of the channel to be controlled will be stopped (logi-
cal OR -link).
. If new AND- and OR- conditions are entered, all previous condi-
tions in this channel become invalid.
Syntax:
AND-conditions:
BSTOPA[<Channel num-
ber>,<Cond.1>{,<Cond.2>}{..{,<Cond.8>}.}]
OR-conditions:
BSTOPO[<Channel num-
ber>,<Cond.1>{,<Cond.2>}{..{,<Cond.8>}.}]
where:
<Channel num- Number of the channel to be controlled (1-n).
ber> Integer-value or integer-variable.
<Cond.1, Entry of 1 to 8 conditions in the form:
Cond.2... <Coordinate><Comparison operator><Compari-
Cond.8> son value>
where:
2-82 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
NC Programming Basics
Example:
Activate an AND condition for basic workpiece coordinates
N10 BSTOPA[3,z<12.0,x>15] Channel 3 is stopped for as
long as the following is applica-
ble to the controlling channel:
position of basic workpiece
coordinate z < 12 mm and
position of basic workpiece
coordinate x > 15 mm
Movement stop until a workpiece position has been attained: WSTOPA / WSTOPO
Using function WSTOPA / WSTOPO, it is possible to synchronize move-
ments between channels. Depending on the position of one or more
coordinates of the workpiece coordinate system WCS on a channel,
the synchronous movement on another channel is stopped and resu-
med.
Restrictions:
D The coordinates used for synchronization must belong to a channel
other than the channel to be controlled; otherwise a modal interlock
may occur.
D The channel to be controlled must be in automatic or manual input
mode.
D If AND- and OR -conditions have been specified for the channel si-
multaneously, there will be a channel stop when the respective condi-
tion for at least one of the two functions has been fulfilled.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 2-83
and Controls
NC Programming Basics
One or more conditions for stopping the channel can be entered for each
channel to be controlled:
D WSTOPA: As long as all conditions are fulfilled, the synchronous
movement of the channel to be controlled will be stopped (logical
AND -link).
D WSTOPO: As long as at least one condition is fulfilled, the synchro-
nous movement of the channel to be controlled will be stopped (logi-
cal OR -link).
. If new AND- and OR- conditions are entered, all previous condi-
tions in this channel become invalid.
Syntax:
AND-conditions:
WSTOPA[<Channel num-
ber>,<Cond.1>{,<Cond.2>}{..{,<Cond.8>}.}]
OR-conditions:
WSTOPO[<Channel num-
ber>,<Cond.1>{,<Cond.2>}{..{,<Cond.8>}.}]
where:
<Channel num- Number of the channel to be controlled (1-n).
ber> Integer-value or integer-variable.
<Cond.1, Entry of 1 to 8 conditions in the form:
Cond.2... <Coordinate><Comparison operator><Compari-
Cond.8> son value>
where:
<Coordinate> For WCS:
Coordinate name or coordinate
index, programmed as a CPL
string constant or as a CPL string
variable.
<Comparison permitted operators:
operator> < , , > ,
<Comparison Real value or real CPL expres-
value> sion. The value is determined at
preparation time and remains
modally effective.
NC Programming Basics
Example:
Activate an AND condition for workpiece coordinates
N10 WSTOPA[3,Z<12.0,X>15] Channel 3 is stopped for as
long as the following is applica-
ble to the controlling channel:
Position of workpiece coordi-
nate Z of the channel is less
than 12 mm and position of
workpiece coordinate (WCS) X
is greater than 15 mm
Syntax:
OFFSTOPA Clears all AND stop conditions
CAUTION
Undesired traversing motion!
Many NC -functions expect the programming of axis/coordinate
addresses. Generally, only the addresses of the corresponding
axes of the channel, i.e. synchronous axes, may be programmed
in addition to the coordinate addresses.
Programming the address of an asynchronous axis within a para-
meter list generally leads to a syntax error, while programming
outside of a parameter list leads to a synchronous traversing mo-
tion!
Exceptions:
G74(Home) VA1: asynchronous axis VA approaches reference
point.
GAX(VA): asynchronous axis VA is transferred to
the channel
FsMove, FsTorque, FsReset: Function Move to positive stop
also affects asynchronous axes.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 3-1
and Controls
3.1 Overview
The control has a variety of NC-functions. In addition to the commands
that are specified within DIN 66025, this includes important supplements
in the area of G-codes and additional high-level language-type syntax
elements.
The controls NC-functions include
D 1- and 2-digit G-codes:
these are geared mainly towards the DIN 66025, providing sensible
supplements to its G-code -vocabulary to
D supplement function groups that exist in the DIN
(e.g. G52, G53, G54, ...), or
D introduce new function groups that relate to existing function
groups.
1-digit G-codes can always be written with 2-digits with a leading zero
(e.g. G0=G00, G1=G01, ...).
D 3-digit G-codes (exceptions):
such G-codes are used if an existing function from the 2D-area is ap-
plied in the same manner in the 3D-area (e.g. G41, G42 -> G141,
G142).
D G-codes with .-extension:
these are used together with zero offsets or coordinate transforma-
tions.
These functions have up to 6 pages that can be addressed/program-
med using the .-extension.
Examples:
G54.4 1st zero offset of page 4
G59.4 6th zero offset of page 4
D M-functions with defined NC-functions
e.g. M0, M30
D NC-functions with high-level language syntax:
D (see Chapter 4)
Used notations
The following notations are used for the syntax of NC functions in this
manual:
Curly brackets { }
indicate an optional expression/parameter.
Such syntax elements may, but do not have to be specified.
Example: G0{({POL,}{<Par1>})}
Character |
separates possible parameters that cannot be used simultaneously (al-
ternative parameters).
Example: G0{({POL,}{NIPS|IPS1|IPS2|IPS3})}
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 3-3
and Controls
G-Codes G00
3.2 G-Codes
3.2.1 Linear interpolation at rapid traverse G00
Effect
Approaches a programmed position with interpolation on a straight line
at the maximum path speed (= in rapid travel).
+Y
300
Target
G0 position
200
100
Starting position
W +X
100 200 300 400 500
Programming
G-Codes G00
G0({NIPS|IPS|IPS1|IPS2|IPS3,}{POL})
where:
NIPS Precise stop OFF. No braking to v=0 at the end of a block.
IPS Precise stop ON. The Precise stop window that was last
set for the input is taken into account (default = fine positio-
ning window).
At the end of the block, the control first brakes the path
velocity to v=0. Only when this positioning window has been
reached for all axes involved will the traversing movement of
the next block be executed.
The Precise stop window for feed mode is not affected by the
Rapid traverse positioning window.
IPS1 As for IPS, but always with a fine positioning window.
IPS2 As for IPS, but always with a coarse positioning window.
IPS3 As for IPS; however, no positioning window is checked in-
stead, merely braking to a velocity v=0 occurs at the end of
the block.
For more information regarding the precise stop, see
function G61/G62.
POL Activates polar coordinate programming and sets polar
angle 1 to 0, polar angle 2 to 90 degrees.
See section 4.55.2, page 4-97 ff. on how to program polar
coordinates.
G-Codes G01
Effect
Approaches a programmed position with interpolation on a straight line
with the effective feedrate (programmable using F-address).
The movement is coordinated in such a manner that all axes involved
arrive at the programmed end point simultaneously.
Please note the following:
D The programmed feedrate value (F) acts as path feed; this means in
the case of more than one moving axis that the portion of each indi-
vidual axis is less than F.
D The function acts modally and cancels G0, G2, G3, G5, G6, G33.
+Y
300
Target
G1 position
200
100
Starting position
W +X
100 200 300 400 500
Programming
G1({IPS|IPS1|IPS2|IPS3,}{POL})
where:
IPS Precise stop ON, regardless of G61/G62. The Precise stop
window that was last set for the feed mode is taken into
account (default = fine positioning window).
At the end of the block, the control first brakes the path
velocity to v=0. Only when this positioning window has been
reached for all axes involved will the traversing movement of
the next block be executed.
IPS1 As for IPS, but always with a fine positioning window.
3-6 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
G-Codes G01
Effect
Approaches the programmed target position in the active working plane
with interpolation on a circular path with the current feedrate (program-
mable using F-address).
D G2: Clockwise circular path
D G3: Counterclockwise circular path
+Y +Y
Target Target
position position
G2
G3
+X +X
W W
Circular interpolation:
Solely the axes of the active working plane participate.
Helical interpolation:
An additional synchronous axis to the axes of the active working plane
participates.
If this axis is positioned perpendicular to the active working plane (e.g.
the remaining axis of the workpiece coordinate system), a helical path
with a constant slope is generated (helical interpolation).
Helical interpolation
(Special case: helical
interpolation)
C
Y
O: Starting point
E: End point
A
X
W
3-8 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Helical-N interpolation:
More than one additional synchronous axis (max. 6) to the axes of the
active working plane is programmed.
Helical-N interpolation
Y O: Starting point
W A E: End point
X
U
Radius programming
Using the current position as the starting point, you specify a circular mo-
vement by programming the circles
D end point and
D radius.
The circles end point can be given as an absolute or incremental posi-
tion value.
+R End -R
point
Starting point
W W +X
+X
D If interpolation parameters that are not suitable for the selected plane
are programmed, the control reports a runtime error.
Example: G17 G2 X5 I9 K7 (Error: K is not suitable for the X/Y-
plane)
+Y G2
20
End point
10
Starting point
W +X
10 20 30 40
+Y
250 E
A
100
!J M
50
G-Codes G04
Effect
Stops program execution. The subsequent programmed block is pro-
cessed only after the programmed dwell time has elapsed.
The dwell time starts when the previous NC block has been completely
processed.
Rotating spindles or traversing auxiliary axes is not stopped. Synchro-
nous axes can reduce their lag, if necessary.
The dwell time can be programmed in
D seconds or
D in spindle revolutions.
Programming
Syntax:
G4(F<Value>) Dwell time in seconds.
G4(S<Value>) Dwell time in spindle revolutions.
where:
<Value> Entry in seconds or spindle rotations.
If 0 is entered, the G4 block is discarded internally.
G-Codes G05
CAUTION
Machining marks are possible at the block transition in the case
of helical/helical-N interpolation!
The calculated tangential transition refers only to the circle plane.
The spatial tangent may jump at the block transition!
Programming
Syntax:
G5 <EP>
where:
<EP> Coordinates of the circles end point.
If the starting and end points within the circle plane are iden-
tical, a full circle is generated automatically.
A T A
70 100 E 70 T
70 40
A T M1
10 M E
+X +X +X
W W W 50
50 110 50 130 15 90
G1 X20 Y70 F200 G1 X20 Y70 F200 G1 X-15 Y40 F200
X50 X50 G2 X50 Y70 R-60
G5 X110 Y10 G5 X130 Y100 G5 X90 Y120
T: Tangent. O: Starting point of the circular segment. I: End point of the circular segment. M: Center point
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 3-15
and Controls
G-Codes G06
. For detailed information about the individual spline types, see the
Description of Functions.
Programming
Syntax:
G6 Activate the Spline type of path.
Depending on the required programming type, G6 can be programmed
for the various spline types with different, modally effective parameters:
3-16 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
G-Codes G06
Coordinate/axis programming:
Each channel coordinate may be moved if desired
D as a spline by specifying the polynomial coefficients
<Coordname>(<c0>,<c1>,....,<cn>) Programming indivi-
dual coordinates with
polynomial coeffi-
cients.
D or linearly by specifying the end positions:
<Coordname>(<Endpos>) Programming the end
position of individual
coordinates/axes.
where:
<Coordname>: Name of coordinate or axis
<c0>,<c1>,...,<cn>: Polynomial coefficients of a coordinate.
n corresponds to the spline degree de-
fined in SplineDef.
<Endpos>: End position of the coordinate.
Example:
SplineDef(3)
G6 X(0.1,1.25,0.5,0.73) Y30 B(0.0,-1.0,0.1,-0.2)
G-Codes G06
Example:
N00 ;Spline coefficients for vector orientation
001 PI=3.14159:PIH=PI/2:PIHQ=PIH*PIH:PIHC=PIHQ*PIH
N10 G1 F30000 X0 Y0 Z0 B90 C0
N20 SplineDef(3)
N30 Coord(1) ;5-axis transformation with vector orienta-
tion ON
N40 G6 PL[PIH] ;PL: see spline parameter length programming
N50 O1(1,0,-3/PIHQ,2/PIHC) O3(0,1,(3-PI)/PIHQ,(-2+PIH)/PIHC)
N60 O1(0,0,3/PIHQ,-2/PIHC) O3(1,0,(-3+PIH)/PIHQ,(2-PIH)/PIHC)
N70 O(0,1,0) ;Normal vector orientation
N80 G1
N90 Coord(0)
Example:
G6 X(0.1,1.25,0.5,0.73) B(0.0,-1.0,0.1,-0.2) PL0.6
3-18 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
G-Codes G06
Coordinate/axis programming:
The end points of the channel coordinates are programmed.
All <members> listed in SplineDef move along the spline curve; the re-
maining coordinates not defined in SplineDef move on a straight line.
<Coordname>(<Endpos>) and/or Programming of indivi-
<Axisname>(<Endpos>) and/or dual coordinates/axes/
<Orientation coordinates>(<Endorient>) orientation coordinates
and their values.
where:
<Coordname>: Name of coordinate.
<Axisname>: Name of axis.
<Endpos>: End position of the coordinate/axis.
<Orientation coordinates > Orientation coordinates O or phi and
theta.
<Endorient>: End orientation in polar angles or Carte-
sian coordinates.
Example:
Coordinates x, y, z and orientation coordinates phi, theta.
SplineDef(2203,x,y,z,phi,theta)
G6 x10 y20 phi20 theta30
Example:
Axes X,Y,U
SplineDef(1213,X,Y)
G6 X10 Y10 U20 (X and Y move as spline, U linearly)
G-Codes G06
where:
<Type> Default: 2
1: (valid for C1 and C2)
Specification of tangential direction at the starting/
end point of the spline sequence. A value must be
entered in the <Values> list for each spline member.
2: (valid for C1 and C2)
Specification of the second derivation at the starting/
end point of the spline sequence. A value must be
entered in the <Values> list for each spline member.
3: (valid for C2)
De Boors boundary condition: links the second de-
rivatives at the first/last two interpolation points.
<Values> is usually 1 here.
4: (valid for C2)
Periodic boundary condition: the last and the first
point of the spline-sequence match. SBC(4) abso-
lutely requires EBC(4) or
EBC(4) absolutely requires SBC(4).
The entire spline-sequence must be in the look-
ahead range; otherwise, a runtime error will be gen-
erated.
11: (valid for C1 and C2)
For starting condition: First spline starts tangentially
relative to the previous-linear block.
For end condition: The last spline leads tangentially
to the subsequent-linear block.
<Values> Default: 0,...,0
All information entered in <Values> taken together indi-
cates the direction and size of the starting- /end tangent
or the second derivative at the starting- /end point.
A positive or negative value may be entered for each
spline-member.
Type 11 does not need any <Values>.
Example:
SBC(1,1.0,1.0,0.2) if SplineDef(1213,X,Y,B)
Spline-parameter length:
The spline-parameter length is calculated by the NC from the specified
interpolation points. The process (parameter setting) defined in the spli-
ne-ID is used for this purpose. The spline-parameter length may also be
programmed, if necessary.
{PL<we >} Optional programming of the spline-parameter length if
the <parameterization> selection is to be overwritten
(see page 4-136 SplineDef, parameter <Id>).
where:
<we >: any value > 0
3-20 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
G-Codes G06
Coordinate-/axis programming:
The end points of the channel coordinates (checkpoints) are program-
med. All <members> listed in SplineDef move along the spline-curve;
the remaining coordinates not defined in SplineDef move on a straight
line.
<Coordname>(<Endpos>) and/or Programming of indivi-
<Axisname>(<Endpos>) and/or dual checkpoints (coor-
<Orientation coordinates>(<Endorient>) dinates/axes) and their
values.
where:
<Coordname>: Name of coordinate.
<Axisname>: Name of axis.
<Endpos>: End position of the coordinate/axis.
<Orientation coordinates > Orientation coordinates O or phi and
theta.
<Endorient>: End orientation in polar angles or Carte-
sian coordinates.
Spline-parameter length:
The spline-parameter length is automatically calculated by the NC-from
the specified -checkpoints. The process (parameter setting = 1) defined
in the spline-ID is used for this purpose. The spline-parameter length
may also be programmed, if necessary.
{PL<we >} Optional programming of the spline-parameter length if
the <parameterization> selection is to be overwritten
(see page 4-136 SplineDef, parameter <Id>).
where:
<we >: any value > 0
Effect
D Without path slope, the control performs a complete up and down
slope (speed ramp) to v=0 at the start and end of a traversing block.
Although this reduces the contour deviation at the block transition, it
requires a longer processing time.
D Using path slope, the control attempts to generate a speed as con-
stant as possible within the magnitude of the programmed feedrate,
even at the block transition. This reduces the processing time.
The fact that the contour may be rounded at the contours in this case
may also be an advantage for certain processing procedures (more
uniform surface).
P7
Y
G1 Conto
P3 P4
ur
G0 P1 P2 P5 P6 P8
P0
VPath X
Rapid
travers Without
Feede path slope
(G9)
VPath t
Rapid
travers where:
Feede path slope
(G8)
t
Programming
Effect
Jolt-limited velocity control smoothes jumps during path acceleration
over several interpolation cycles. The number of interpolation cycles can
be programmed.
This results in gentle velocity transitions (jolt limitation).
Jolt-limited velocity control is possible in both
D contour mode (with G8 active) and
D positioning mode (with G9 active).
a(t)
without SHAPE
a1
t
a(t)
with SHAPE
a1
t
nipo: nipo:
Example:
N30 G8(SHAPE10) Switch on SHAPE in contour mode and divide
: the acceleration jumps over 10 IPO cycles.
:
N50 G8(SHAPE0) Switch off shape for contour mode.
:
:
N70 G8(SHAPE1) Switch off shape for contour mode.
:
:
N90 G8 Drive with the default value for SHAPE stored in
machine parameter 7050 00320.
where:
<Value> Number of interpolation cycles over which the control should
divide the acceleration jump with a sin2 shape.
The following values are permitted:
5: 5 IPO cycles
10: 10IPO cycles
15: 15IPO cycles
20: 20IPO cycles
40: 40IPO cycles
eff p
a eff
i
Si = Si
a max
i
In this case,
p axis-shape-order programmed with G9(...).
Si
3-26 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
eff
ai effective axis acceleration in the current NC-block.
With linear interpolation, the value depends on the current path
segment of the axis. With other types of interpolation (e.g. circular,
helical), it is the axis acceleration usually programmed with Ax-
Acc.
If the functions Inclined plane or Axis coupling are used, the ef-
fective axis acceleration is generally decreased once again as
compared to the AxAcc-value!
max
ai Maximum axis acceleration (from MP 1010 00001).
Example:
Axis X has a maximum acceleration (MP 1010 00001) of 10 m/s2. The
programmed axis-shape-order is 5 and the interpolation cycle is 4 ms.
According to the formula above, a maximum jolt of 500m/s3 is thus defi-
ned for axis X.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 3-27
and Controls
G-Codes G16
Effect
Deactivates a plane that may be active.
The following applies:
D If a main or secondary axis is removed from a channel (e.g. in connec-
tion with function Axis transfer), the control automatically switches
off the selected plane and activates function G16.
Circular or helical interpolation cannot be performed in this channel
before a valid plane is selected.
D Some applications, types of machines, or processing functions do not
require the configuration of a plane if neither circular nor helical inter-
polation is necessary (e.g., for channels with only one machining
axis).
Classification 999 no processing function can then be entered in
MP 7010 00030 for each axis.
D If no plane function (G17, G18, G19, G20) has been entered for a
channel after power-up (MP 7060 00010 and 7060 00020), function
G16 is automatically activated for the respective channel.
D Functions G16, G17, G18, G19 and G20 form a modal group and the-
refore cancel each other mutually.
Programming
Syntax:
G16
Effect
For a typical Cartesian standard machine tool, axes X, Y and Z are
used to open a Cartesian workpiece coordinate system (WCS). Using 2
coordinate axes each of the workpiece coordinate system, a total of 3
different basic levels can be defined.
The plane switching function is used to select the active plane. It is defi-
ned using one primary and one secondary coordinate, as well as if ne-
cessary a feed axis that is positioned perpendicular to this plane.
G17, G18 or G19 is programmed without parameters for this.
G17, G18 and G19 specify these coordinates and the active plane as fol-
lows:
G41
G2
G41
W/P
W/P +X G2 +X W/P
+X
G2
G41
+Z +Z +Z
Programming
Syntax:
G17
G18
G19
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 3-29
and Controls
In general, the following assignment results for G17, G18 and G19:
Primary coordi- Secondary Feed coordinate Active plane
nate coordinate
G17 X-coord. WCS Y-coord. WCS Z-coord. WCS XY-coord. WCS
G18 Z-coord. WCS X-coord. WCS Y-coord. WCS ZX-coord. WCS
G19 Y-coord. WCS Z-coord. WCS X-coord. WCS YZ-coord. WCS
3-30 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Effect
Enhanced plane switching specifies, in addition to the selection of the
active plane, which axes are to currently cover the workpiece coordinate
system WCS.
As a result, it is possible at runtime to define a workpiece coordinate sy-
stem that deviates from the setting within the machine parameter and,
based on this, to select the current plane.
Programming
Syntax:
G17(<Axis1>,<Axis2>,<Axis3>)
G18(<Axis1>,<Axis2>,<Axis3>)
G19(<Axis1>,<Axis2>,<Axis3>)
where:
<Axis1> X-coordinate of the workpiece coordinate system WCS
<Axis2> Y-coordinate of the workpiece coordinate system WCS
<Axis3> Z-coordinate of the workpiece coordinate system WCS
G-Codes G20
Effect
Free plane selection is required for applications for which the active
plane must be decoupled from the current workpiece coordinate system
WCS. It permits covering using any axis, regardless whether they are
currently also covering the WCS.
In this way, it is possible to, among other things, calculate the tool com-
pensations (G41, G42, G47) in the primary, secondary and feed coordi-
nate of the current plane while the workpiece transformations
(placements, opening corrections) simultaneously refer to a workpiece
coordinate system that is covered by other axes.
Programming
Syntax:
G20(<Axis1>,<Axis2>{,<Axis3>})
where:
<Axis1> Primary coordinate of the plane to be opened; assigned to
interpolation parameter I.
<Axis2> Secondary coordinate of the plane to be opened; assigned
to interpolation parameter J.
<Axis3> Feed coordinate of the plane to be opened.
Can be programmed if it is necessary to arrange a feed axis
for tool compensation G47(ActPlane).
G-Codes G33
Effect
Permits the cutting of
D longitudinal threads
(cutting motion parallel to the main axis of the active plane),
D transversal threads
(cutting motion parallel to the secondary axis of the active plane),
D tapered threads
(the main - and the secondary axis of the active plane are involved in
the cutting movement).
G-Codes G33
Programming
Syntax:
G33 <EP>,<Fixed pitch>{,<Var. pitch>}{,<Starting angle>}
where:
<EP> Axis coordinates of the primary and secondary axis of
the active plane. The active plane is defined by G17,
G18, G19 or G20.
Example:
The active plane for G18 is usually defined by axes Z
(primary axis) and X (secondary
axis).
<Fixed pitch> Defines the path (in mm) traveled in the direction of the
primary or secondary axis with each spindle revolu-
tion. This value is programmed by the interpolation pa-
rameter (I, J or K) valid in the respective active plane.
In the event of tapered threads, the pitch thread speci-
fied always must relate to the main cutting direction.
Example:
For G18, parameter K is assigned to the main axis,
and I to the secondary axis. For a longitudinal thread
(pitch in direction of main axis), the fixed thread pitch is
programmed with the K address.
<Var. pitch> Optional parameter with address DF.
Defines the pitch increase/decrease per spindle revo-
lution in mm.
Programming: DF<Value> with <Value> in mm.
<Starting angle> Optional parameter.
If no <Starting angle> has been programmed, it is as-
sumed to be 0 degrees.
The starting angle (-offset) is needed for multiple
threads. The interpolation parameter not assigned to
the active plane is used as the address.
Example:
Addresses I and K have been assigned to the plane for
G18. Therefore, the address of the starting angle is J.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 3-35
and Controls
G-Codes G33
X
3 1
2
X 3
1
C
3-36 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
G-Codes G33
max. 45 degrees!
Chained thread
D These can be produced from all the types of thread described above.
D They are programmed by several consecutive G33 blocks.
With each G33-block programmed, the NC checks whether a subse-
quent G33- block has been programmed with path information. If this is
the case, the next block is processed without halting the axes.
Multiple threads
Multiple threads are produced by a starting angle offset (for starting an-
gle, refer to page 3-34).
Example:
A 4x thread is produced by four cuts displaced by 90 degrees each (0,
90, 180, 270).
1. cut 2. cut 3. cut 4. cut
Starting angle: 0 Starting angle: 90 Starting angle: 180 Starting angle: 270
degrees degrees degrees degrees
X X X
3 1 3 1 3 1 3 1
2 2 2 2
C C C C
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 3-37
and Controls
G-Codes G33
Dynamic behavior
At the beginning and at the end of a thread-cutting process, the axes in-
volved must be accelerated and stopped, respectively.
L Therefore, you should always provide for a sufficiently long entry path
(for accelerating the cutting axes) and discharge path (for stopping).
Rapid retraction
The fast retract function can be used in conjunction with G33.
If retraction data have been
D configured
(- statically with machine parameters (7050 00645, 7050 00650)
or
- dynamically in the program using TreadSet(RD...) (page
4-151))
and
D have been activated
(- statically with machine parameter (7050 00640) or
- dynamically in the program using TreadSet(RON1) (page
4-151)),
a positive edge at channel IF signal Fast retract will initiate the retrac-
tion with the following sequence:
1. The cutting motion is superimposed by a motion that is oriented verti-
cally to the main cutting direction.
3-38 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
G-Codes G33
2. If more than 70% of the retract path has been traveled, the cutting
axis/axes is/are uncoupled from the spindle and stopped at the confi-
gured deceleration (machine parameter 7050 00620).
. If the retract motion was initiated, this condition can only be cance-
led by Control reset or Move away from the contour.
Retract motions are always carried out perpendicularly to the main cut-
ting direction of the secondary cutting axis.
Retract motions are automatically initiated if either of the events Chan-
nel reset -, , System reset-, , or Spindle reset-, is triggered by the NC.
Effect
The cutter path compensation function causes the tool to move along an
equidistant path parallel to the programmed path during execution of a
part-specific program (equidistant path = path with right-angled, con-
stant distance from the programmed contour). The distance between the
equidistant and the programmed path depends on the active radius
compensation value.
The following illustration shows the principle:
Cutter path compensation
G42 to the right of to the left
the of the
workpiece workpiece
G42 G41
G41
= direction of feed
= programmed contour
= equidistant
Programming
Syntax:
G40 Cutter path compensation OFF (power-up state).
If no traversing movement is programmed in the G40-block,
the control immediately deactivates cutter path
compensation vertically to the last traversing block!
If a traversing movement is programmed in the G40-block,
the control deactivates cutter path compensation linearly
while traveling to the end point of the traversing movement.
An active tool-length compensation is not influenced by G40.
G41 Cutter path compensation to left of workpiece ON
(for positive compensation values seen in the direction of
machining).
In addition to a D-address containing the required radius
compensation value, a linear traversing movement of the
axes of the active plane may be programmed in the same
block as G41. This selects the compensation while traveling
to the end of the traversing movement.
If no traversing movement is programmed in the G41-block,
the control immediately deactivates cutter path
compensation vertically to the last traversing block.
G42 Cutter path compensation to right of workpiece ON.
Otherwise identical to G41.
3-40 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
CAUTION
Compensation values may be immediately- activated or deactiva-
ted without programming a separate traversing movement. This
may result in damage to the workpiece or the tool.
Please note the information provided in this section in this con-
text!
Effect
Function for active cutter path compensation (G41, G42).
The control implements a contour transition on outside corners either
as an automatically generated
D arc (G43) or as an
D intersection point of the equidistant path (G44).
G43: Arc
The path gap is closed by a tangential arc with the radius r:
automatically generated
programmed points
a
r
equidistant
traversing S
path
a
r
KE
If the distance is large, the control cuts off the tip at a distance of A =
2 x r and closes the path gap using a straight line:
r
S
A
KE
3-42 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Programming
Syntax:
G43 Contour transition as arc
G44 Contour transition as intersection of the equidistants.
Effect
Function for active cutter path compensation (G41, G42).
You define whether the control should keep the programmed feedrate
D at the cutter contact point (cutter cutting path) or
D on the cutter center point path
constant.
G45 G46
FM FM
FB FB
FM FM
FB FB
Programming
Syntax:
G45 Keep feed FB along the cutting path constant.
G46 Keep feed FM along the cutter center point path constant.
Effect
The function
D activates/deactivates tool length compensation
D optionally switches the assignment of length compensation values
L1, L2 and L3 to individual coordinates (method of operation as for
G78; see page 3-60).
Programming
Syntax:
G47 Tool length compensation ON.
G47(ActPlane) Assign length compensation values L1,
L2 and L3 of the primary-, secondary-
and normal coordinates of the active
plane and then switch length compensa-
tion on. Remains modally effective and
is automatically reconfigured at every
following plane switch.
G47({{-}<L1-Coord>} Change the assignment of length com-
{,{{-}<L2-Coord>} pensation values LL1, L2 and L3 to the
{,{-}<L3-Coord>}}) individual coordinates and then switch
length compensation on.
G47() Assign length compensation values L1,
L2 and L3 according to the settings in
machine parameters 7050 01300 and
7050 01310 and then switch length
compensation on.
G48 Tool length compensation OFF.
where:
<Li-Coord> Name of the WCS-coordinate that is to be assigned
correction Li (where i = 1, 2, 3) in the active workpiece
coordinate system.
If correction Li (where i = 1, 2, 3) is to affect coordinates
in the tool coordinate system (TCS), coordinate desi-
gnators XTR, YTR and ZTR must be used and a cor-
responding axis transformation must be active.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 3-45
and Controls
Example:
G47(X,,ZTR) The L1-compensation is assigned to the X-coordinate of
the workpiece coordinate system (WCS), the L3-com-
pensation to the Z-axis of the tool coordinate system
(TCS). Both compensations are calculated in the positive
direction. Then tool length compensation is switched on.
The L2-compensation is not calculated because it is not
assigned to any coordinate.
3-46 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Effect
ZO can be used to offset the machine coordinate system in space.
The offset distances for the machine coordinates in the channel are sto-
red in the zero offset tables:
D A ZO table contains 5 ZO pages (groups) with 6 zero offsets (ZO)
each.
D Offsets from different ZO pages always work additively.
D Offsets within a ZO page mutually overwrite each other.
ZO table
ZO page
ZO group 1
1. ZO
ZO
ZO group 2 2. ZO ZO values of
3. ZO the
ZO group 3 machine
4. ZO
coordinates
ZO group 4 5. ZO
6. ZO
ZO group 5
. For details about editing the ZO tables, please refer to the operating
instructions.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 3-47
and Controls
Programming
1. Activate the desired ZO-table with ZoTSel (see page 4-160).
2. Program the required function:
Syntax:
G53 All ZOs for all compensation pages OFF
G53.<ZO page> All ZOs of the <ZO page> OFF
G54.<ZO page> 1. ZO of the <ZO page> OFF
G55.<ZO page> 2. ZO of the <ZO page> OFF
G56.<ZO page> 3. ZO of the <ZO page> OFF
G57.<ZO page> 4. ZO of the <ZO page> OFF
G58.<ZO page> 5. ZO of the <ZO page> OFF
G59.<ZO page> 6. ZO of the <ZO page> OFF
Abbreviation: G54 to G59 For the corresponding ZO of page 1
where:
<ZO page> 1 - 5, integer
Example:
ZO table Z01 contains the following offset values under ZO page 1:
1st ZO: X100, Y100
2nd ZO: X300, Y100
3rd ZO: X500, Y100
4th ZO: X100, Y450
5th ZO: X300, Y450
6th ZO: X500, Y450
Effect of functions G54.1 to G59.1:
+Y
W W W
400
300
200
Example:
Additive effect of ZOs from different ZO pages.
ZO table Z01 contains the following offset values:
ZO page 1, 1st ZO: X100, Y100
ZO page 1, 2nd ZO: X300, Y100
ZO page 2, 4th ZO: X200, Y350
Effect
Minimizes the following error at the end of a block.
During tool movements, a time offset between the command and the ac-
tual values of the individual axes occurs owing to the dynamics of the
machine. This lag effect causes a following error during machining, the
size of which depends on the feedrate and the CO factor (axis dyna-
mics). In the case of unsteady contour transitions (corners), this follo-
wing error becomes noticeable in the form of a slurring of the corner.
Please note the following:
D The following distance (displacement between the command and ac-
tual values) at the end of the block can be reduced to the size of cer-
tain target windows.
D G61 only acts on feed movements. It has no effect on rapid traverse
movements.
D As opposed to the Precise stop function for G1, G61 (with the excep-
tion of G0) affects all interpolation functions (i.e. also for circular/heli-
cal interpolation and spline interpolation).
D G61/G62 act modally and cancel each other mutually.
+Y With Precise
stop
Without Precise
stop
+X
. When G61 is active (Precise stop switched on), the control always
brakes to v = 0 at the end of a block.
Programming
Optional parameters For selecting the positioning window for feed mode.
Syntax:
G61(IPS1|IPS2|IPS3)
where:
IPS1 Precise stop ON. Wait for fine positioning window.
At the end of the block, the control first brakes the path
velocity to v=0. Only when this positioning window has been
reached for all axes involved will the traversing movement of
the next block be executed.
IPS2 Precise stop ON. Wait for coarse positioning window.
Inpos range 2 active is displayed on the channel interface
(also see the PLC Interface manual).
At the end of the block, the control first brakes the path
velocity to v=0. Only when this positioning window has been
reached for all axes involved will the traversing movement of
the next block be executed.
IPS3 Precise stop ON. Braking to v=0 at the end of a block.
At the end of the block, the control brakes the path velocity to
v=0. Then the next block is traversed to a positioning window
without executing a check.
Example:
:
N40 G61 Precise stop ON.
:
N50 Y200 Position.
:
N60 G62 Precise stop OFF.
:
N70 Y0 Position.
:
N80 G61 Y200 Positioning with Precise stop ON.
:
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 3-51
and Controls
G-Codes G63
Effect
D This synchronizes linear interpolation of the drill axis with the spindle
switched to C-axis operation. This eliminates the need for a compen-
sation chuck which would otherwise be required for taking up the
speed difference between the drill axis and the spindle.
D G63 acts only in the programmed block.
D A signal can be output on the channel interface for the duration of rigid
tapping (configurable within the Active function signals using ma-
chine parameters).
D Only the feed potentiometer acts during rigid tapping.
Programming
Syntax:
G63(M<3|4>,S<Speed>|H<Thread pitch>) <Drill axis><Infeed
depth> {F<Feedrate>},
The thread pitch results from the relationship between the path feed to
the speed (F/S).
CAUTION
Different thread pitches during drilling and retraction will damage
the workpiece/tool!
Therefore, always program drilling and retraction in such a way
that the resulting thread pitch is identical!
G-Codes G63
Example:
N20 G0 X20 Y15 Z10 F1000 Position.
N30 G63(M3,S500) Z-20 F500 Drilling (Z drill axis).
N40 G63(M4,S500) Z5 F500 Retraction (Z drill axis)
:
N120 G0 X20 Y15 Z10 F1000 Positioning for peck drilling.
N130 G63(M3,S500) Z-20 F500 Drilling of section 1.
N140 G63(M4,S500) Z5 F500 Retraction of section 1.
<Blank line> Program a blank line.
N150 G63(M3,S500) Z-40 F500 Drilling of section 2.
N160 G63(M4,S500) Z5 F500 Retraction of section 2.
:
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 3-53
and Controls
G-Codes G70
Effect
This permits the entry of path/feed information and accelerations in inch
units.
Programming
Syntax:
G70 Path/feed information and accelerations are
interpreted in inches.
Example:
N40 G70 Starting at N40 (inclusive), all path and feed information
: is interpreted in inches
3-54 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
G-Codes G71
Effect
This permits the entry of path/feed information and accelerations in me-
tric units.
Programming
Syntax:
G71 Path/feed information and accelerations are
interpreted in metric units.
Example:
N40 G71 Starting at N40 (inclusive), all path and feed information
: is interpreted in metric units
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 3-55
and Controls
G-Codes G74
Effect
The axes programmed in the same block as G74 traverse simulta-
neously to their reference position.
The traverse speed occurs in rapid traverse / feed, depending on G0/G1.
With G74, neither reference point cams nor markers are taken into ac-
count. G74 is purely a positioning process for the absolute axis positions
(i.e. it also applies to axes with distance-coded encoders).
CAUTION
Possibly active compensations will remain unconsidered in the
course of this positioning process!
Programming
Syntax:
G74 <Axis coordinates> Start Traverse to reference point-coor-
dinates.
where:
<Axis coordinates>: The axis addresses must be programmed toge-
ther with a numerical value (e.g. X1 Y1 Z1).
This numerical value has no effect on the posi-
tion of the reference point. It is only needed to
form a complete word.
Special features and restrictions:
D G74 is programmed in a separate block together with the axes to be
traversed. Auxiliary- and special functions may be programmed wit-
hin the same block.
Example:
N100 G74 X1 Y1 Z1 The X, Y and Z axes start the traverse to
: their reference positions simultaneously and
reach them simultaneously.
3-56 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
G-Codes G74(HOME)
Programming
Syntax:
G74(HOME) <Axis coordinates> Trigger SERCOS command
Drive-controlled referencing for
the programmed axes.
where:
<Axis coordinates>: The axis addresses must be programmed toge-
ther with a numerical value (e.g. X1 Y1 Z1).
This numerical value has no effect on the posi-
tion of the reference point. It is only needed to
form a complete word.
Example:
N1 G74(HOME) X1 Y1 Z1 Send SERCOS command Drive-con-
: trolled referencing to the drives of
axis X, Y and Z.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 3-57
and Controls
G-Codes G75
Effect
The control guides one or more measuring axes at feedrate to the posi-
tion programmed via G75 and checks whether the probe was triggered.
As soon as the edge defined in the machine parameters is detected, the
control reacts by:
D storing the actual position
D braking to v=0 with the maximum permitted deceleration
D canceling G75 and the distance to go
D switching to the next block.
. The parameters of the probe function can be set using machine pa-
rameters.
Programming
Syntax:
G75 <Axis coordinate> Activate the measurement input and tra-
verse the measurement axis to <Axis
coordinate>.
G-Codes G76
Effect
Permits the programming and linear traversing to positions in the ma-
chine coordinate system without having to separately deactivate any ac-
tive compensations and transformations in the parts program.
This can be necessary, for example, when changing the tool, checking
tools for damage or changing pallets.
G76 acts on a block-by-block basis in rapid traverse (G0) or in feed (G1),
as well as together with G93 (Time programming), G94/G95 (Feed pro-
gramming) and the F-word.
The following functions are not taken into account in G76:
D Tool compensations (G41, G42, G47 Dxx, EDxx)
D Input tools (Mirror, Scale, Rotate, Shift)
D Zero offsets (G54.1 - G59.5)
D Placements (BcsCorr, G154.1 - G159.5)
D Axis transformations based on machine coordinates,
(e.g. 5-axis transformation)
D Relative dimension programming (G91)
D Set program position (SetPos)
Programming
Syntax:
G76 <Machine coordinates>
where:
<Machine coordinates>: Machine coordinates to be approached.
G-Codes G77
Effect
Traverses the defined coordinates to the point of return to path after the
end of the asynchronous subroutine in which G77 is programmed.
The point of return to path is always approached on a straight line.
. You can find extensive information regarding the use and parame-
ter settings of asynchronous subroutines in the Description of
Functions.
Programming
Syntax:
G77 <Coord 1><Mode> <Coord n><Mode> ... F<Value>
where:
<Coord i> Coordinate name (e.g. x)
<Mode> <Coord i> for point of return to path
1 take into account.
0 do not take into account. The coordinate remains at its
current value.
<Value> Feedrate with which positioning on the point of return to
path is to be executed.
Effect
This assigns the length compensationsof the geometry correction -
functions to individual coordinates. These are the coordinates:
D of the current workpiece coordinate system (WCS) or
D of the tool coordinate system (TCS).
L1 X
X
WCS X WCS
Programming
Syntax:
G78({{}<Coordinate1>},{{}<Coordi Compensation swit-
nate2>},{{}<Coordinate3>}) ching ON.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 3-61
and Controls
where:
<Coordinate i> Name of the WCS-coordinate (logical/physical axis
name) that is to be assigned correction Li (where i = 1,
2, 3).
If correction Li is to affect coordinates in the tool coor-
dinate system (TCS), coordinate designators XTR,
YTR and ZTR must be used.
Optional negative sign in front: correction is calculated
in the negative direction.
Li corrections to which no coordinates are assigned
are not taken into account.
Examples:
G78(X, ,ZTR) The L1 compensation is assigned to the X-axis of the
workpiece coordinate system (WCS), the L3 compensa-
tion to the Z axis of the tool coordinate system (TCS).
Both compensations are calculated in the positive direc-
tion.
G78( , ,-Y) The L3 compensation is assigned to the Y axis of the
workpiece coordinate system (WCS) and taken into ac-
count in the negative direction.
G78(YA,YB) The L1 compensation is assigned to the YA-axis and the
L2 compensation to the YB-axis of the workpiece coordi-
nate system (WCS). Both compensations are calculated
in the positive direction.
G79 Compensations are switched off for all default coordi-
nates of the channel.
3-62 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Effect
Switches off an active drilling cycle (G81 - G86, G184).
Programming
Syntax:
G80
Effect
Upon reaching the Z drilling depth, an optional dwell time becomes ac-
tive. Subsequently, retraction at rapid traverse takes place.
PE PE PE Positioning plane
Rx
Reference plane
R2
1.2
R1 R1
C Drilling depth
P Dwell time
P C P C
Feed
Rapid traverse
Programming
Syntax:
G81[<Z>,<R1>,{<P>},{<R2>}]
G-Codes G82
PE PE PE Positioning plane
Rx
Reference plane
R2
1.2
R1 R1
C Drilling depth
P Dwell time
P C P C
Feed
Rapid traverse
Programming
Syntax:
G82[<Z>,<R1>,{<P>},{<R2>}]
G-Codes G83
Effect
After the arrival at the programmed K infeed depth, a retraction move-
ment at rapid traverse to the reference R1 plane is performed.
Renewed infeed to the programmed k distance (speed-change point) is
also performed at rapid traverse. Subsequently, the control switches
back to feedrate.
Stepwise infeed with corresponding retraction to the reference plane is
executed until the programmed Z total drilling depth is reached.
PE PE PE Positioning plane
R2
Rx Reference plane 1.2
R1 R1
K Infeed depth
K K
k k k Distance to
speed-switching point
C
K K Drilling depth
k k
P Dwell time
K K
: Feed
C C : Rapid traverse
P P
Programming
Syntax:
G83[<Z>,<R1>,<K>,<k>,{<P>},{<R2>}]
G-Codes G84
Prerequisite:
D internal spindle as drilling axis. External spindles are not allowed.
Effect
Tool infeed occurs at the programmed M3 clockwise-rotating spindle or
M4 counterclockwise-rotating spindle (right- or left-handed thread).
As soon as drilling depth Z (thread depth) has been reached, the sense
of rotation is reversed, and dwell time P (if programmed) starts to run.
Subsequently, the retraction movement to the reference plane is perfor-
med at feedrate. As soon as it has been reached, the reversal of the rota-
tion direction is cancelled again.
R2
C Thread depth
D P Dwell time
G66 R1 D R1
D Rotation direction
reversal
P C P C : Feed
D D
: Rapid traverse
Programming
Syntax:
G84[<Z>,<R1>,{<P>},{<R2>}]
CAUTION
Possible damage to tools or workpieces!
During the cycle, any active single block processing will not be
suppressed!
This means that the spindle will keep on running after a
positioning process within the cycle. This may lead to damage to
the tool and the workpiece.
You should therefore ensure that the control executes the cycle in
the Automatic mode only!
G-Codes G85
3.2.37 Drilling cycle: Drilling out with retraction in rapid traverse G85
Application:
D Boring
Effect
After drilling depth Z is reached,
D the spindle stops and
D a dwell time (if programmed) goes into effect.
D Subsequently, retraction at rapid traverse takes place.
PE PE PE Positioning plane
M03 Rx Reference plane 1.2
R2
M03
R1 R1
C Drilling depth
P Dwell time
P C P C
: Feed
M05 M05 : Rapid traverse
Programming
Syntax:
G85[<Z>,<R1>,{<P>},{<R2>}]
G-Codes G86
PE PE PE Positioning plane
R2 Rx Reference plane 1.2
M03
R1
M03 R1
C Drilling depth
P Dwell time
P C P C
: Feed
M05 : Rapid traverse
Programming
Syntax:
G86[<Z>,<R1>,{<P>},{<R2>}]
G-Codes G184
TD
: Feed
: Rapid traverse
Programming
Syntax:
Clockwise thread:
G184[<Z>,<R1>,{<P>},{<R2>},<GS>,<U1>,{<U2>},{<RP *>}]
Counterclockwise thread:
G184[<Z>,<R1>,{<P>},{<R2>},-<GS>,<U1>,{<U2>},{<RP *>}]
*) RP determines the orientation position of the spindle.
Effect
This specifies whether the control is to interpret unit information for the
axes and coordinates as absolute or relative (incremental) values.
D Absolute dimension information refers to the current zero point (in the
program coordinate system).
D Relative dimension information refers to the last-approached posi-
tion.
Relative dimension Y
Absolute dimension Y
G90 Target point
G91 Target point
Y Y
Absolute dimension X
Relative dimension X
X X
Example:
N10 G1 G90 Absolute dimension programming ON.
N20 X100 Y100 Traverse to coordinates X100, Y100.
N30 G91 Relative dimension programming ON.
N40 X100 Y100 Traverse to coordinates X200, Y200.
N50 X=AC(50) Y50 Local absolute dimension programming for
X-axis. Traversing movement on the ma-
chine to X50, Y250.
3-70 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
G-Codes G93
Effect
The control interprets F-words (see the description in the Auxiliary and
special functions section ) as the machining time (in seconds) for the
programmed contour (block duration).
The following applies:
D Functions G93, G94 and G95 act modally and cancel each other mu-
tually.
Programming
Syntax:
G93 Switch to time programming.
Example:
N5 G93 G1 X30 Y20 F20 The programmed linear interpolation lasts
: 20 seconds.
G-Codes G94
Effect
The control interprets F-words (see page 3-95) or Omega -words (see
page 3-96) as feed for a programmed contour.
The following applies:
D Functions G93, G94 and G95 act modally and cancel each other mu-
tually.
D The programmed feed is interpreted
D as mm/min if G71 is active
D as inches/min if G70 is active
D as degrees/min in connection with rotary axes.
. Machine parameters can be used to set the weighting of the fee-
drate for G70/G71.
. The desired power-up status (G93, G94 or G95) can be specified in
the machine parameters (default: G94).
Programming
Syntax:
G94 Switch to feed programming.
Example:
N10 G71 Switch on metric programming.
N20 G1 G94 X20 Y30 F200 Traverse with a feedrate of 200 mm/min.
N30 G4(F40) Dwell time of 40 seconds.
N40 G70 Inch programming ON.
N60 X300 Y400 Feedrate F200 (in mm/min) is again ef-
fective.
N70 F100 New feedrate: 100 inches/min.
:
G-Codes G94(...)
Effect
Changes the feedrate or speed relative to the last actively effective va-
lue. The acceleration within the G94(...) block is adapted in such a man-
ner that the resulting speed/velocity is attained no earlier than the end of
the block. This leads to a very gentle acceleration behavior.
Programming
Syntax:
G94(DF<F-word>) Program the path velocity incre-
mentally
G94(DS1<S-word>) Program the spindle speed for
spindle 1 incrementally
G94(DF<F-word>,DS7<S-word>) Program the path velocity and
the spindle speed for spindle 7
incrementally.
where:
<F-word>: Incremental path velocity. Positive values increase and
negative values decrease the currently effective path ve-
locity.
<S-word>: Incremental spindle speed. Positive values increase and
negative values decrease the currently effective spindle
speed.
Example:
N30 G94(DF100) X250 Y300 Increase path feedrate linearly by
: 100 mm/min to the end of the block.
N50 G94(DF-50) X300 Y200 Reduce path feedrate linearly by 50
: mm/min to the end of the block.
N70 G94(DS1=100) X25 Y30 Increase speed of spindle 1 by 100
: rpm to the end of the block.
N90 G94(DF100,DS7=150) X2 Y2 Increase path velocity linearly by 100
: mm/min and speed of spindle 2 by
150 rpm to the end of the block.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 3-73
and Controls
G-Codes G94(...)
G-Codes G95
Effect
The control interprets F-words (see page 3-95) as feedrate/rotation.
This is required in conjunction with the main spindle. The following ap-
plies:
D Functions G93, G94 and G95 act modally and cancel each other mu-
tually.
D The programmed feed is interpreted
D as mm/rot. if G71 is active
D as inches/rot. if G70 is active
. Machine parameters can be used to set the weighting of the fee-
drate for G70/G71.
. The desired power-up status (G93, G94 or G95) can be specified in
the machine parameters (default: G94).
. For the definition of the main spindle, see MP 7020 00010 or func-
tion MainSp.
Programming
Syntax:
G95 Switch to rotary feed programming.
Example:
N05 G71 Switch on metric programming.
N10 S200 M4 Spindle speed 200 rpm, counterclock-
wise.
N20 G1 G95 X20 Z30 F0.2 Traverse with a feedrate of 0.2 mm/rot.
N30 G4(S20) Dwell time of 20 rotations.
N40 G70 Inch programming ON.
N60 X300 Z40 Feedrate F0.2 (in mm/rot) is again effec-
tive.
N70 F0.1 New feedrate = 0.1 inches/rot.
:
Effect
During turning, the control interprets S-words as
D the command cutting speed of the tool (G96) or
D the speed of the workpiece axis of rotation (G97).
With the given spindle speed, the cutting speed depends on the distance
between the cutting tool and the workpiece axis of rotation.
D for G70:
minfeetinch
12
By default, the NC calculates the distance in the machine coordinate sy-
stem (MCS reference system):
X-axis
G96 position
3-76 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
MCS+ZO1
MCS+ZO2
X-axis
G96 position
G96 position
In the case of tools that are not arranged axis-parallel to the spindle, off-
sets and placements of the workpiece zero point can also be taken into
account (PCS reference system):
MCS+ZO+PMT
Y-axis
G96 position
X-axis
If this behavior is not required or desired, use G97 instead. The speed of
the workpieces axis of rotation is then determined solely by the pro-
grammed S-word.
Programming
Syntax:
G96{({<Reference axis>{,<Point of action>}})} ... S<i>=<V>
S-words of spindles that are program-
med in the G96 block are interpreted as
command cutting speeds on the tool du-
ring turning.
All other spindles revert to direct speed
programming!
G96 The last programmed settings become
active; if none were made, the default
values apply.
G96() ... The default values for the reference axis
and the point of contact are reactivated.
G97 ... S<i>=<Speed> Only the spindles whose S-words are
programmed in the G97 block revert to
direct speed programming. For these
spindles, programmed S-words are in-
terpreted as the speed of the workpie-
ces rotation axis.
G97 All spindles revert to direct speed pro-
gramming.
where:
<Reference axis> Physical or logical name of the reference axis. Pro-
gramming remains in effect until a new value is pro-
grammed or the default value is activated.
<Point of contact> Coordinate system of the reference axis:
PCS, LCS or MCS
Programming remains in effect until a new value is
programmed or the default value is activated.
<i> Spindle index.
1: first spindle; 2: second spindle, etc.
<V> Cutting speed of the relevant spindle in m/min or feet/
min.
<Speed> Speed of the relevant spindle in rpm.
3-78 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Effect
The function moves a rotation-symmetric tool to the left or right of the
programmed path, guiding its point of action to the programmed path
with feed active.
In the case of pure orientation movements, the current position of the
point of contact remains fixed and the TCP moves.
At exterior corners, the path is closed using an automatically generated
intermediate block (arc). An intersection is calculated in the case of inter-
ior corners.
The control takes the following into account for compensation:
D tool radius r (automatically taken from the active tool data D, G146 to
G846 or G147 to G847).
D insertion depth d (see syntax for INSDEP)
D an optional allowance for the path that acts additively to the tool ra-
dius (see syntax for COFFS).
r
d
PE
TCP
Workpiece G142 G141
= direction of feed
TCP: Tool tip r: Tool radius = programmed path
PE: Tool point of action d: Insertion depth
CAUTION
Compensation values may be immediately activated or deactiva-
ted without programming a separate traversing movement. This
may result in damage to the workpiece or the tool.
Please note the information provided in this section and the Des-
cription of Functions in this context!
3-80 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Programming
Syntax:
G140 3D tool radius compensation OFF
(start-up state after starting controller).
The compensation (radius, insertion depth) is
reduced in an interpolating manner, if necessary with
a programmed traversing movement (using
3rd-degree splines). An active tool length compensa-
tion is not influenced by G140.
G141 3-D tool radius compensation to left of path ON
(seen in the direction of machining for positive
compensation values).
Traversing movements or orientation movements
may be programmed in the same block.
The radius and insertion depth are retracted if one of
the active space coordinates is programmed in the
same block. Otherwise, the control builds up the
compensation
D no sooner than in the next traversing block if
G140 was active beforehand.
D immediately (in active feed) if G141/G142 was
active beforehand.
G142 3-D tool radius compensation to right of path ON.
Otherwise identical to G141.
INSDEP<ID> Defines insertion depth <ID>. Acts modally.
Start-up state after starting controller: 0
COFFS<KA> Defines allowance <KA>. Acts modally and additive to
tool radius r.
Start-up state after starting controller: 0
D If the program ends without M30, G140 must be active at this time.
The current insertion depth and allowance values are retained.
D G140 is automatically activated after a control reset, a system reset or
M30. The current insertion depth and allowance values are set to 0.
Effect
Placement Inclined plane can shift and orientate the workpiece coordi-
nate system anywhere in space. Inclined plane has an effect on the coor-
dinates with the meanings x, y and z in the corresponding channel.
Since there are 3 degrees of freedom for orientation, every orientation
can be represented by 3 consecutive basis rotations.
+XB - (psi)
BCS +XB WCS - (phi) WCS WCS
+YW
+XW +XW
+XW +XW
+XW
Rotation of the Rotation of the Rotation of the
Basis -workpiece- coordinate system by coordinate system by coordinate system by
coordinate system coordinate ZB and coordinate YW(=YW) coordinate ZW(=ZW)
the angle phi and the angle theta and the angle psi.
+ZW
Resulting workpiece coordinate system (WCS), offset by distance
DX, DY, DZ and oriented by the angles phi, theta, and psi (see
above), relative to the BCS:
WCS
+YW
+ZM
+YM DZ
+XW
DY
DX
+ZW2
+ZW1 WCS2
+ZB +YW2
WCS1
+YB
WCSn
+YW1
+XW2
+XW1
BCS +XB
BCS: Basic-workpiece coordinate system
WCS1:Workpiece coordinate system, generated by workpiece position
compensation
WCS2:Workpiece coordinate system, building up on WCS1 and
generated by Inclined plane
WCSn:Workpiece coordinate system, building up on WCS(n-1) and
generated by Inclined plane. Please note the following: n = 2 - 6
Programming ...
A set is all the data required for the offset and orientation of a workpiece
coordinate system.
Sets can be either
D programmed directly in the parts program as function parameters, or
D entered in a placement-table (see page 4-95).
A placement table can contain up to 30 sets (5 pages, each with 6
sets).
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 3-83
and Controls
Example:
:
N40 G152.1(100,0,0,90) Inclined plane of page 1 ON.
: No traversing motion.
: The zero point is offset by 100 mm in the
: X-direction and the WCS is rotated by 90
: degrees around the Z-coordinate.
:
N180 G153 Switch off all pages (switch off Inclined
plane altogether).
Syntax:
G154.<Page> Inclined plane of the progr. page set 1 ON.
G155.<Page> Inclined plane of the progr. page set 2 ON.
G156.<Page> Inclined plane of the progr. page set 3 ON.
G157.<Page> Inclined plane of the progr. page set 4 ON.
G158.<Page> Inclined plane of the progr. page set 5 ON.
3-84 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
. Please refer to the Operating Instructions for how to create and edit
placement tables.
Example:
N40 PMS(Tab1) Activate placement table Tab1
N50 G154.1 Switch on page 1 with set 1. No traversing
: motion.
N90 G154.2 X1 Y2 Z3 Switch on page 2 with set 1 (acts additively to
: page 1). In the resulting WCS, traverse to the
: programmed position P(1,2,3).
N120 G153.2 Switch off page 2 (page 1 remains in effect).
:
N180 G153 Switch off all pages (switch off Inclined plane
altogether).
3.3 M-Codes
Effect
D Interrupts the NC program,
D stops machine movements after executing the block, and
D issues the channel-based interface signal Program stop M0.
Programming
Syntax:
M0 or M00
Special features and restrictions:
D You may program Program stop in the same block as other NC func-
tions. Only after all other programmed functions have been executed
does Program stop become effective.
Effect
D Interrupts the NC program and
D stops machine movements after executing the block if the channel-
based interface signal Optional stop is active.
Programming
Syntax:
M1 or M01
Effect
Terminates a program.
If the program is a subroutine,
D the NC issues the auxiliary function (M2, M02 or M30),
D returns to the calling program and
D processes the calling program.
. Modal states that have been changed in the subroutine are not re-
set!
Programming
Syntax:
M2 or M02 or M30
CAUTION
Undefined default states may cause damage!
If certain states or functions are required after terminating a main
program, it must be ensured that the parameters of the M30
events init string are set correctly in MP 7060 00020! It must con-
tain all the functions that bring the NC into the required/desired
status after a main program is terminated.
In this regard, remember that modally acting functions remain ac-
tive even after the end of the program!
. For detailed information about the power-up states, see the Des-
cription of Functions.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 3-87
and Controls
CAUTION
The described syntax applies only to the default setting of
machine parameter ranges 1040 001xx and 1040 002xx.
It is freely configurable and can therefore be different on your
machine. Therefore, the documentation provided by the machine
tool manufacturer always takes priority.
To determine whether the functions described herein actually
apply to your machine, contact your system administrator.
Effect
D Starts clockwise spindle rotation based on a tool-to-workpiece per-
spective.
D Cancels a position control that was activated by Align/position
spindle.
D Reserves the corresponding spindle(s) for the current channel.
. Spindle movement starts only if an S- or SSPG-word greater than 0
was programmed for the relevant spindle/spindle group in a pre-
vious or in the same block (see page 3-97).
Programming
Syntax:
M3 Acts on the 1st spindle group.
M103 Acts on the 1st spindle.
M203 Acts on the 2nd spindle.
Effect
D Starts counterclockwise spindle rotation based on a tool-to-work-
piece perspective.
D Cancels a position control that was activated by Align/position
spindle.
D Reserves the corresponding spindle(s) for the current channel.
. Spindle movement starts only if an S- or SSPG-word greater than 0
was programmed for the relevant spindle/spindle group in a pre-
vious or in the same block (see page 3-97).
Programming
Syntax:
M4 Acts on the 1st spindle group.
M104 Acts on the 1st spindle.
M204 Acts on the 2nd spindle.
CAUTION
The described syntax applies only to the default setting of
machine parameter ranges 1040 001xx and 1040 002xx.
It is freely configurable and can therefore be different on your
machine. Therefore, the documentation provided by the machine
tool manufacturer always takes priority.
If you are not sure whether the functions described herein actually
apply to your machine, contact your system administrator.
Effect
D Stops spindle(s).
D Cancels any possibly active reservation of the given spindle(s) by the
active channel.
D Cancels a position control that was activated by Align/position
spindle.
Programming
Syntax:
M5 Acts on spindle group 1.
M105 Acts on the 1st spindle.
M205 Acts on the 2nd spindle.
CAUTION
The described syntax applies only to the default setting of
machine parameter ranges 1040 001xx and 1040 002xx.
It is freely configurable and can therefore be different on your
machine. Therefore, the documentation provided by the machine
tool manufacturer always takes priority.
If you are not sure whether the functions described herein actually
apply to your machine, contact your system administrator.
Effect
The spindle is reserved for the current channel and positioned in a defi-
nable position using position control.
Positioning occurs
D at a standstill: as specified in parameter S-0-0154
of the drive
D with active rotation: retaining the direction of rotation.
Programming
Syntax:
M19 Spindle group 1: position all participating
spindles on their reference angle (drive para-
meter S-0-0153).
M119 1. Position second spindle on its reference
angle (S-0-0153).
M219 2. Position second spindle on its reference
angle (S-0-0153).
M19 S<Angle> Spindle group 1: position all participating
spindles on <Angle>.
M119 S1=<Angle> 1. Position second spindle on <Angle>.
M219 S2=<Angle> 2. Position second spindle on <Angle>.
<Angle> Desired absolute spindle position, in degrees.
Value range: 0_ Spindle position < 360_.
If another value is programmed for the position, it is auto-
matically converted to the given interval.
If the spindle is already in the given position, no motion is
executed.
D Competing jobs between single spindles and spindle groups that are
programmed in the same block lead to a runtime error.
(Example: M3 and M1119 are not permitted in the same block.)
Examples:
N60 M19 All the spindles of the 1st spindle group
: position themselves relative to their refer-
ence angle.
N70 M219 Only the 2nd spindle positions itself relative
: to its reference angle.
N80 M19 S180 All the spindles of the 1st spindle group
: position themselves to 180 degrees.
N90 M119 S1=370 1. spindle positions itself to 10 degrees.
:
N95 M19 S1=10 S2=20 If the 1st and 2nd spindle are assigned to
: the 1st spindle group:
1. the 1st spindle positions itself to 10, and
the 2nd spindle to 20 degrees.
All other spindles of the 1st spindle group
position themselves relative to their refer-
ence angle.
3-92 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
CAUTION
The described syntax applies only to the default setting of
machine parameter ranges 1040 001xx and 1040 002xx.
It is freely configurable and can therefore be different on your
machine. Therefore, the documentation provided by the machine
tool manufacturer always takes priority.
If you are not sure whether the functions described herein actually
apply to your machine, contact your system administrator.
Effect
The control automatically selects the suitable gear range from the ones
available according to the active speed.
In the event of overlapping speed ranges of the various gears, the con-
trol always selects the lower gear (with the higher motor speed).
Programming
Syntax:
M40 Automatic gear range selection for spindle group 1 ON.
M140 Automatic gear range selection for 1st spindle ON.
M240 Automatic gear range selection for 2nd spindle ON.
3.3.9 Manual gear range selection M41 - 44, M141 - 144, M241 - 244
CAUTION
The described syntax applies only to the default setting of
machine parameter ranges 1040 001xx and 1040 002xx.
It is freely configurable and can therefore be different on your
machine. Therefore, the documentation provided by the machine
tool manufacturer always takes priority.
If you are not sure whether the functions described herein actually
apply to your machine, contact your system administrator.
Effect
Selects the corresponding gear range.
If a speed outside of the corresponding gear range speed spectrum is
programmed, the control issues the minimum/maximum speed of the af-
fected gear range.
Programming
Syntax:
M4<Stage> Gear range <Stage> for spindle group 1 ON.
M14<Stage> Gear range <Stage> for 1st spindle ON.
M24<Stage> Gear range <Stage> for 2nd spindle ON.
where:
<Stage> Input range: 1 - 4.
CAUTION
The described syntax applies only to the default setting of
machine parameter ranges 1040 001xx and 1040 002xx.
It is freely configurable and can therefore be different on your
machine. Therefore, the documentation provided by the machine
tool manufacturer always takes priority.
If you are not sure whether the functions described herein actually
apply to your machine, contact your system administrator.
Effect
Disengages the gear range.
The gear is then in idling mode.
Programming
Syntax:
M48 Disengage gear range stage for spindle group 1.
M148 Disengage gear range stage for 1st spindle.
M248 Disengage gear range stage for 2nd spindle.
Feedrate/Speed F
3.4.1 F-address F
Effect
Depending on the currently active G-function G93, G94, G95, the control
interprets F-addresses as
D interpolation time in seconds (see G93, page 3-70)
D feedrate in mm/min or inch/min (see G94, page 3-71)
D feedrate in mm/rev (see G95, page 3-74).
CAUTION
The last F-word may change after a power-up, control reset or re-
set!
After the events listed above, the F-word defined in machine
parameter 7060 00020 or 7060 00010 is effective (default value: F0).
The specification whether G93, G94 or G95 is to be then active is
also stored there (default value: G94).
Therefore, ensure that the required feedrate has been
programmed before starting machining.
Programming
Syntax:
F<Value>
where:
<Value> Depends on the active G-function, interpreted as interpo-
lation time, feedrate or dwell time.
Feedrate/Speed FA Omega
Effect
All traversing movements of asynchronous axes programmed in the FA
block are traversed with the programmed velocity instead of in rapid tra-
verse.
CAUTION
Incorrect programming may cause machine damage!
The given velocity acts only in the current FA-block!
Programming asynchronous axes without reprogramming the
FA-word in a subsequent block will let the axes traverse in rapid
mode again!
Programming
Syntax:
FA<Value>
where:
<Value> Desired velocity.
Example:
N10 G1 G94 X200 Z300 F200 Feedrate of synchronous axes:
200 mm/min
N11 UA400 VA140 FA250 Asynchronous axes UA and VA tra-
verse at 250mm/min.
N12 UA0 WA10 Asynchronous axes UA and WA tra-
verse at rapid traverse again.
Effect
If only axes that are hidden for feedrate computing are to be moved in a
block (see FeedAd, page 4-41), their feedrate can be set using ad-
dress Omega.
Programming
Syntax:
Omega<Value>
where:
<Value> Desired feedrate.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 3-97
and Controls
Feedrate/Speed S, SSPG
Effect
When G97 is active, this specifies the desired
D speed of a single spindle (S...) or
D a complete group of spindles (SSPG...).
Programming
Syntax:
S<Number>=<Value> Program the speed for a single spindle.
SSPG<Group>=<Value> Program the speed for a complete group of
spindles.
S<Value> Abbreviated notation for programming the
speed of the 1st spindle.
Acts only on the 1st spindle if it is not assi-
gned to any group of spindles using
MP 1040 00002 .
If this is not the case, this programs the
complete group of spindles that contains
the 1st spindle.
where:
<Number> Number of the spindle (spindle index).
Input range:
1 to the number of defined spindles (defined using
MP 1040 00001). Integer.
<Group> Number of the spindle group.
Input range: 1 - 4
<Value> Desired spindle speed (default unit: rpm).
Input value: 0.
Feedrate/Speed S, SSPG
Example:
N10 G97 Activate speed programming.
N20 SSPG1=1000 Set the speed of all the spindles of the 1st
: group of spindles to 1000 rpm.
N50 S1=2000 S2=60 Set the speed of the 1st spindle to 2000
: rpm.
Set the speed of the 2nd spindle to 60 rpm.
N80 S3=2000 Set the speed of the 3rd spindle to 2000
: rpm.
N90 S1500 Set the speed of the 1st spindle to 1500
: rpm.
If the 1st spindle has been assigned to a
group of spindles, the speed setting applies
to the complete group of spindles.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 3-99
and Controls
Tool Compensation D
Effect
The D-correction calls tool compensation values that are stored in XML-
D-correction tables in the IndraMotion MTX. A correction table can con-
tain a maximum of 99 data records.
Each data record contains the following correction values:
D 3 tool lengths L1, L2, L3,
D tool edge radius RAD,
D tool edge position ORI.
Programming
Syntax:
D<No. Tool record> Preselect the tool compensation
record from the active D-correction
table
D0 Deselect the tool compensation
record without selecting a new
one.
where:
<No. Tool record> Number of the correction data record.
Input range: 1 - 99.
Example:
N10 D7 Preselect correction values for tool record 7.
:
3-100 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Tool Compensation ED
3.5.2 ED-correction ED
Effect
External tool compensation (ED-correction) calls correction values for a
maximum of 16 tool edges. The correction values can be written using
program module MT_TCorr by the PLC or using a parts program with
CPL command DCT.
Each of the 16 data records contains the following correction values:
D 3 tool lengths L1, L2, L3,
D tool edge radius RAD,
D tool edge position ORI.
Programming
Syntax:
ED<No. tool edge> Preselect the correction record
ED0 Deselect the correction record wi-
thout selecting a new one.
where:
<No. tool edge> Number of the tool edge.
Input range: 1 - 16.
Example:
N10 ED7 Preselect correction values for tool edge 7.
:
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 4-1
and Controls
NC Functions
Used notations
The following notations are used for the syntax of NC functions in this
manual:
FontCourier bold or Courier:
Character strings in this font must be programmed as shown below.
Example: G0(POL)
Angle brackets < >
indicate a wildcard for an expression/parameter to be programmed. The
wildcard is written in italics.
Example: <Axis1>
Curly brackets { }
indicate an optional expression/parameter.
Such syntax elements may, but do not have to be specified.
Example: G0{({POL,}{<Par1>})}
Character |
separates possible parameters that cannot be used simultaneously (al-
ternative parameters).
Example: G0{({POL,}{NIPS|IPS1|IPS2|IPS3})}
4-2 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Effect
Defines, activates or deactivates up to 10 rectangular, two-dimensional
dead or working ranges with axis-parallel boundaries.
D Dead ranges:
May be neither crossed nor contacted incl. their boundaries during
a traversing movement.
D Working areas:
May not be exited incl. their boundaries during a traversing move-
ment.
Abbreviation: ARA(...)
where:
<ANo> Area number.
Integer. Input range: -1, 1...10.
-1: Activate/deactivate all areas.
<Sta> Desired monitoring status.
0: Deactivate monitoring.
1: Activate monitoring.
Abbreviation: ARA(...)
where:
<ANo> Area number.
Integer. Input range: 1...10.
<Sta> Desired monitoring status.
0: Deactivate monitoring of area <ANo>.
1: Activate monitoring of area <ANo>.
<Mod> 0: Area <ANo> is not used.
1: Area <ANo> is a dead area.
2: Area <ANo> is a working area.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 4-3
and Controls
Example:
N100 Area(4,0,,100,200) Deactivate area 4 and set the center
point of the area to the given machine
coordinates (100,200).
The area lengths remain unchanged.
<D1>:
Second system Area length in
axis participating the direction of
Y
in the area the first system
(defined in MP axis
8002 00002). participating in
the area.
Area 4
<D2>:
Center point (100,200) Area length in the
direction of the
<P2>: 200 second system
Area center
axis participating
point position in
in the area.
the direction of
the second
system axis
participating in
the area.
X
M 100 First system axis
<P1>: participating in the
Area center point area (defined in
position in the direction MP 8002 00001).
of the first system axis
participating in the area.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 4-5
and Controls
NC Functions ASPCLR
. You can find extensive information regarding the use and parame-
ter settings of asynchronous subroutines in the Description of
Functions.
Programming
Syntax:
ASPCLR(<Up-Nr>)
where:
<SR No> Number of the subroutine.
Input value: 1 - 8. Integer.
Programming
Syntax:
ASPDIS(<Up-Nr>)
where:
<SR No> Number of the subroutine.
Input value: 1 - 8. Integer.
Effect
Activates an asynchronous subroutine in the current channel.
Only activated subroutines can be called if the relevant event occurs.
. You can find extensive information regarding the use and parame-
ter settings of asynchronous subroutines in the Description of
Functions.
Programming
Syntax:
ASPENA(<Up-Nr>)
where:
<SR No> Number of the subroutine.
Input value: 1 - 8. Integer.
NC Functions ASPRTP
Programming
Syntax:
ASPRTP(<Up-No>,<Point>)
where:
<SR No> Number of the subroutine.
Input value: -1; 1 - 8. Integer.
-1: Define the desired point of return to path for all
asynchronous subroutines of the current channel.
<Point> Desired point of return to path:
1: Starting point
2: End point
3: Interruption point
NC Functions ASPSET
. You can find extensive information regarding the use and parame-
ter settings of asynchronous subroutines in the Description of
Functions.
Programming
Syntax:
ASPSET(<Up-Nr>,<Up-Name>{,<Flags>})
where:
<SR No> Number of the subroutine.
Input value: 1 - 8. Integer.
<Up-Name> Name of the subroutine; with or without path information.
If the path is missing, the file is searched according to
MP 3080 00001 (search path for subroutines).
<Flags> Switch with which the behavior after the call can be in-
fluenced:
00 neither a linking procedure nor an automatic start.
10 a linking procedure, but not an automatic start.
01 not a linking procedure, but an automatic start.
11 a linking procedure and an automatic start.
Example:
:
N30 ASPSET(1,ASUP1,10) Log on program ASUP1 as the first asyn-
: chronous subroutine in the active channel.
After it is called (e.g. via the interface sig-
nal), it is if required automatically linked
and started explicitly using NC-Start.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 4-9
and Controls
NC Functions ASPSTA
Programming
Syntax:
ASPSTA(<Up-No>{,<Channel-No>})
where:
<SR No> Number of the subroutine.
Input value: 1 - 8. Integer.
<Channel-No> Target channel in which <Up-No> is to be called.
If it is not programmed,<Up-No> is called in the current
channel.
Effect
Assigns a new logical axis name to a synchronous axis in the calling
channel. The old logical axis name becomes invalid.
. For detailed information about the Axis transfer function, see the
Description of Functions.
Programming
Syntax:
AssLogName(<PAN> | <PAI> | <LAN>,<LANnew>
{,<PAN> | <PAI> | <LAN>,<LANnew>}...)
Abbreviation: ALN(...)
where:
<PAN> Physical axis name.
Specifies the axis that is to be renamed in the current
channel.
<PAI> Physical axis index.
Same effect as <PAN>.
<LAN> Logical axis name.
Same effect as <PAN>.
<LANnew> New logical axis name.
The axis entered using <PAN>, <PAI> or <LAN> receives
the logical name <LANnew> in the current channel.
<LANnew> must have been defined in MP 7010 00010
(Logical axis designation) or MP 7010 00020 (Optional
axis designation).
Example:
:
N030 ALN(YP,X,3,Y,B,Z) Physical axis YP is assigned the logical axis
: name X, the 3rd physical axis is assigned
the logical name Y, and logical axis B is as-
signed the logical name Z.
Programming B subsequently will generate
a runtime error.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 4-11
and Controls
NC Functions ATCAL
Programming
Syntax:
ATCAL(<File>,<OptData>,<Mask>{,<Info>}{,<NumIt>})
where:
<File> Name of the calibration file; with or without path information.
If the path is missing, the file is searched according to
MP 3080 00001 (search path for subroutines).
<File> contains data that are required for optimization. For
more information, see the Description of Functions.
<OptData> Permanent, global or local CPL array.
Type: double. Dimension: min. 16.
After calculation, the array contains a parameter block with
the optimized length and angle parameters.
The sequence of the individual variables (index 1 to 16) cor-
responds to the element-index of MP 1030 00140. The va-
lues have the same unit as the individual parameters in
MP 1030 00140.
<Mask> CPL variable. Type: Integer.
Bit mask which is used to determine the individual parame-
ters to be optimized. Example:
Array <OptData> before optimization
Index: 1 2 3 4 5 6 7 8 ... 15 16
NC Functions ATCAL
Example:
01 DIM PAR!(16) Dimension a local CPL array with 16
fields of type Double (for the opti-
mized length/angle parameters).
02 DIM GA!(4) Dimension a local CPL array with 4
fields of type Double (for criterion and
deviation).
03 MASK%=2+4+32 Optimization of individual parameters
with field indices 2, 3 and 6.
N4 ATCAL(CL.TXT,[PAR!], Start optimization.
[MASK%],[GA!],-1)
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 4-13
and Controls
NC Functions ATFWD
Programming
Syntax:
ATFWD(<Coord>,<AxCoord>{,<ParData>})
where:
<Coord> Permanent, global or local CPL array.
Type: double. Dimension: at least as large as the number of
channel coordinates of the coordinate system generated by
axis transformation.
The individual variables of the array receive the resulting
channel coordinates in the transformed coordinate system
after conversion.
<AxCoord>Permanent, global or local CPL array.
Type: double. Dimension: at least as large as the number of
axes in the current channel.
The variables of the array must contain the real axis posi-
tions of all the channel axes participating in the axis transfor-
mation.
<ParData> Permanent, global or local CPL array.
Type: double. Dimension: min. 16.
The array must contain a parameter block with all length and
angle parameters for an axis transformation.
The sequence of the individual variables (index 1 to 16) cor-
responds to the element-index of MP 1030 00140. The va-
lues have the same unit as the corresponding individual
parameters in MP 1030 00140.
If this is not programmed, the parameter block of the cur-
rently active axis transformation is used.
If two axis transformations are active in the control at the
same time (AT1, AT2; see function Coord, page 4-30 ff.),
the AT2 data are used.
NC Functions ATGET
Programming
Syntax:
ATGET(<ParData>{,<AxTransfNo>})
where:
<ParData> Permanent, global or local CPL array.
Type: double. Dimension: min. 16.
After the function is executed, the array contains a para-
meter block with all length and angle parameters of an
axis transformation defined using <ATrafNr>.
The sequence of the individual variables (index 1 to 16)
corresponds to the element-index of MP 1030 00140.
The values have the same unit as the individual parame-
ters in MP 1030 00140.
<AxTransfNo>Number of the axis transformation to be read.
If this is not programmed, the data of the currently active
axis transformation are read.
If two axis transformations are active in the control at the
same time (AT1, AT2; see function Coord, page 4-30
ff.), the AT2 data are used.
NC Functions ATPUT
Programming
Syntax:
ATPUT(<ParData>{,<AxTransfNo>})
where:
<ParData> Permanent, global or local CPL array.
Type: double. Dimension: min. 16.
The array must contain a parameter block with all length-
and angle parameters for an axis transformation defined
using <AxTrafoNr>.
The sequence of the individual variables (index 1 to 16)
corresponds to the element-index of MP 1030 00140.
The values have the same unit as the corresponding indi-
vidual parameters in MP 1030 00140.
<AxTransfNo>Number of the desired axis transformation whose para-
meter block is to be written to MP 1030 00140.
If this is not programmed, the data of the active axis trans-
formation are overwritten.
If two axis transformations are active in the control at the
same time (AT1, AT2; see function Coord, page 4-30
ff.), the AT2 data are modified.
NC Functions AUXFUNC
. You can find extensive information regarding the use and parame-
ters of auxiliary functions in the Description of Functions.
Programming
Syntax:
AUXFUNC
Example:
N100 T102 Select tool T102.
N110 M6 Install tool T102.
:
N150 M3 Switch on 1st spindle / spindle group. Clockwise
: rotation.
... Program termination in N160...
- T102 and M3 were active.
- T102 is installed. The tool position is not changed.
The program is then reselected and runs via NC program restart up to
and including N150 without traversing movements. Programmed auxi-
liary functions are activated but not output.
Before N160 is processed, AUXFUNC is used now to execute the cur-
rently active channel-specific and cross-channel auxiliary functions of
all existing auxiliary function groups.
In the example, AUXFUNC has the following effects:
- Activate tool number T102 (tool is still installed).
- Switch on 1st spindle / spindle group with clockwise rotation.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 4-17
and Controls
Effect
D AxAcc:
temporarily changed the upper limits of the axis accelerations.
The function overrides the maximum axis acceleration values from
the machine parameters with the programmed values.
D AxAccSave:
saves the current maximum acceleration values of all axes to an inter-
nal memory.
This internal memory is preinitialized with the values from the ma-
chine parameters whenever the program is selected.
Programming
Syntax:
AxAccSave Temporarily buffers the current maximum ac-
celeration values.
Abbreviation: AAS
AxAcc(<Values>) Change the maximum axis accelerations.
AxAcc or Reactivate axis accelerations that were sa-
AxAcc(1) ved earlier using AxAccSave.
AxAcc() or Reactivate axis accelerations from the ma-
AxAcc(0) chine parameters.
Abbreviation: AAC(..)
where:
<Values> Axis name and acceleration value.
Entries for several axes are separated by commas.
Depending on the active measuring unit (G71/G70), the
control interprets the programmed data as 1000 inch/s2 or
m/s2.
Example:
Starting situation: The value of 8.0 m/s2 is preassigned to axes X through
Z in the machine parameters.
:
N40 AAC(X1.0,Z2.1) Max. acceleration for X-axis: 1.0 m/s2,
: Max. acceleration for Z-axis: 2.1 m/s2.
: The max. acceleration of the Y-axis is unchan-
: ged (8.0 m/s2).
N80 AxAccSave Temporarily buffer all currently active maximum
: acceleration values.
N90 AxAcc() Reactivate the values from the machine para-
: meters:
: Max. acceleration for X-axis: 8.0 m/s2
: Max. acceleration for Y-axis: 8.0 m/s2
: Max. acceleration for Z-axis: 8.0 m/s2
N150 AxAcc(Y5) Max. acceleration for Y-axis: 5.0 m/s2.
: The max. accelerations of the x- and Z-axis are
: unchanged .
N200 AxAcc Reactivate the values saved using AxAc-
: cSave:
: Max. acceleration for X-axis: 1.0 m/s2
Max. acceleration for Y-axis: 8.0 m/s2
Max. acceleration for Z-axis: 2.1 m/s2
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 4-19
and Controls
Effect
Axis coupling is used to create a specific relationship between the move-
ment of a synchronous master axis and one or more (max. 7) synchro-
nous slave axes.
If the master axis traverses, all the slave axes move automatically accor-
ding to their own defined relationship to the master axis. The combina-
tion of the master and all participating slave axes is also called a group
of coupled axes.
Offset
Coupling factor
Master axis offset
Coupling function (in coupling table format)
Programming
Syntax:
AxCouple(<M><Variant>,<S>({<SO>},{<SF>}{,{<MO>},<Tab>}){,...})
AxCouple() or Clear all the groups of coupled
AxCouple(0) axes in the current channel.
Abbreviation: AXC(..)
where:
<M> Logical address of the master axis.
<Variant> 0 Generate a new group of coupled axes
1 Change a group of coupled axes
(add new slave axes or change a coupling-
designation)
-1 Delete slave axis or completely cancel group of cou-
pled axes
<S> Logical address of the slave axis.
<SO> Offset of the slave axis.
If this is not programmed, <SO> = 0.
<SF> Coupling factor of the slave axis.
If this is not programmed, <SF> = 1.
<MO> Master axis offset.
Relevant only for any coupling (see formula 2 above). If
this is not programmed, <MO> = 0.
<Tab> Name of the coupling table of the corresponding slave
axis. Relevant only for any coupling (see formula 2
above).
Examples:
N100 AXC(Z0,A(4,2),B(2,1)) Generate a group of coupled
: axes.
: Z: master axis,
: A/B: slave axes.
Both slave axes run with li-
near coupling.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 4-21
and Controls
CAUTION
The function triggers a traversing movement of all the slave axes
programmed in this block!
They traverse to their specific coupling position (reference value)
defined by the position of the master axis and the coupling charac-
teristics.
Effect
Switches a spindle that is in C-axis mode (see page 4-135) to spindle
mode.
. For detailed information about the Axis transfer function, see the
Description of Functions.
Programming
Syntax:
AxisToSpindle(<PAN> | <PAI>{,<PAN> | <PAI>}...)
Abbreviation: ATS(..)
where:
<PAN> Physical axis name.
Specifies the spindle that is to be switched from C-axis
mode back to spindle mode.
<PAI> Physical axis index.
Same effect as <PAN>.
Example:
:
N030 ATS(CH) The physical axis CH (i.e. the spindle with
: the name CH during axis operation) is swit-
ched to spindle operation.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 4-23
and Controls
Y X
YB Angle1
WCS
Zero offset
DY with coordinate rotation
XB
BCS DX
+ZW2
+ZW1 WCS2
+ZB +YW2
WCS1
+YB
+YW1
+XW2
+XW1
BCS +XB
BCS: Basic workpiece coordinate system
WCS1:Workpiece coordinate system, generated by workpiece position
compensation
WCS2:Workpiece coordinate system, generated by Inclined plane
4-24 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Programming
Syntax:
BcsCorr({<XW -Offset>}{,{<YW -Off- Workpiece position
set>}{,{<ZW -Offset>}{,{<Angle1>} compensation ON.
{,{<Angle2>}{,{<Angle3>}}}}}})
where:
<XW -Offset>: Offset value in main coordinate direction
<YW -Offset>: Offset value in secondary coordinate direction
<ZW -Offset>: Offset value in normal coordinate direction
<Angle1>: Angle of rotation around the Z-coordinate.
Value range: 0 <Angle1> < 360 degrees
<Angle2>: Angle of rotation around the Y-coordinate.
Value range: 0 <Angle2> < 180 degrees
<Angle3>: Angle of rotation around the Z-coordinate.
Value range: 0 <Angle3> < 360 degrees
Example:
N70 G40 Cutter path compensation OFF.
N80 BCR(50,300,10,1.23) Workpiece position compensation ON.
: The zero point of the new workpiece
: coordinate system lies on X50 Y300 and
: Z10 in the BCS. In terms of the BCS, the
: X- and Y-coordinate axes of the new
: workpiece coordinate systems are
: rotated counterclockwise by 1.23
: degrees around the new Z-coordinate
: axis.
N200 BCR() Workpiece position compensation OFF.
Effect
The function Chamfer programming inserts a transition phase between
two consecutive NC blocks of the type straight line or circle, the length of
which can be specified as absolute chamfer length or as length of the
chamfer segment. The chamfer is generated within the active working
plane.
Chamfer Chamfer
length segment
Straight
Straight line
line
Chamfer segment
Chamfer length
Tangent line 2
Tangent line 1
4-26 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Programming
Syntax:
ChLength<Chamfer length> Chamfer programming ON.
Preassign the desired <chamfer
length> in the unit mm (G71) or
inches (G70).
ChLength() or Chamfer programming OFF.
ChLength(0)
Abbreviation: CHL(..)
ChSection(<Chamfer section>) Chamfer programming ON.
Preassign the desired <champfer
sequence> in the unit mm (G71) or
inches (G70).
ChSection() or Chamfer programming OFF.
ChSection(0)
Abbreviation: CHS(..)
Effect
Allows collision monitoring of cutter path compensation G41/G42 to be
D switched on- or off and
D adapted to the application in terms of the look-ahead range and the
behavior in case of a collision.
Programming
Syntax:
Collision(1) Collision monitoring ON.
Retain the current behavior in the
case of a collision.
If the behavior has not been pro-
grammed or entered in
MP 7060 00010/MP 7060 00020 un-
til now, the behavior corresponds to
that of
Collision(CollErr 0).
Abbreviation: CLN(...)
where:
<Type> Specifies the behavior of the control when a collision is
detected:
0: neither a runtime error nor warnings are issued.
Machining is not terminated but contour loops are
left out.
1: run-time error is issued.
Machining is terminated.
2: warning is issued.
Machining is not terminated.
Example:
:
N100 CLN(DLA 5) Preset for the look-ahead range of the collision
: monitor starting at the next G41/G42: 5 blocks.
:
N110 G41 D10 Cutter path compensation to left of workpiece.
N120 X10 Traverse forwards.
N130 X20
N140 X30
N150 G42 Switch to cutter path compensation to right of
: workpiece The look-ahead of the collision mo-
: nitor is terminated as of block 150 and then re-
: started.
N160 X20 Traverse backwards.
N170 X10
N180 X0
N190 G40 Cutter path compensation OFF. The collision
: monitor thus becomes inactive, but it is not
deactivated!
4-30 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Effect
Activates or deactivates axis transformations that are configured in ma-
chine parameter group 1030.
Programming
Syntax:
Coord(<AxTransfNo>) Axis transformation ON
Coord() or Axis transformation on point of
Coord (0) action 2 OFF
Coord(0{,<Point of action>}) Axis transformation on the
selected point of action OFF
Abbreviation: CRD(...)
where:
<AxTransfNo> Number of the axis transformation.
Input range: 1 - 20. Integer.
<Point of ac- Points of action of the axis transformation to be
tion> switched off.
Input:1 or 2
The name of the spline-table is generated from the name of the currently
active coupling table by attaching the extension .s; for example, if the
name of the coupling table is curve.fct, the name of the spline-table be-
comes curve.fct.s.
Programming
Syntax:
CoupleSplineTab(STAB(<TabName>{,<1|0>})) Create a spline
table
Abbreviation: CST(...)
where:
<TabName> Name of the coupling table that is searched in the cur-
rent search path and for which a spline table is crea-
ted.
<1|0> Optional:
0: The spline table is not created, unless it does
not exist or is older than the coupling table
(default).
1: A new spline table is created.
Example:
CST(STAB(curve.fct)) Creates spline table /<Link directory>/cur-
ve.fct.s, if required
CST(STAB(curve.fct,1)) Creates the /<Link directory>/curve.fct.s
spline table irrespective of the date and
whether or not the spline table already exists
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 4-33
and Controls
Effect
Activates a D-correction table (geometry correction table, GEO table).
D-correction tables are stored as XML files in the file system of the con-
trol.
Programming
Syntax:
DcTSel({<Path>}<Filename>)
Abbreviation: DCS(..)
where:
<Path> Optional path information for the directory in which <File-
name> is stored.
If there is no information, the file will be searched in the /da-
tabase directory.
If <Filename> is not present there, the control uses the search
path for subroutines so that the search for <Filename> can
also be carried out in other directories.
<Filename> File name of the D-correction table, incl. the file exten-
sion.
Tables with standard names (DC<Number>.dct) can be
activated directly using the number, e.g.
DcTSel(7) activates table DC7.dct.
. Please refer to the Operating Instructions for how to create and edit
D-correction tables.
Example:
:
N030 DCS(geotab.dct) First searches for D-correction table geo-
: tab.dct in directory /database and then, if
it is not there, in the search path for subrou-
tines. The first D-correction table with the
name geotab.dct that is found is activated.
N130 DCS(/mnt/ge.dct) Searches and activates D-correction table
: ge.dct in directory /mnt. If it is not found
there, an error message appears.
4-34 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Effect
Cross-channel activation of the default axis configuration according to
MP 1003 00002.
. For detailed information about the Axis transfer function, see the
Description of Functions.
Programming
Syntax:
DefAxis
Abbreviation: DAX
. Since it often happens that several channels take part in the axis
transfer, we recommend that the function in MP 7060 00020 be ent-
ered behind key word #SysRes.
In this way, the default axis configuration can always be regenera-
ted together with the system reset.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 4-35
and Controls
Effect
Coordinate information for flat axes (on lathes; usually X-coordinates)
can alternatively be interpreted as a diameter or radius. In this way, any
dimensional information that may exist can be transferred directly to the
parts program without conversion.
If Diameter programming is activated, the diameter symbol is placed in
front of the axis displays of the flat axis for the workpiece position, di-
stance to go, end position and program value.
The machine position, actual axis value and coasting are always dis-
played as radius values.
CAUTION
Improper interpretation of dimension information possible!
DIA affects only the entered/configured diameter coordinates.
Diameter programming has no influence on circular interpolation
parameters I, J, K.
Always ensure that only suitable dimension information is pro-
grammed.
Programming
Syntax:
DIA{({<Coord1>{,...,<Coord8>}})} Diameter programming for
up to 8 linear
axes/coordinates ON.
Diameter programming is
switched off for all
coordinates that are not
entered.
where:
<Coordi> Max. 8 linear axes/coordinates (i = 1 - 8) whose di-
stances are to be evaluated as diameter information.
Example:
N10 DIA() Switch on configured diameter coordinates.
N20 DIA(Y1,W2) The given coordinates Y1 and W1 become
diameter coordinates and all unprogrammed
coordinates become radius coordinates.
N30 RAD Diameter programming is switched off for all
coordinates.
N40 DIA Coordinates Y1 and W1 become diameter
: coordinates (last RAD status).
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 4-37
and Controls
Effect
This function keeps the distance between the surface scanned and the
measuring device (e.g. laser) constant during digitizing. This is to ensure
that the available working range of the measuring device is not excee-
ded.
Programming
Syntax:
DistCtrl(1) or Starts distance control and takes on the current
DistCtrl distance between the surface and the measuring
device as the reference value.
The configuration data defined using machine
parameter 7050 007xx are effective.
DistCtrl() or Deactivates axis distance control, stores the cur-
DistCtrl(0) rent correction value and stops axis movement.
If this is programmed in the same block as a tra-
versing movement, axis distance control will not
be turned off before the movement has been
completed.
DistCtrl(<Fct>) Suppresses certain function-specific configura-
tion data in the machine parameters.
Abbreviation: DCR(...)
where:
<Fct> DcAxis(<Axis>,<Corr>)
Overrides MP 7050 00702.
Abbreviation: DCA(...)
<Axis> Name or number of the channel axis for which
axis distance control is to be activated.
<Corr> Direction of movement in which the correction
values are to be included in the calculation:
+1 or 1:
in the positive direction of movement
-1: in the negative direction of move-
ment
DcFilter(<Time>)
Overrides MP 7050 00730.
Abbreviation: DCF(...)
<Time> Filter parameter to smooth the sensor values.
0: Filter off
>0: Filter on, smoothing time in ms
4-38 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
DcLimit({<Speed>},{<Accel>})
Overrides MP 7050 00740 / MP 7050 00741.
Abbreviation: DCL(...)
<Speed> Maximum modification speed of the correction
value. Overrides MP 7050 00740.
Value input, depending on active unit of mea-
surement (G71, G70), in the unit mm/min or
inch/min.
<Accel> Maximum steepness (acceleration) of the
correction value. Overrides MP 7050 00741.
Value input, depending on active unit of mea-
surement (G71, G70), in the unit m/s2 or 1000
inch/s2.
DcMon({<Collision>},{<Hole>})
Overrides MP 7050 00750 / MP 7050 00751.
Abbreviation: DCM(...)
<Collision> Range of tolerance for collision detection.
Overrides MP 7050 00750.
Value input, depending on active unit of mea-
surement (G71, G70), in the unit mm or inch.
0: Collision detection off.
<Hole> Range of tolerance for hole detection.
Overrides MP 7050 00751.
Value input, depending on active unit of mea-
surement (G71, G70), in the unit mm or inch.
0: Hole detection off.
To calculate the resulting slave coordinate, the position values of the ma-
ster coordinates are always automatically converted into incremental
paths.
The control uses the relationship above to calculate the required end po-
sition of the slave coordinate for every NC block in which a position value
of the master coordinate is programmed.
The slave coordinate behaves based on other NC functions as if its
working path in the parts program has been written especially for it using
local relative dimension programming (IC). This means, for example,
that the current feedrate affects the resulting path movement.
Programming
Syntax:
EndPosCouple(<M-coord>, End position coupling ON.
<S-coord>,<Factor>)
EndPosCouple() or End position coupling OFF.
EndPosCouple(0)
Abbreviation: EPC(...)
where:
<M-coord> Name of the master coordinate.
<S-coord> Name of the slave coordinate.
<Factor> Relationship between slave working path and master
working path.
Example:
N10 G18 G0 Z0 Active plane: z,x. Using rapid traverse to
z=0.
N20 G1 F1000 Z3 X1 Positioning to P1.
N30 EPC(Z,X,1) End position coupling ON.
: Master coordinate: Z; slave coordinate: X
: Slave working path = master working path.
N40 Z4 Positioning to P2.
N50 X1 Positioning to P3.
N60 Z5 Positioning to P4.
N70 X3 Positioning to P5.
N80 Z0 Positioning to P6.
N90 EPC() End position coupling OFF.
:
+X
P5
30
P2
20
P4
P1
10
P3
PCS
10 20 30 40 50 +Z
-10
-20
P6
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 4-41
and Controls
Effect
Removes all the axes that are defined in MP 1003 00020 from feedrate
computing.
The removed axes are then moved synchronously.
As a result, the real path velocity can increase in comparison with the
programmed F-value.
Programming
Syntax:
FeedAd(1) or Removes axes from feedrate com-
FeedAd puting
Abbreviation: FAD(..)
Effect
This function reduces system-caused coasting by appropriately correc-
ting the command interpolator values in the drive. The result is an increa-
sed contour accuracy or operation without following errors.
. The Feed forward control function is integrated in the drive ac-
cording to the manufacturers specifications and is only activated/
deactivated by the displayed command syntax of the parts
program.
For a detailed description of the Feed forward control function,
please refer to the drive documentation.
. The possibility for activating the feed forward control must have
been released for the corresponding axes using machine parame-
ter 1003 00009.
Programming
Syntax:
FeedForward(1)or Activate the feed forward control
FeedForward for all the axes released
according to MP 1003 00009 (the
relevant drives are switched to
secondary mode 1).
FeedForward(<Addr><Value>,...) Activate/deactivate the feed
forward control for the
programmed axes (effect
depends on <Value>).
FeedForward() or Deactivate feed forward control
FeedForward(0) for all axes.
(All relevant drives are switched
to their primary modes.)
Abbreviation: FFW(..)
where:
<Addr>: Physical or logical axis address.
<Value>: Path information for <Addr>.
0: Deactivate feed forward control.
not equal to 0: Activate feed forward control.
Example:
N10 FFW Activate the feed forward control for all the axes of
: the channel released by MP 1003 00009.
N50 FFW(Z0) Deactivate the feed forward control for Z (switch Z
: to primary mode).
N90 FFW() Deactivate the feed forward control for all the axes
: of the channel (switch to primary mode).
:
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 4-43
and Controls
Effect
The Measurement on-the-fly function is used for accompanying mea-
surement during machining. The traversing movement is not terminated
when the sensor is switched on.
The measured position is transferred from the drive to the NC. It can be
queried with CPL-command PPOS.
Programming
Syntax:
FlyMeas(MpiAxis<i>)<Axis coordinates> Start measuring cycle.
Abbreviation: FME(..)
where:
<i>: Index of the physical axis that is to be used in the
measurement.
<Axis coordinate>: Position that is to be approached during the
measuring procedure.
Example:
:
N100 IME(MpiAxis 1) Initialize the probe logic of phy-
: sical axis 1 (here: X-axis).
N110 G0 X0 Y0
N120 FME(MpiAxis 1) G1 X10 Y10 Start the measuring cycle and
: positioning in feed at X10,Y10.
+Y Probe is triggered.
Current position (here:
the X-axis) is saved. Continue to traverse to
20 the progr. end point
10 Workpiece
+X
10 20
4-46 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Effect
While the control traverses all the programmed synchronous axes using
linear interpolation and the given feedrate to the programmed end point,
the current torque is monitored for a selected axis.
If the torque of this axis exceeds a configurable limit value during the mo-
vement, the following actions occur in the control:
D Setting the axis Fixed stop reached IF-signal-
D storing the actual-position
D Braking of the path movement to v=0 with the maximum permitted de-
celeration
D Clearing of the distance to go
D Clearing of FsProbe (effective block-by-block).
The control generates an error message if no fixed stop has been re-
ached at the end of the path (specified torque threshold is exceeded).
. FsProbe should only be used in combination with a CPL-pro-
gram for analysis.
Programming
Syntax:
FsProbe(MfsAxis<i>) Measuring at fixed stop ON
<Coordinates> <Feedrate> for axis <i>and traverse program-
med coordinates with linear inter-
polation.
FsProbe(MfsAxis Measuring at fixed stop ON
(<i>,<Threshold>)) with torque threshold for axis <i>
<Coordinates> <Feedrate> and traverse programmed coordi-
nates with linear interpolation.
Abbreviation: FSP(..)
where:
<i> Index of the physical axis that is to be used in the
measurement.
<Threshold> Torque threshold
Input value: in % of maximum torque.
If <Threshold> is not programmed, machine parame-
ter 1003 00031 (Fixed stop torque limit value) is effec-
tive.
<Coordinate> Position that is to be approached during the measu-
ring procedure.
<Feedrate>: Desired path feed.
Limited by MP 1005 00030 (Maximum feedrate for
Move to fixed stop) and MP 1005 00002 (Maximum
axis - speed and- rapid velocity).
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 4-47
and Controls
Example:
N100 FSP(MfsAxis(1,30)) X100 F500 Activate Measurement at fi-
xed stop for the first physical
axis and approach position
X100 with F500. Set the tor-
que threshold as 30% of the
maximum torque.
110 IF SD(9) = 0 THEN Query whether torque thres-
hold was exceeded.
120 XPOS=PPOS(1) Save the position in the swit-
: ching torque of the 1staxis
: (X-axis) to the XPOS varia-
ble.
N130 (MSG, CONTACT)
140 GOTO N180
150 ENDIF
N160 (MSG, NO CONTACT)
N170 M0 Program halt
N180 ...
. The Move to fixed stop function can also be used for asynchronous
axes!
Effect
The overall Move to fixed stop function covers the following partial
functions:
1. Torque reduction fixed stop: FsTorque, FST
Sets the maximum torque that the drive can have after switching on
Move to fixed stop.
If FsTorque is not used, MP 1003 00031 is effective.
Programming
Syntax:
FsTorque(<Addr><Torque>) Activate the maximum permitted
torque<Torque> for axis <Adr>.
Synchronous and asynchronous
axes are permitted.
Abbreviation: FST(..)
where:
<Addr>: Physical or logical axis address; asynchronous
axes are also possible.
<Torque>: Maximum torque in % of the corresponding axis
standstill torque. Value range: 0 to 500%.
<Coord-Syn>: Desired end point coordinates of synchronous
axes (e.g. X100 Y100 Z100). Is traversed to by
linear interpolation of all axes involved, taking
<Feedrate> and MP 1010 00030 (Maximum
acceleration Move to fixed stop) into account.
<Feedrate>: Desired path feed.
Programming by F address, limited by
MP 1005 00030 (Maximum feedrate Move to fi-
xed stop) and MP 1005 00002 (Maximum axis
and rapid velocity).
4-50 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Example:
:
N100 FST(X20) Limit the torque for the axis with designation
X to 20% of the axis standstill torque.
N110 FSM X100 F200 Activate Move to fixed stop. Start move-
: ment with a feedrate of 200 mm/min to posi-
: tion X=100.
: Continue processing of parts program.
N500 FSR Switch off Move to fixed stop and release
: all synchronous axes.
Effect
Transfers a synchronous axis to the calling channel. This turns an asyn-
chronous axis into a synchronous axis.
The axis can then be programmed in the current channel using its physi-
cal or logical axis name.
. For detailed information about the Axis transfer function, see the
Description of Functions.
Programming
Syntax:
GetAxis(<PAN> | <PAI>,{<LAN>}{,<PAN> | <PAI>,{<LAN>}}...)
Abbreviation: GAX(..)
where:
<PAN> Physical axis name.
Specifies the axis that is to be transferred to the current
channel.
<PAI> Physical axis index.
Same effect as <PAN>.
<LAN> Logical axis name.
If this is programmed, the axis to be integrated into the
current channel receives the logical name <LAN>.
<LAN> must have been defined in MP 7010 00010 (Lo-
gical axis designation) or MP 7010 00020 (Optional
axis designation).
Example:
:
N030 GAX(YP,,ZP,Z) Physical axes YP and ZP are integrated in
: the receiving channel.
While YP is also addressed as YP in the cal-
ling channel, ZP receives address Z in the
calling channel.
4-52 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Effect
Activates the straightaway and angle error compensation to compen-
sate geometric errors which are caused by inaccuracies of mechanic
and can not be recorded from the encoders.
. You can find extensive information regarding the use and parame-
ter settings of straightaway and angle error compensation in the
Functional description manual.
Programming
Syntax:
GCT(1) (alternative: GCT, GeoComp(1), GEOCOMP(1))
Effect
Deactivates the straightaway and angle error compensation
Programming
Syntax:
GCT(0) (alternative: GeoComp(0), GEOCOMP(0))
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 4-53
and Controls
Effect
Permits a premature block transition using the high speed-inputs or the
customer inputs of channel interface of the control. In this way, a linear
traveling movement can be prematurely terminated, depending on ex-
ternal events.
CAUTION
Modification of the programmed path!
If the programmed end points of the HsBlkSwitch- block and the
block following it do not lie on a straight line, the occurrence of an
external event always leads to a modification of the path that can
not be precisely predicted!
Programming
Syntax:
HsBlkSwitch(HS<x>=<y>) or Block transition on-the-fly
HsBlkSwitch(CI<x>=<y>)
Abbreviation: HSB(..)
where:
<x>: Number of high speed-signals of the customer input
(qCh_Custom<x>).
Range of values: 1-8, integer.
<y>: Logical signal status required for a block transition:
0: Low
1: High
4-54 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Y N50
N40
N30
10
100
t
N30 N40 N50
V
HS1=1 and remains
500 1
100
t
N30 N40 N50
V
HS1=0 and remains 0 (no external event)
500
100
t
N30 N50
N40: immediate block transition because HS1=0
4-56 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Effect
Permits a premature block transition using the high speed-inputs or the
customer inputs of channel interface of the control. In this way, a linear
traveling movement can be prematurely terminated, depending on ex-
ternal events.
CAUTION
Modification of the programmed path!
If the programmed end points of the HsBlkSwitch block and the
block following it do not lie on a straight line, the occurrence of an
external event always leads to a modification of the path that can
not be precisely predicted!
Programming
Syntax:
HsBlkSwitch(HS<x>=<y>,HSSTOP=<z>) Block transition with
or HsBlkSwitch(CI<x>=<y>,HSSTOP=<z>) cancellation
Abbreviation: HSB(..,HSSTOP=..)
where:
<x>: Number of high speed-signals of the customer input
(qCh_Custom<x>).
Range of values: 1-8, integer.
<y>: Logical signal status required for a block transition:
0: Low
1: High
<z>: Braking type if the event occurs:
0: Ramp down to v=0 with max. deceleration
-1: Velocity step to V=0.
Programming
Syntax:
HWOC({CHAN<Channel No>},CRDNO Online-correction ON
<Coord No>,{STEP<Inkr>})
HWOCDIS{(CHAN<Channel No>)} Online-correction OFF;
current correction magnitude
remains in internal storage.
HWOC() od. Online-correction OFF and
HWOC(0) clear the relevant correction
values.
where:
<Channel No> Channel number in which the online correction is acti-
vated/deactivated.
If CHAN<Channel No> is not programmed, the number of the
current channel is effective.
<Coord No> Coordinate on which the online-correction is to have an
effect.
value range: 1 to 9 and 103.Integer.
1 to 8: . Coordinate number in the channel specified
9 or 103: TCS-coordinate.
<Incr> Specification of the desired increment step per 1 incr.
Effective only if MP 7050 00926 = 0.
Effect
Function InitMeas is used to initialize the probe for function Measure-
ment on-the-fly (FlyMeas). Initialization must be called before the first
measuring procedure of an axis.
Programming
Syntax:
InitMeas(MpiAxis<i>) Initializing the probe logic.
Abbreviation: IME(..)
where:
<i>: Index of the physical axis that is to be used in the
measurement.
NC Functions JogWCSSelectHWOCDIS
Effect
For operating mode Set-up mode, jogging in workpiece coordinates,
this function defines which coordinate is to be jogged or traversed using
the handwheel.
The following coordinates can be selected for jogging:
D all the coordinates of individual machine axes (pseudocoordinates) if
no axis transformation is active
D all linear and orientation coordinates based on the active WCS if
an orientatable axis transformation is active
D TCS coordinate z if an orientatable axis transformation is active.
The setting in MP 7050 01010 determines whether the feed velocity and
increment (for incremental jogging) can be derived from the settings of
an existing machine axis or whether they must be explicitly program-
med.
Programming
Syntax:
JogWCSSelect({JWSCHAN<Channel No>,}JWSCOORD<Coord No>,
{JWSFEED<F-value>{,JWSSTEP<Incr>}})
where:
<Channel No> Channel number in which a coordinate is to be jogged.
Default: Number of the channel in which the function is pro-
grammed.
<Coord No> Coordinate selection.
value range: 1 to 8 and 103.Integer.
1 to 8: Number of coordinate to jog
103: TCS coordinate is to be jogged.
<F-value> Jogging speed.
Entered value depends on active unit of measurement (G71,
G70), in the unit mm/min, inch/min or degrees/min.
Effective only if MP 7050 01010 = 0.
<Incr> Selects incremental jogging and specification of the desired
step size in increments.
Effective only if MP 7050 01010 = 0.
Effect
The function enables a program-controlled change of the CO values of
individual axes. This can be used for temporary increases of the rigidity
of axes (e.g. for milling a bore).
After the control is powered up, the NC (among other things) reads the
current CO values of all coupled drives and saves them.
During CO programming, the control loads the programmed CO values
into the relevant drives (parameter S-0-0104).
When CO programming is switched off, the control transfers the pre-
viously saved CO values back to the drives, thus restoring the initial
state.
The following applies:
D CO = (path velocity in m/min) / (coasting in mm)
D Decelerating to v=0 is performed ahead of each block containing a
CO switch, since the CO value in the drive should only be switched
over at standstill.
D After the command for the CO switchover, the control always waits
internally for the acknowledgement by all participating drives.
D The CO switchover occurs immediately before any traversing move-
ment that may also be programmed in the same block.
Example:
:
N10 G1 F1000
:
N40 X40 Positioning with default CO value.
N50 KVP(X2) X50 Transfer CO value 2 to axis X and
: then traverse.
V
Switch CO
1000
t
N40 N50
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 4-63
and Controls
Programming
Syntax:
CoProg(<Axis1>{,<Axis2>}{,...}) CO programming ON.
KvProg({0}) CO programming OFF.
Abbreviation: KVP(..)
where:
<Axis> Physical (system-wide) or logical (channel-based) axis de-
signation, incl. the desired CO value.
Max. programmable CO value: 655.35
Example:
: Starting point: a CO value of 1.0 is active
: in all drives.
N10 G0 X0 Y0 Z100 Positioning with CO value = 1.0
N20 KVP(Z2.1) Transfer the CO value 2.1 to the drive of
: physical axis Z.
N30 G1 Z0 Positioning with CO value = 2.1
N40 KVP() Z100 KV programming OFF.
: The NC automatically reloads the CO va-
: lue 1.0 into all the drives.
Then the Z-axis traverses.
4-64 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
NC Functions LEN
Effect
Divides a programmed traversing block into several partial paths of
equal length.
. Works together with functions Punch (see page 4-110) and Nib-
ble (see page 4-76).
Programming
Syntax:
LEN=< Value>
where:
<Value> For linear blocks: length of partial path.
For circular blocks: length of arc.
Programming unit as for the axis coordinates.
<Value> does not have to be an integral divisor of the pro-
grammed length of path. Internally, the NC automatically
computes an effective LEN value that is less than/equal
to the programmed LEN value with the effect that the ef-
fective path segments are always integral divisors of the
programmed length of path.
NC Functions LEN
N30 X200 Y200 C180 Punch(1) Punching ON. LEN is in effect. The
path length is split into 10 block seg-
ments.
Resulting stroke positions (X,Y,C):
P1 (110,110,18)
P2 (120,120,36)
:
P10 (200,200,180).
N40 Y290 C210 The path length (90 mm) is split into 6
block segments. Resulting stroke
positions (X,Y,C):
P11 (200,215,185)
P12 (200,230,190)
:
P16 (200,290,210).
N50 Punch() Punching OFF.
:
Y : No stroke
P16
290 : Stroke
275
260
Tool rotation LEN=15: results in 6
245 by 15_ each path segments of 15
mm each
230 (X200, Y200, C180
through
215 P11 X200, Y290 C210)
200
190 P10
180
170
160 LEN=15: results in 10
path segments of 10 mm
150 each
140 (X120, Y120, C18
130
through
P2 Tool rotation X200, Y200 C180)
120 P1 by 18_ each
110 P0
100
0
0 100 120 140 160 180 200 X
110 130 150 170 190
4-66 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Effect
Controls the power of a laser using an analog voltage signal (0 - 10 V)
depending on the current path velocity vpath.
. For detailed information about this function, see the Description
of Functions.
Programming
Syntax:
LFP(1) or Laser power control ON with cur-
LFP rent parameter settings.
LFP({LL(... )}) Laser power control ON with ad-
ditional parameter settings as
described under LFCont.
LFP(0) Laser power control OFF.
where:
<Volt> Voltage in % of the maximum output voltage (10 V).
Together with <Vmin>: Output at a path velocity of less than
<Vmin>.
Together with <Vmax>:Output at a path velocity of greater
than <Vmax>.
<Vmin> Lower path velocity limit.
Entered value depends on active unit of measurement (G71,
G70), in the unit mm/min, inch/min or degrees/min.
<Vmax> Upper path velocity limit.
Entered value depends on active unit of measurement (G71,
G70), in the unit mm/min, inch/min or degrees/min.
<Mode> Defines which coordinates are to be used to determine vpath:
APL All coordinates of the current plane.
ASP All coordinates of the current space.
CFD Coordinates according to MP 7050 00820.
<Coord x> Defines which coordinates are to be used to determine vpath.
Input values: Name of the participating space coordinates (if
axis transformation is active) or logical axis name (pseudo-
coordinates; if axis transformation is not active).
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 4-67
and Controls
Examples:
LFP (LL(10,100), UL(60,700))
Laser power control ON. Additional parame-
ter settings: Output voltage to 10% (=1V) if
the path velocity drops below 100mm/min
and 60% (=6B) if the path velocity rises
above 700 mm/min.
LFP(0) Laser power control off.
LFConf (PL(APL)) Only parameter settings: The path velocity is
derived from the movement in the active le-
vel.
LFConf (CD(X , Z)) Only parameter settings: The path velocity is
derived from the movement of coordinates X
and Z.
LFConf (UL(80,500)) Only parameter settings: Limit output vol-
tage to 80% (=8V) if the path velocity rises
above 500mm/min.
Programming
Syntax:
LinUpFeed Activate acceleration interpolator with linear
Abbreviation: LNU velocity rise
SinUpFeed Activate acceleration interpolator with
Abbreviation: SNU sinusoidal velocity rise
Sin2UpFeed Activate acceleration interpolator with
Abbreviation: S2U sin2-shaped velocity rise.
ConstFeed Activate constant speed interpolator.
Abbreviation: CFD
V(t)
0
t
Effect
LinModZp can be used to define the current position of a linear endless
axis as a new program zero point.
The axis indicator then jumps to a value of 0. The resulting offset is sto-
red within the control and is internally added to all subsequent coordi-
nate information of the corresponding axis.
After a control reset, it is subtracted from the indicator value and deleted.
. For linear endless axes, see machine parameter 1003 00004.
Programming
Syntax:
LinModZp Define the current positions of all
linear endless axes configured in
MP 1003 00004 as a new program
zero point.
LinModZp(LinModAxis<i>) Define the current position of the
linear endless axes configured in
MP 1003 00004 with physical axis
index <i>as a new program zero
point coordinate of this axis.
Abbreviation: LMZ(..)
where:
<i>: Physical axis index.
Example:
N10 LMZ Define the current positions of all
: configured linear endless axes as a
: new program zero point.
N50 LMZ(LinModAxis1) X-20 Define the position of the linear
: endless axis with axis index 1 as a
: new program zero point coordinate.
Then traverse to X-20.
Programming
Syntax:
MainSp(<Num>) or
MainSp(<Spindle>)
Abbreviation: MSP...
where:
<Num> Number of the spindle (spindle index).
Input value: -1; 1 - 8. Integer.
-1: Main spindle according to MP 7020 00010.
<Spindle> as for <Num>
or
spindle name (e.g. S1)
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 4-73
and Controls
Effect
The Mirror function is one of the input tools.
The control machines a programmed contour or, for instance, a borehole
pattern as a mirror image.
Mirroring always refers to the current mirror point (see function PoleSet,
page 4-101). If this was not explicitly programmed, the current program
zero point is the mirror point.
Programming
Syntax:
Mirror(<Axis1>1{,<Axisn>1}) Switch on mirroring for the
given axes.
Mirror(<Axis1>0{,<Axisn>0}) Switch off mirroring for the
given axes.
Mirror(0) or Switch off mirroring for all the
Mirror() axes in the channel.
Approached axis positions are
retained until they are
reprogrammed.
Abbreviation: MIR(..)
where:
<Axis 1>, <Axis n>: Axis addresses (e.g. X) combined with a value of
1 activate the function: all subsequently
programmed path commands of the
corresponding axes (e.g. X100) are multiplied
internally by a value of -1.
Mirroring does not become effective until the
next traversing information.
Mirroring examples:
P X P X
P X P 10 X
Syntax:
Mirror(O(<Sx>,<Sy>,<Sz>)) Switch on/off mirroring for the
given components of an
orientation vector.
Abbreviation: MIR(..)
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 4-75
and Controls
where:
<Sx>,<Sy>,<Sz> Mirroring factors for the individual vector
components.
0: no mirroring
1: mirroring
Effect
Switches the Nibbling function on or off.
If nibbling is activated, no stroke is released in the following cases:
D at the end of every partial path that is programmed or generated by
function NUM (see page 4-78) or LEN (see page 4-64), and
D at the beginning of the first partial path if no traversing movement was
programmed in the active plane or nibbling was switched off in the
previous block.
The subsequent traversing motion always starts before the stroke is fi-
nished.
. Functions to influence the stroke release time:
PtDefault (see page 4-108)
PtBlkEnd (see page 4-106)
PtInpos (see page 4-109).
Programming
Syntax:
Nibble(1) or Nibbling ON.
Nibble
Abbreviation: NIB(..)
Example:
- G90 is active (absolute dimension programming)
- active plane: X/Y
- current position: X=0, Y=0, C=0
:
N10 LEN=12 Divide the traversing blocks into identical
partial paths with a maximum of 12 mm.
LEN must be programmed before Nibble
is switched on!
N20 C10 Nibble(1) Nibbling ON. Modal LEN is in effect. C-
axis rotates to 10 degrees. No stroke be-
cause the X- and Y-axes are not pro-
grammed.
N30 X0 No traversing movement because the
X-axis is already located on position 0.
A stroke occurs because the X-axis is
located in the active plane.
N40 X110 The traversing block is divided into 10
identical 11-mm partial paths. Strokes
are executed in positions X11, X22, X33
... X99, X110
Additional stroke at position X0 be-
cause no traversing movement occurred
in N30.
N50 Y30 NUM=3 Overrides the modally effective LEN
(N10) for the current block.
Divide the traversing blocks into 3 identi-
cal partial paths. Strokes at Y10, Y20,
Y30.
N60 Y90 LEN from N10 is in effect again.
Strokes at Y42, Y54, Y66, Y78, Y90.
N70 X50 Y50 Nibble() Nibbling off.
: Traversing movement to X=50, Y=50.
90
LEN=12
Y42 through 78
Y90 66
(5 path
segments 54
at 12 mm each)
42
NUM=3 30
Y10 through
Y30 20
(3 path 10
segments
0
at 10 mm each)
0 11 22 33 44 55 66 77 88 99 110 X
: 1x stroke LEN=12
: 2x stroke X0 through X110
(10 path segments of 11 mm
each)
4-78 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
NC Functions NUM
Effect
Divides a programmed traversing block into a defined number of partial
paths of equal length.
. Works together with functions Punch (see page 4-110) and Nib-
ble (see page 4-76).
Programming
Syntax:
NUM=<Value>
where:
<Value> Number of partial paths
Input value: Integer, greater than 0.
NUM=1 does not produce any division.
Example:
See example in section 4.42, page 4-64 ff.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 4-79
and Controls
The orientation vector is located along the tool symmetry axis and points
to the tool holder. Various types of orientation programming are availa-
ble:
Effect
Programming the tool orientation is also possible using
D orientation coordinates of the orientation vector
(e.g. phi and theta).
Orientation vector
z
P (,)
theta.
+ y
phi.
+ x
Pole
4-80 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
+ z
y y
+ x y
Pole Pole x
x
z Angle
y
Orientation vector a
(initial orientation)
TCP
x
Programming
1. Activate the permitted axis transformation type (type of 100-th- posi-
tion = 2) with Coord(...) (see page 4-30).
2. Use the syntax shown below.
Syntax:
{<No>} {<TCP mvmt>} {<phi><j>} {<theta><J>} or
{<No>} {<TCP mvmt>} O(<j>,<J>) or
{<No>} {<TCP mvmt>} O(<rx >,<ry >,<rz >) or
{<No>} {<TCP mvmt>} ROTAX(<ju >,<Ju >) O(<b>) or
{<No>} {<TCP mvmt>} ROTAX(<ux >,<uy >,<uz >) O(<b>)
where:
<No> Block number. See page 2-20.
<TCP mvmt> Additional TCP movement.
For the syntax, please refer to the Description
of Functions under space coordinate program-
ming.
<phi> Angle name that is entered in
MP 7080 00010[4]. Default: phi
<theta> Angle name that is entered in
MP 7080 00010[5]. Default: theta
<j>,<J>,<ju >,<Ju > Absolute angle values in degrees.
Value range: 0_ j < 360_; 0_ J 180_.
If another value is programmed for J, it is auto-
matically converted to the given interval.
O(<j>,<J>) Orientation using function O(..) and polar angles
<j> and <J> of the orientation vector.
O(<rx >,<ry >,<rz >) Orientation using function O(..) and Cartesian
components <rx >,<ry >,<rz > of the orientation
vector in absolute dimensions.
Automatic standardization to 1. As a result, the
following sample entries cause the identical
orientation: O(1,2,4), O(2,4,8)
ROTAX(<ju >,<Ju >) Define the axis of rotation using polar angles (u,
u).
ROTAX(<ux >,<uy >,<uz >) Define the axis of rotation using Cartesian
components <ux >,<uy >,<uz > in absolute di-
mensions. Automatic standardization to 1.
O(<b>) Indicates (in degrees) the incremental angle
<b> around which the orientation vector is to be
turned around the axis of rotation. Values grea-
ter than 360 degrees are allowed.
The direction of rotation can be selected using
the positive/negative sign.
Effect
Tool orientation is affected by orienting the entire tool coordinate system
TCS, based on the current PCS.
z z
z
TCS TCS
TCS
x x TCP
TCP
TCP x
y
y y
z
y
Gripping tool:
PCS
x TCS permanently
coupled to tool
Programming
1. Activate the permitted axis transformation type (type of 100-th- posi-
tion = 3) with Coord(...) (see page 4-30).
2. Use the syntax shown below.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 4-83
and Controls
Syntax:
{<No>} {<TCP>} {<phi><j>} {<theta><J>} {<psi><y>} or
Ox(<O11>,<O21>,<O31>)
Oy(<O12>,<O22>,<O32>)
Oz(<O13>,<O23>,<O33>)
Ox(<jx >,<Jx >)
Oy(<jy >,<Jy >)
Oz(<jz >,<Jz >) Orientation per function Ox(..), Oy(..), Oz(..).
For example, Ox(..) defines the direction of the
x-coordinate of the TCS in the reference coordi-
nate system. The same applies analogously to
Oy(..) and Oz(..).
The direction can be specified either by the cor-
responding polar angles <j..> and <J..> or the
Cartesian components of the orientation ten-
sors column vectors.
Only absolute dimensions are allowed.
The component values of the column vectors
(o..) are automatically standardized to 1.
ROTAX(<ju >,<Ju >) Define the axis of rotation using polar angles (u,
u).
ROTAX(<ux >,<uy >,<uz >) Define the axis of rotation using Cartesian
components <ux >,<uy >,<uz > in absolute di-
mensions. Automatic standardization to 1.
O(<b>) Indicates (in degrees) the incremental angle
<b> around which the orientation tensor is to be
turned around the axis of rotation.
Values greater than 360 degrees are allowed.
The direction of rotation can be selected using
the positive/negative sign.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 4-85
and Controls
Example:
Settings for example:
MP 1030 00110[1] for axis transformation 2: 3333301
MP 7080 00010[1]: x
MP 7080 00010[2]: y
MP 7080 00010[3]: z
MP 7080 00010[4]: phi
MP 7080 00010[5]: theta
MP 7080 00010[6]: psi
z
Tensor column vectors:
1 0 0
ext = 0 eyt = 1/2 ezt = 1/2
0 -1/2 1/2
45_
ezt zt
Orientation using Euler angle:
PCS
= 90_, = 45_, = 270_ x TCS
ext xt
45_
eyt yt
y
Effect
To program the tool orientation, the position values of two rotary axes
that act on the tool are programmed (e.g. B, C).
C-axis
Orientation vector
z
P (,)
B..
+ y
B-axis
C..
+ x
Orientation Pole
vector
TCP
Programming
1. Activate axis transformation type 3032101 with Coord(...) (see
page 4-30).
2. Use the syntax shown below.
Syntax:
{<No>} {<TCP mvmt>} {<B><Pos>} {<C><Pos>}
where:
<No> Block number. See page 2-20.
<TCP mvmt> Additional TCP movement.
For the syntax, please refer to the Description of
Functions under space coordinate programming.
<B>, <C> Axis addresses of the rotary axes located on the tool
<Pos> Absolute axis position in degrees.
Example:
Settings for example:
MP 1030 00110[1] for axis transformation 2: 3032101
MP 7080 00010[1]: x
MP 7080 00010[2]: y
MP 7080 00010[3]: z
Effect
Programming the tool orientation is also possible using:
D orientation coordinates of the orientation vector
(e.g. phi and theta).
Orientation vector
z
P (,)
theta.
+ y
phi.
+ x
Pole
+ z
y y
+ x y
Pole Pole x
x
Programming
1. Activate axis transformation type 3232101 with Coord(...) (see
page 4-30).
2. Use the syntax shown below.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 4-89
and Controls
Syntax:
{<No>} {<TCP mvmt>} {<phi><j>} {<theta><J>} or
{<No>} {<TCP mvmt>} O(<j>,<J>) or
{<No>} {<TCP mvmt>} O(<rx >,<ry >,<rz >)
where:
<No> Block number. See page 2-20.
<TCP mvmt> Additional TCP movement.
For the syntax, please refer to the Description
of Functions under space coordinate program-
ming.
<phi> Angle name that is entered in
MP 7080 00010[4]. Default: phi
<theta> Angle name that is entered in
MP 7080 00010[5]. Default: theta
<j>,<J> Absolute angle values in degrees.
Value range: 0_ j < 360_; 0_ J 180_
O(<j>,<J>) Orientation using function O(..) and polar angles
<j> and <J> of the orientation vector.
O(<rx >,<ry >,<rz >) Orientation using function O(..) and Cartesian
components <rx >,<ry >,<rz > of the orientation
vector in absolute dimensions.
Automatic standardization to 1. As a result, the
following sample entries cause the identical
orientation: O(1,2,4), O(2,4,8)
Example:
Settings for example:
MP 1030 00110[1] for axis transformation 2: 3232101
MP 7080 00010[1]: x
MP 7080 00010[2]: y
MP 7080 00010[3]: z
MP 7080 00010[4]: phi
MP 7080 00010[5]: theta
N10 G1 X0 Y0 Z0 B0 C0 Programming logical/physical axis na-
mes.
N20 Coord(2) Switch axis transformation 2 on.
Linear coordinates x, y, z and
orientation coordinates phi, theta
can now be programmed.
N30 x1 y2 z3 phi5 theta5 Linear coordinate interpolation with addi-
tional orientation movement.
N40 Coord(0) Axis transformation off.
Effect
The program control influences the effect of the feedrate potentiometer
for feedrate and rapid travel.
Both functions are in effect in the manual data input and automatic
operating modes.
Programming
Syntax:
OvrDis Feed potentiometer OFF
The feedrate is set to 100% of the programmed
value irrespective of the feedrate potentiometer.
Abbreviation: OVD
OvrEna Feed potentiometer ON
The feedrate depends on the position of the
feedrate potentiometer.
Abbreviation: OVE
Example:
: Feed potentiometer set to
100%.
N40 OVD G1 X5 Z-2 F200 S100 M4 Deactivate feed potentiometer.
: Switch feed potentiometer to
40%, feedrate stays at 100%.
N80 OVE X100 Y50 Activate feed potentiometer.
Feedrate switches to 40%.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 4-91
and Controls
Effect
In the parts program, reduces the upper limits for
D path acceleration and
D path deceleration.
Both the acceleration and deceleration values are preset using the ma-
chine parameters and can be switched together or separately in the
parts program.
Programming
Syntax:
PathAcc(ACC<Value>) Setting of the path acceleration and
deceleration together.
PathAcc({UP<Value1>,} Setting the path-acceleration and de-
{DOWN<Value2>}) celeration separately.
PathAcc() or Reactivate the acceleration values
PathAcc(0) from MP 7030 00210 and
7030 00220.
Abbreviation: PAC(..)
where:
<Value> Acceleration value. Depending on the currently active mea-
suring units (G71/G70), the control interprets the program-
med value as 1000 inch/s2 or m/s2.
<Value1> Value for acceleration. Otherwise, the same as for <Value>.
<Value2> Value for deceleration. Otherwise, the same as for <Value>.
Example:
N30 G71 Switch on metric programming.
N40 PAC(UP1.5) Set path acceleration to 1.5 m/s2.
:
N140 PAC(ACC5) Set path-acceleration and -deceleration to 5
: m/s2.
N200 PAC(UP3.5,DOWN2) Set path acceleration to 3.5 m/s2 and path-
: deceleration to 2 m/s2.
N240 PAC() Reset acceleration values to machine para-
: meter setting.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 4-93
and Controls
Effect
Affects the status of a high-speed (HS) output using a programmed tra-
versing movement.
As soon as the command NC position, based on the start or end of the
current block, reaches a programmable value, the HS output is set or re-
set, depending on the programming.
How long the output is to remain set after the specified event has occur-
red can be programmed.
Programming
Syntax:
PosDepHSOut(<Mode>{,{<Distance>}{,<Duration>}})
Abbreviation: PHS(..)
where:
<Mode> Desired method of operation of the function.
Input values: 0, 1 or -1.
0 Modally saves programmed data using <Distance>
and/or <Duration>.
The current status of the HS output is not changed.
1 Modally saves programmed data using <Distance>
and/or <Duration> and sets the HS output.
The relevant modal data values apply to the unpro-
grammed parameters.
-1 Resets the HS output.
If a <Distance> is programmed, it has only a local effect
for this block. If a <Duration> is programmed, it is ignored.
<Distance>Distance to the start/end of the block where, when it is
attained, the signal is to be set (in mm/inches).
Default value: 0
0: At end of block
greater than 0: Distance to start of block
less than 0:Distance to end of block
<Duration> Maximum time that the HS output is switched on (in ms).
Range of values: 0.5 - 10000.0
Programmed values are internally rounded to the next larger
integer multiple of the NC cycle time.
4-94 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Examples:
:
N05 G71
N10 PHS(0,-1.2,40) Configure function.
: In a subsequent call using PHS(1) syn-
: tax, the HS output is set for approx.
: 40 ms about 1.2 mm before attaining the
: end point.
N210 G1 G91 F1000
N220 X10 Y23 PHS(1) Set HS output according to configuration
: in N10.
:
N330 X10 PHS(1,0.1,900) Set HS output for max. 900 ms 0.1 mm
: after the start position.
N350 X20 PHS(-1,-0.3) Reset HS output 0.3 mm before the end
: position.
Effect
Activates placement tables (correction tables of the Inclined plane
placement). Such correction tables are stored as XML files in the file sy-
stem of the control.
Programming
Syntax:
PmTSel({<Path>}<Filename>)
Abbreviation: PMS(..)
where:
<Path> Optional path information for the directory in which <File-
name> is stored.
If there is no information, the file will be searched in the /da-
tabase directory.
If <Filename> is not present there, the control uses the search
path for subroutines so that the search for <Filename> can
also be carried out in other directories.
<Filename> File name of the placement table, incl. the file extension.
Tables with standard names (PM<Number>.pmt) can be
activated directly using the number, e.g.
PmTSel(3) activates table PM3.pmt.
. Please refer to the Operating Instructions for how to create and edit
placement tables.
4-96 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Effect
D Defines the origin of the polar coordinate system based on the active
plane of the active program coordinate system.
D Sets polar angle 1 for polar coordinate programming (standard ad-
dress: A; definable in MP 8005 00001) to 0 degrees.
D Sets polar angle 2 for polar coordinate programming (standard ad-
dress: B; definable in MP 8005 00002) to 90 degrees.
Programming
Syntax:
PolarPol(<PCValue>,<SCValue>) Specify pole.
PolarPol(ACTPOS) Set pole to current position.
PolarPol() or Set pole to coordinate 0.0.
PolarPol(0)
Abbreviation: POP(..)
where:
<PCValue>Pole value for the primary coordinate.
<SCValue>Pole value for the secondary coordinate.
Example:
:
N10 G18 switch to the ZX plane with Z as the primary
: and X as the secondary coordinate.
N30 G0 X10 Z25 Positioning movement in rapid traverse to
: Cartesian coordinates X10 and Z25.
N40 POP(ACTPOS) The current position values (PCValue=25,
: SCValue=10) are taken on for the pole defi-
nition.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 4-97
and Controls
YR +
P
B R
A
Pole XR X
Radius value:
An axis address is always used to program the current working plane
(e.g. X or Y for an active G17). This programmed coordinate is also
called a radius coordinate.
In the case of absolute dimension programming, it indicates the distance
of the target point from the pole; in the case of incremental programming,
it indicates the distance of the target point from the starting point.
If both possible axis addresses are programmed in a single block, a run-
time error occurs.
Polar angle 1:
D By default, this is programmed as address A; it always lies in the cur-
rent working plane.
D Each programmed polar angle 1 refers to the last-programmed ra-
dius coordinate axis. A positive value indicates rotation in the mathe-
matically positive sense; it remains in effect until a new value is
programmed.
If incremental programming is active, the programmed angle is calcu-
lated incrementally.
D When polar coordinate programming is activated with POL, polar an-
gle 1 is set to a value of 0 degrees.
4-98 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Polar angle 2:
D By default, this is programmed as address B; if absolute dimension
programming is active, it describes the angle between the normal
axis (to the current working plane) and the vector of the current pole to
the target point. It remains in effect until a new value is programmed.
If incremental programming is active, the programmed angle is calcu-
lated incrementally.
D When polar coordinate programming is activated with POL, polar an-
gle 2 is set to a value of 90 degrees.
In this case, the target point is located precisely in the active working
plane. Now the polar coordinates have an effect only in the plane. All
other coordinates outside of the working plane are interpreted accor-
ding to Cartesian coordinates. This applies especially to programmed
coordinate values of the current normal axis!
D Real spatial polar coordinates (spherical coordinates) occur if polar
angle 2 becomes unequal to 90 degrees. Programming coordinate
values of the current normal axis then leads to a runtime error. Howe-
ver, all coordinates outside of the 3D space may be included simulta-
neously in programming. As in the 2D case, they are also interpreted
according to Cartesian coordinates.
D If polar angle 2 is 0 degrees, the value of polar angle is unimportant
because the programmed point lies exactly vertically over the pole.
R
YR
B +
A
Pole XR X
X P2 : Traversed path
20
20
A70
10 Z
Pole P1
C
P 10 20 30 40
X P2 : Traversed path
X
: Position vector
20
A90
P3 Pole
10 Z
P1
20
C
P 10 20 30 40
4-100 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Y Y
: Traversed path
P3 A60 P2
A30
P4 P0 P1
P7 X
P5 P6
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 4-101
and Controls
Effect
This function specifies the absolute position of the pole for the Mirror,
Scale and Rotate input tools. The defined pole is then the reference point
of these input tools, thus providing the mirroring/rotation point.
Programming
Syntax:
PoleSet(<Coordinates>) Set pole to given coordinates. The given
coordinates are to be separated by
commas
(e.g.: PoleSet(X5,Y2)).
PoleSet(0) or reset the pole to the origin of the
PoleSet() or program coordinate system.
Abbreviation: PLS(..)
Example:
:
N30 PLS(X5,Y2) Set the mirror/rotation point to a position of
: X=5 and Y=2.
N130 PLS() Reset the mirror-/rotation point to the
: program coordinate origin.
Effect
Specifies in which direction axes of type endless are to rotate during a
positioning procedure.
The following applies:
D As opposed to PosMode, DC(...), ACP(...) and ACN(...) have a
block-by-block effect, overriding the active positioning type of the
correspondingly programmed axis in the current block.
D Position information that is programmed in combination with DC,
ACP and ACN functions are always interpreted as absolute position
values.
Programming
Syntax:
PosMode(<Adr><Type>) Activate the positioning type for the axis
with address <Addr> according to <Type>.
Several axes may be programmed in the
parentheses. Activate the positioning type
for nonprogrammed rotary/endless axes in
the current channel according to
MP 1003 00005.
PosMode() or Activate the positioning type for all axes in
PosMode(0) the current channel according to
MP 1003 00005.
Abbreviation: PMD(..)
Example:
N40 B=ACP(-258) Irrespective of PosMode, the physical axis desi-
: gnated B traverses in the mathematically positive
: direction to the position 258 degrees. The positive/
: negative sign is ignored.
N80 PMD(A1C2) Positioning type of
: Axis A: shortest path
: Axis B: according to MP 1003 00005
: Axis C: positive/negative sign
Command contour
Act4
Actual contour with PrecProg
Act3
Act5 Actual contour
Comm1 without
Actual contour without PrecProg Comm5
PrecProg
Act6
Act2
Contour error at block transition without
PrecProg
d Comm3 e
Ract(without
e PrecProg)
Programming
Syntax:
PrecProg or Precision programming ON.
PrecProg(1) Max. permitted contour-/radius error e
according to MP 8003 00001.
PrecProg(EPS<e>) Precision programming ON.
Maximum permitted contour/radius er-
ror: <e>.
PrecProg(DIST<d>) Precision programming ON.
Maximum permitted path coasting: <d>.
For circular path segments: Take e value
from MP 8003 00001 into account.
PrecProg() or Precision programming OFF.
PrecProg(0)
Abbreviation: PRP(..)
where:
<e>: Maximum permitted contour/radius error in mm/inches (de-
pending on G70/G71).
<d>: Maximum permitted path coasting in mm/inches (depending
on G70/G71).
Effect
. Works together with functions Punch (see page 4-110) and Nib-
ble (see page 4-76).
The function
D defines time reference event NC interpolator is reaching the end
point of the traverse movement for the given axes and
D specifies the period between the time reference event and the stroke
release.
In this manner, the stroke release point based on the time reference
can be offset as far as desired. The following is possible:
D Early stroke release
(e.g. to compensate for a constant, application-dependent waiting
time that is caused by signal processing) and
D Delayed stroke release
(e.g. to increase the positioning precision for axes with lower dyna-
mics, or for punching with hold-down devices).
Programming
Syntax:
PtBlkEnd(<Axis><Time>{,<Axis><Time>}...)
Abbreviation: PTE(..)
where:
<Axis> Logical axis name.
<Time> Desired period (in ms) between the time reference event
and the stroke release.
0: stroke release at time reference event.
negative value: early stroke release
positive value: delayed stroke release
Example:
- Axis configuration: X, Y, C
- SERCOS cycle time: 3 ms
Setting the stroke release times:
:
N10 PTE(X-10) Time reference event for axis X:
: NC interpolator is reaching the end point of the
: traverse movement.
: Early stroke release by 10 ms.
N20 PTI(Y10,C2) Time reference event for axes Y and C: Inpos win-
: dow reached
: (For the function, see page 4-109).
: Y-Axis: Delayedstrokerelease by 10 ms.
: C-Axis: Delayedstrokerelease by 2 ms.
Effect
. Works together with functions Punch (see page 4-110) and Nib-
ble (see page 4-76).
Set the time of the stroke release of all axes in the system according to
the values defined in MP 8001 00020 and MP 8001 00021.
Programming
Syntax:
PtDefault
Abbreviation: PTD
Example:
See page 4-107.
The function
D defines time reference event Inpos window reached for the given
axes and
D specifies the period between the time reference event and the stroke
release.
In this manner, the stroke release point based on the time reference
can be offset as far as desired (e.g. to increase the positioning precision
for axes with lower dynamics, or for punching with hold-down devices).
Programming
Syntax:
PtInpos(<Axis><Time>{,<Axis><Time>}...)
Abbreviation: PTI(..)
where:
<Axis> Logical axis name.
<Time> Desired period (in ms) between the time reference event
and the stroke release.
Effect
Switches the Punching function on or off.
When punching is activated, a stroke is released
D at the end of each programmed traversing movement (individual
stroke operation), or
D at the end of every partial path generated by function NUM (see
page 4-78) or LEN (see page 4-64)
The subsequent traversing motion always starts before the stroke is
finished.
. Functions to influence the stroke release time:
PtDefault (see page 4-108)
PtBlkEnd (see page 4-106)
PtInpos (see page 4-109).
Programming
Syntax:
Punch(1) or Punching ON.
Punch
Abbreviation: PUN(..)
Example:
- G90 is active (absolute dimension programming)
- active plane: X/Y
- current position: X=0, Y=0, C=0
:
N10 C10 Punch(1) Punching ON. C-axis rotates to 10 de-
grees. No stroke because the X- and Y-
axes are not programmed.
N20 C60 C-axis rotates to 60 degrees. No stroke
because the X- and Y-axes are not pro-
grammed.
N30 X0 No traversing movement because the
X-axis is already located on position 0.
A stroke occurs because the X-axis is
located in the active plane.
N40 LEN=12 Divide the following traversing blocks into
identical partial paths with a maximum of
12 mm.
N50 X110 The traversing block is divided into 10
identical 11-mm partial paths. Strokes
are executed in positions X11, X22, X33
... X99, X110
N60 Y30 NUM=3 Overrides the modally effective LEN
(N40) for the current block.
Divide the traversing blocks into 3 identi-
cal partial paths. Strokes at Y10, Y20,
Y30.
N70 Y90 LEN from N40 is in effect again.
Strokes at Y42, Y54, Y66, Y78, Y90.
N80 X50 Y50 Punch() Punching OFF.
: Traversing movement to X=50, Y=50.
90
LEN=12 78
Y42 through
Y90 66
(5 path
segments 54
at 12 mm each) 42
NUM=3 30
Y10 through
Y30 20
(3 path 10
segments
0
at 10 mm each)
0 11 22 33 44 55 66 77 88 99 110 X
LEN=12
X0 through X110
: Stroke
(10 path segments of 11 mm
each)
4-112 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
where:
<Axis i>: Physical or logical axis designation, incl. the
corresponding maximum torque as a % of the axis
standstill torque.
Range of values: 0 to 500%.
Example:
N8 RDT(X5) With the next positive edge of the relevant axis-based
: Torque reduction signal, the maximum torque for the axis
: (X in this case) will be limited to 5% of its axis -standstill tor-
que.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 4-113
and Controls
Effect
Removes a synchronous axis from the calling channel. This turns a syn-
chronous axis into an asynchronous axis.
The asynchronous axis can then be programmed in any channel using
its physical axis name.
. For detailed information about the Axis transfer function, see the
Description of Functions.
Programming
Syntax:
RemAxis(<PAN> | <PAI> | <LAN>{,<PAN> | <PAI> | <LAN>}...)
Abbreviation: RAX(..)
where:
<PAN> Physical axis name.
Specifies the axis that is to be removed from the current
channel.
<PAI> Physical axis index.
Same effect as <PAN>.
<LAN> Logical axis name.
Same effect as <PAN>.
Example:
:
N030 RAX(XP,2,Z) Physical axis XP, the physical axis assigned
: index 2 and logical axis Z are removed from
the channel.
4-114 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Effect
Deletes the logical axis name of a synchronous axis in the calling chan-
nel.
The axis remains in the channel, but can be programmed there only
using its physical axis name or physical axis index.
. For detailed information about the Axis transfer function, see the
Description of Functions.
Programming
Syntax:
RemLogName(<PAN> | <PAI> | <LAN>{,<PAN> | <PAI> | <LAN>}...)
Abbreviation: RLN(..)
where:
<PAN> Physical axis name.
Specifies the axis whose logical axis name is to be remo-
ved from the current channel.
<PAI> Physical axis index.
Same effect as <PAN>.
<LAN> Logical axis name.
Same effect as <PAN>.
Example:
:
N030 RLN(YP,3,Z) The logical names of physical axis YP, the
: 3rd physical axis and logical axis Z are re-
moved from the calling channel.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 4-115
and Controls
NC Functions REPOSTP
. You can find extensive information regarding the use and parame-
ter settings of asynchronous subroutines in the Description of
Functions.
Programming
Syntax:
REPOSTP(<Point>)
where:
<Point> Desired point of return to path:
1: Starting point
2: End point
3: Interruption point
Effect
The Rotate function is one of the input tools.
The control rotates a programmed contour in the active plane (for pla-
nes, please refer to G17, G18, G19 or G20).
Rotation always refers to the current point of rotation (see function Pole-
Set, page 4-101). If this was not explicitly programmed, the current pro-
gram zero point is the point of rotation.
Using this function, you need program only once recurrent programming
steps that are rotated around a specific angle.
In addition, you do not have to convert the dimensions of angled work-
pieces to the basic workpiece coordinate system; you simply take them
over directly from a production drawing and specify the corresponding
angle of rotation. The control will do the rest.
Programming
Syntax:
Rotate(<Angle of rotation>) Switch on rotation around the desired
<angle of rotation>.
Rotate(0) or Switch off rotation for all the axes in the
Rotate() channel. Set all angles of rotation to 0.
Approached axis positions are retained
until they are reprogrammed.
Abbreviation: ROT(..)
where:
<Angle of rotation> > 0: Counterclockwise rotation
< 0: Clockwise rotation
= 0: Switch off rotation.
All following programmed coordinates of the active
plane are rotated around the rotation point (see
PoleSetpage 4-101).
Rotation does not become active until the next
traversing information.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 4-117
and Controls
Example:
:
N30 ROT(45) Rotation ON. All following programmed coordinates of
: the active plane are rotated counterclockwise by 45
: degrees around a possibly programmed rotation point.
:
Y Y
P
P X X
Effect
This function inserts tangential transition arcs between 2 linear blocks in
the main plane.
On the one hand, this leads to a minor modification of the programmed
contour at these corners, but on the other hand, continuous speed and
acceleration patterns are achieved during interpolation.
Programming
Syntax:
RoundEps(<Deviation>) Rounding corners ON between 2 li-
near blocks.
RoundEps(DEF) Rounding corners ON between 2 li-
near blockswith default deviation
from MP 7050 00110.
RoundEps(0) or Rounding corners off between 2 li-
RoundEps() near blocks.
Abbreviation: RNE(..)
where:
<Deviation> Maximum permitted deviation (in mm) between the
modified and the programmed contour. Positions after
the decimal point are allowed.
The control calculates a suitable tangential transition
arc on its own.
Effect
This function inserts tangential transition arcs between 2 linear, circular
or helical blocks in the main plane.
On the one hand, this leads to a minor modification of the programmed
contour at these corners, but on the other hand, continuous speed and
acceleration patterns are achieved during interpolation.
Programming
Syntax:
Rounding(<Radius>) Rounding corners ON between 2 linear/
circular/helical blocks.
Rounding(0) or Rounding corners OFF between 2 li-
Rounding() near-/circular-/helical blocks.
Abbreviation: RND(..)
where:
<Radius> desired radius of the transition arc; positions after the
decimal point are allowed.
: modified contour
: programmed contour
Radius
4-120 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Effect
The Scale function is one of the input tools.
The control scales a programmed contour up or down based on the pro-
gram zero point.
Scaling always refers to the current mirror point (see function PoleSet,
page 4-101). If this was not explicitly programmed, the current program
zero point is the mirror point.
The Scale function can be used in parts programs for programming con-
tours using one fixed size (standard size). Then, prior to calling such a
standardized parts program (e.g. as a subprogram), you use scaling
factors for each axis to determine the scale of the programmed contour.
In this way it is, for instance, easy to compensate for the contraction of
the workpieces in the manufacture of the moulds for cast and forged
parts.
Programming
Syntax:
Scale(<Axis1><Factor>{,...}) Scaling ON with the programmed
factor for the given axes.
Scale(0) or Switch off scaling for all the axes
Scale() in the channel. Set all scaling
factors to a value of 1.
Approached axis positions are
retained until they are
reprogrammed.
Abbreviation: SCL(..)
where:
<Axis1> Axis address (e.g. X) that is to be scaled.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 4-121
and Controls
Example:
:
N30 SCL(X3,Y0.5) Scaling ON. All X-coordinates programmed
: subsequently are multiplied by 3, and the
: Y-coordinates by 0.5.
+Y
P1 = before scaling
P1 P2 = scaling result
20
P2
10
P 10 20 30 40 +X
4-122 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Effect
Couples a workpiece coordinate of the current channel (target) to a
workpiece coordinate of another channel (source). The coordinate value
of the source thus has an additive effect for the coordinate value of the
target.
In this way, movements in the current channel can be superimposed by
movements that are programmed in another channel.
Programming
Syntax:
SelCrdCouple(SC<Channel>, Selective additive coordinate
CL(<Q1>,<Z1>{{,<Qn>,<Zn>}...})) coupling ON.
where:
<Channel> Channel number in which <Qn> is located.
Input value: Integer.
<Channel> must be less than the number of the active
channel.
<Qn> Source. Logical name or logical number of the coordinate in
<Channel>.
<Zn> Target. Logical name or logical number of the coordinate in
the current channel.
Examples:
SCC(SC1,CL(YA,YB)) Couples coordinate YB in the current chan-
nel to coordinate YA from channel 1.
SCC(SC1,CL(1,1,2,2)) Couples the coordinates with logical num-
bers 1 and 2 in the current channel to the
coordinates with logical numbers 1 and 2
from channel 1.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 4-123
and Controls
Effect
Sets the current program zero point (based on the current program coor-
dinate system and the active zero point) to the corresponding program-
med value without triggering axis movements.
Then the new position values are displayed automatically.
Programming
Syntax:
SetPos(<Coordinates>) Set the program zero point for the axes
programmed under <Coordinates>.
SetPos Cancel all offsets triggered by SetPos.
Abbreviation: SPS(..)
where:
<Coordinates> Set the axis values to the given coordinates. The given
coordinates are to be separated by commas (e.g.:
(X0,Y0)).
Example:
Effect
The Shift function is one of the input tools.
The control shifts a programmed contour parallel to the axes of the pro-
gram coordinate system.
. Shift is an input tool; as a result, it does not change the current pro-
gram coordinate system. An input tool merely provides another in-
put method for the program coordinates.
CAUTION
Incorrect programming may cause damage to the workpiece and
the machine!
Shift is influenced by Mirror, Scale and Rotate, i.e. the coordinates
of the new contour zero point which were programmed in the Shift
block will also be mirrored, scaled or rotated
Programming
Syntax:
Shift(<Coordinates>) Contour shift ON.
Shift(0) or Contour shift OFF.
Shift()
Abbreviation: SHT(..)
where:
<Coordinates> Program coordinates of the shifted contour-zero point.
If there are several coordinates, they are to be
separated by commas (e.g.: SHT(X5,Y2)).
Example:
N10 SHT(X10,Y10,Z50) New contour zero point at X10, Y10, Z50.
: Does not cause any axis traversing.
N100 G1 X...Y...Z... Traversing of axes with shift values taken
: into account.
N110 SHT(X20,Y20) New contour zero point at X10, Y10, Z50
: (Z shift is retained!). Does not cause any
: axis traversing.
N210 SHT() X...Y...Z... Switch off shift; the axes traverse to the
: programmed position.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 4-125
and Controls
Programming
Syntax:
SMin(S<Speed1>) Activates <Speed1 >as the lower limit of
the permitted speed range.
SMin(0)or Switches the lower limit off.
SMin() The current speed is no longer provided
a lower limit.
Abbreviation: SMN(..)
where:
<Speed1>: Lowest permitted speed. Value range: > 0.
Must be lower than <Speed2>.
<Speed2>: Highest permitted speed. Value range: > 0.
Must be higher than <Speed1>.
Example:
N50 X.. Y.. SMN(S1500) The spindle speed must be between
N60 X.. Y.. SMX(S2500) 1500 and 2500 rpm.
:
N90 X.. Y.. SMN() SMX() Switch off the lower and upper limits (=
speed limitation OFF).
Programming
Syntax:
SpAdmin(S<Num>=<Mode>{,S<Num>=<Mode>}...)
Abbreviation: SPA(...)
where:
<Num> Number of the spindle (spindle index).
Input value: 1 - 8. Integer.
<Mode:> 0 Release spindle
1: Reserve and transfer released spindle
Example:
N60 SPA(S1=0,S2=0) 1. and 2nd spindle.
:
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 4-127
and Controls
Programming
Syntax:
SpCoupleConfig Define group of coupled spind-
(CP=<Coupling>,MA=<Master>, les.
S<Sequence>=1{{,S<Sequence>=1}...})
SpCoupleConfig Cancel group of coupled spind-
(CP=<Coupling>,MA=0) les.
SpCoupleConfig Add/remove following spindles
(CP=<Coupling>, to the group of coupled spind-
S<Following>=<Mode> les.
{{,S<Following>=<Mode>}...})
Abbreviation: SPCC(...)
where:
<Coupling> Number of the group of coupled spindles.
Input value: 1 - 8. Integer.
<Master> Number of the master spindle (spindle index).
Input value: 1 - 8. Integer.
<Following> Number of the following spindle (spindle index).
Input value: 1 - 8. Integer.
<Mode> 0: Remove following spindle from <Coupling>.
1: Add following spindle to <Coupling>.
4-128 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Programming
Syntax:
SpCoupleDist(S<Num>=<Lag>{,S<Num>=<Lag>}...)
Abbreviation: SPCD(...)
where:
<Num> Number of the following spindle (spindle index).
Input value: 1 - 8. Integer.
<Lag> Position lag between the master and the following spindle
(in degrees).
Value range: 0_ Position lag < 360_.
If another value is programmed, it is automatically con-
verted to the given interval.
Programming
Syntax:
SpCoupleErrWin(S<Num>=<Window>{,S<Num>=<Window>}...)
Abbreviation: SPCE(...)
where:
<Num> Number of the following spindle (spindle index).
Input value: 1 - 8. Integer.
<Window> Maximum permitted position deviation from the com-
mand value (in degrees).
Input range: 0 to 359.9999.
Programming
Syntax:
SpCouplePosOffs(S<Num>=<Displacement>{{,S<Num>=<Displa-
cement>}...}
{,POSVEL<Speed>)
Abbreviation: SPCP(...)
where:
<Num> Number of the following spindle (spindle index).
Input value: 1 - 8. Integer.
<Displacement> Absolute turning angle between the master and the
following spindle (in degrees).
Value range: -3600_ ... +3600_
<Speed> The relative speed between the master and the following
spindle at which the angular offset is to be retracted.
The unit and the default value depend on drive parameter
S-0-0222.
Once it is entered, <Speed> is stored internally until it is
modified by calling the function again.
Abbreviation: SPCP_WAIT(...)
where:
<Coupling> Number of the group of coupled spindles.
Input value: 1 - 8. Integer.
4-132 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Programming
Syntax:
SpCoupleSyncWin(S<Num>=<Window>{,S<Num>=<Window>}...)
Abbreviation: SPCS(...)
where:
<Num> Number of the following spindle (spindle index).
Input value: 1 - 8. Integer.
<Window> Maximum permitted position deviation from the com-
mand value (in degrees).
Input range: 0 to 20.
Abbreviation: SPC_WAIT(...)
where:
<Coupling> Number of the group of coupled spindles.
Input value: 1 - 8. Integer.
4-134 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Programming
Syntax:
SPG<Group>(<Numbers>) Specifies which spindles are to be
gathered together as a spindle group
in the current channel.
SPG<Group>(0) Restores the setting according to
MP 1040 00002 in the current chan-
nel for the corresponding spindle
group.
SPG<Group>(-1) Cancels the corresponding spindle
group in the current channel.
SPGALL(0) Restores the settings according to
MP 1040 00002 in the current chan-
nel for all the spindle groups.
where:
<Group> Number of the spindle group.
Input value: 1 - 4. Integer.
<Numbers> Numbers (separated by commas) of all the spindles
(spindle index) that are to be assigned to the correspon-
ding spindle group.
Input value: 1 - 8. Integer.
Effect
Switches a spindle that is entered
D as a spindle/C-axis in MP 1001 00001 (Drive function type) and
D as a SERCOS spindle in MP 1040 00001 (Selection of spindle type)
to C-axis mode. In terms of machining, this turns a spindle into an asyn-
chronous axis.
It appears in the display as an asynchronous axis that is at first located
on any position between 0 and 359.9999 degrees.
. For detailed information about the Axis transfer function, see the
Description of Functions.
Programming
Syntax:
SpindleToAxis(<PAN> | <PAI>{,<PAN> | <PAI>}...)
Abbreviation: STA(..)
where:
<PAN> Physical axis name.
Specifies the spindle that is to be switched to C-axis
mode.
<PAI> Physical axis index.
Same effect as <PAN>.
Example:
:
N030 STA(CH) The physical axis CH (i.e. the spindle with
: the name CH during axis operation) is swit-
ched over to an asynchronous axis.
4-136 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Effect
The IndraMotion MTX supports the following spline types:
D Spline type 0: Spline with coefficient programming
(polynomial coefficients of CAD/CAM system)
D Spline-type 1: C1-continuous cubic splines with support point pro-
gramming
(tangential transitions at the support points)
D Spline-type 2: C2-continuous cubic splines with support point pro-
gramming
(continuous-curvature transitions at the support points)
D Spline-type3: B-spline with coefficient programming
(curve shape near the support points)
The desired spline type is selected and initialized using function Spline-
Def (SDF). Then spline programming can be activated with function G6.
Programming
Syntax:
SplineDef(<ID>,{<Members>}) Initialize spline type
Abbreviation: SDF(..)
where:
<ID>: Whole number (maximum of 4 digits) for the spline va-
riant:
Spline type Position
1000s 100s 10s 1s
Spline type Parameter Tangent cal- Spline
0...3 settings culation degrees
0: none 0: none 1...5
1: equidistant 1: Bessel
2: chordal 2: Akima
3: centripetal 3: Sehnen
Spline type 0 0 0 0 1...5
Spline type 1 1 1...3 0...3 1...5
Spline type 2 2 1...3 0...3 1...5
Spline type 3 3 1...3 0 1...5
Examples:
N10 SplineDef(5) Initialize spline type 0 with spline de-
: gree 5.
N20 SplineDef(2203,X,Y,Z) Initialize spline type 2 with spline de-
: gree 3 and chordal parameters. Coor-
dinates X, Y and Z participate.
N30 SplineDef(3103,x,y,z,O) Initialize spline type 3 with spline de-
: gree 3 and equidistant parameters.
Coordinates x, y and z, as well as the
orientation coordinates, participate.
4-138 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Effect
Divides programmed movement blocks into several partial paths if they
exceed a certain length.
Programming
Syntax:
Split({<Mode>}{,<Part length>})
Abbreviation: SPLIT(...)
where:
<Mode> 0: Function has no effect.
1: Function acts modally.
2: Function acts only in the programmed block.
Not programmed: Effect as for 0.
<Part length> For linear blocks: length of partial path.
For circular blocks: length of arc.
Programming unit as for the axis coordinates.
If <Part length> is not programmed:
the effective <Part length> roughly corresponds to the
maximum path that can be traversed in 2 subsequent in-
terpolation cycles, depending on the current feedrate.
Example:
:
N20 Split(2,10) X100 Blockwise effective path split for N20 ON.
: The traversing movement in N20 is split into
: partial paths, each with a length of 10 mm.
N120 Split(1) Modally effective path split starting at N120
: ON. Starting at N120, traversing movements
: are split into partial paths that can be traver-
: sed in approx. 2 interpolator cycles.
N220 Split(1,3.0) Modally effective path split starting at N220
: ON. The traversing movements starting at
: N220 are split into partial paths, each with a
length of 3 mm.
N320 Split() Programmable path split OFF.
:
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 4-139
and Controls
Abbreviation: SPM(...)
where:
<Num> Number of the spindle (spindle index).
Input value: 1 - 8. Integer.
<Mode:> 0 Speed mode
1: Position mode
Example:
N60 SPM(S1=1,S2=1) 1. and 2nd spindle to position mode.
:
4-140 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Programming
Syntax:
StatToolOri({<j>} {,{<J>} {,<y>}})
Abbreviation: STO(..)
where:
<j>,<J>,<y> Absolute Euler angle in degrees.
AC/IC programming is permitted.
Value range:
0_ j < 360_; 0_ J 180_; 0_ y 360_.
Values outside this range are automatically con-
verted into the corresponding interval.
Special features and restrictions:
D The parameters of static tool orientation are set using STO and acti-
vated by G47 (see page 3-44).
D If G47 is already active when STO is executed, the change to the tool
orientation is effective immediately.
D If coordinate designations were not assigned to all 3 tool length cor-
rections L1, L2 and L3 using G47(...) or G78, the control takes only the
assigned coordinates during tool orientation and generates a war-
ning.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 4-141
and Controls
Effect
Linear traveling motion in tool coordinate system TCS, also during active
axis transformation 2.
This concerns a local relative dimension programming, i.e. the program-
med position specification is interpreted incrementally, regardlessly of
G90/G91.
Programming
Syntax:
TCM({<xVal>},{<yVal>},{<zVal>})
(alternative: TcsMove(,,))
where:
<xVal>, <yVal>, <zVal> Values to be moved incrementally, related to
the tool coordinate system TCS
Example:
TCM (,,-100) ;immerse 100 [mm] in direction of the tool
TCM (,,0.200) ;withdraw 200 [mm] in direction of the tool
4-142 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Effect
Guides a rotary or endless axis along the programmed path in the active
plane with an adjustable angle. In this way, a tool can move at any time
during application with a required positioning angle to the programmed
path.
In order to rotate the tool axis to the corresponding required positioning
angle, the function takes any existing tool symmetry into account in the
case of tools with multiple tool edges. Furthermore, the control can auto-
matically insert an intermediate block that rotates the tool axis by the re-
quired angle if there is a knee in the contour at the block transition.
D The calculation for the required rotation of the tool axis for the given
positioning angle in a circular path occurs in the interpolator clock
pulse. Consequently, the tool axis keeps turning by the respective po-
sitioning angle calculated with each interpolator clock pulse in the
case of such contour sections.
Programming
Syntax:
TangTool{({TAX{=}<Axis>} Tangential tool guidance ON.
{,SYM{=}<s>}{,ANG{=}<a>}
{,IA{=}<ada>}{,PLC{=}<p>})}
TangTool() or Tangential tool guidance OFF.
TangTool(0)
Abbreviation: TTL(..)
where:
<Axis>: Designation of the axis on which the function Tangential tool
guidance is to apply.
A logical or physical axis name or a logical axis number are
permitted.
If this is not programmed, MP 7050 00210 is effective.
<s>: Tool symmetry (generally tool edges).
Input value: Integer, not equal to 0.
A tool with symmetry value <s> attains a technologically
identical position after a rotation of 360 degrees / <s> .
Examples: Rectangle tool: <s> = 2; square tool: <s> = 4.
1: Asymmetric tool or only one tool edge exists.
>0: Symmetric tool having several, equally spaced tool
edges.
If there is a knee in the contour, the tool is rotated
just enough for the nearest tool edge to be posi-
tioned at the positioning angle with the contour.
<0: In the case of a change of direction(180-degree
knee) the tool is not rotated, regardless of the posi-
tioning angle. Otherwise, the same as for >0.
If this is not programmed, MP 7050 00220 is effective.
<a>: Positioning angle. Value range: -180 to +180 degrees.
This indicates the angular difference between the path and
the default tool edge direction.
If this is not programmed, MP 7050 00250 is effective. This
is used to specify whether the current angle of the tool axis of
rotation is to be used as a positioning angle or if the value
from MP 7050 002540 is to be used.
<ada>: Adaptation angle. Value range: 0 to 180 degrees.
This specifies from how many degrees upwards of a contour
knee angle between two blocks an intermediate block is in-
serted to rotate the tool axis.
If the angle at the contour knee is less than <ada>, no sepa-
rate block is inserted to rotate the tool axis. Instead, at the
start of the next block, the tool jumps to its new position.
If this is not programmed, MP 7050 00230 is effective.
4-144 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Examples:
TTL Tangential tool guidance is
: activated with the corresponding
: machine parameter values for
: the axis entered in
: MP 7050 00210.
TTL(TAX=C,SYM1,ANG90,IA20,PLC0) Programming with logical axis
: name.
TTL(TAX3,SYM1,ANG90,IA20,PLC0) Programming with logical axis
: number.
TTL(TAX[NAME$],SYM1,ANG90,IA20) Programming with CPL-variable.
:
Effect
. Works together with functions Punch (see page 4-110) and Nib-
ble (see page 4-76).
where:
<s>: Tool symmetry (generally tool edges).
Input value: Integer, greater than 0.
A tool with symmetry value <s> attains a technologically
identical position after a rotation of 360 degrees / <s> .
Examples: Rectangle tool: <s> = 2; square tool: <s> = 4.
1: Asymmetric tool or only one tool edge exists.
>1: Symmetric tool having several, equally spaced tool
edges.
If SYM is not programmed: effect as for SYM1.
<a>: Positioning angle to programmed path.
Range of values: -180 to +180 degrees.
0: Tool axis is positioned at an angle of 0 degrees to the pro-
grammed path.
If ANG is not programmed: Effect as for ANG0.
Example:
D G90 is active (absolute dimension programming)
D active plane: X/Y
4-146 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
:
N10 TangToolOri(1) Tangential tool orientation ON; effect as
for SYN1 and ANG0.
N20 G1 G91 X10 Y10 No orientation of the C-axis yet because
punching/nibbling is switched off.
N30 X10 Y10 Punch(1) Punching ON. C-axis rotates to 45_.
N40 Y-10 C-axis rotates to -90_. After modulo cal-
culation: C=270_.
N50 Punch(0) Punching OFF.
N60 LEN=30 Nibble(1) Nibbling ON.
Desired block segment lengths: 30 mm.
N70 G2 X114.6 I57.3 J0 Semicircle with 180 mm length of arc.
The block is divided into 6 block seg-
ments, each with an arc length of 30 mm.
N80 TTO() Tangential tool orientation OFF.
:
Y C=0_
(N70: 3rd partial path)
C=-30_=330_
(N70: 4th partial path)
C=30_ C=300_
C=45_ (N70: 2nd partial path) (N70: 5th
(N30) partial path)
C=0_
C=60_
(N20)
(N70: 1st partial path)
C=-90_=270_ C=270_
(N40) (N70: 6th partial
C=90_ path)
(N70. Automatically generated
intermediate block at start of : Actual traversing motion
block to rotate the tool)
: Programmed path
: Tool position
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 4-147
and Controls
Effect
D Specifies the spindles to which G63 is to refer.
TappSp is in effect until it is reprogrammed. It is still in effect even
after a control reset!
D If TappSp is not programmed, G63 will always refer to the 1st
spindle.
Programming
Syntax:
TappSp(CAX<i>) Activate tapping for individual spind-
les using spindle number(s).
TappSp(GRP<j>) Activate tapping for all spindles using
a spindle group.
TappSp(GRP<j>{,CAX<i>}) Activate tapping for all spindles using
a spindle group as well as for additio-
nal spindles using spindle number(s).
Abbreviation: TSP(..)
where:
<i> Number of the Spindle to which G63 refers.
Range of values: 1 ... n, where n stands for the highest
spindle number in the system (max. 8).Whole number.
Several spindles are programmed by several CAX<i>, sepa-
rated by commas.
<i> Number of the Spindle group to which G63 refers.
Range of values: 1 ... n, where n stands for the highest
spindle group number (max. 4).Whole number.
Example:
N20 TappSp(CAX2) Select the spindle with a spindle
: number of 2 for G63.
N120 TappSp(CAX2,CAX4,CAX7) Select the spindles with spindle
: numbers of 2, 4 and 7 for G63.
N220 TappSp(GRP2) Select the spindle group with a
: spindle number of 2 for G63.
N320 TappSp(GRP3,CAX4) Select the spindle group with a
: number of 3 plus the spindle with a
spindle number of 4 for G63.
4-148 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Effect
When 6-axis-transformation is active, this generates a tool coordinate
system TCSp that can be offset and/or rotated compared to the last cur-
rent TCS.
The coordinate values given for TCSp are converted within the NC and
stored in the tool correction memory.
The generated TCSp can be cleared by switching off the function. In this
process, the last current TCS is reactivated.
Programming
1. If not already executed, activate axis transformation type 3333301
(see function Coord(...), page 4-30).
2. Use the syntax shown below.
Syntax:
TcsDef({<Position>},{<Orientation>}) Define and activate the
position and orientation of
TCSp. For detailed syn-
tax, see below.
TcsDef() or Delete TCSp and reacti-
TcsDef(0) vate the last current TCS.
Abbreviation: TCS(...)
Detailed syntax:
TcsDef({<x><px>},{<y><py>},{<z><pz>},{<phi><j>},{<theta><J>},{<psi><y>} or
TcsDef({<x><px>},{<y><py>},{<z><pz>},{O(<j>,<J>,<y>)} or
TcsDef({<x><px>},{<y><py>},{<z><pz>},{Ox(<o11>,<o21>,<o31>) Oy(<o12>,<o22>,<o32>)} or
TcsDef({<x><px>},{<y><py>},{<z><pz>},{Ox(<o11>,<o21>,<o31>) Oz(<o13>,<o23>,<o33>)} or
TcsDef({<x><px>},{<y><py>},{<z><pz>},{Oy(<o12>,<o22>,<o32>) Oz(<o13>,<o23>,<o33>)} or
Effect
Individual partial areas of G33 can be temporarily adjusted by program-
ming ThreadSet.
In this case, the control superimposes the static values stored in the ma-
chine parameters.
ThreadSet allows
D the adjustment of the dynamics and retraction movement
D switching of the spindle operating mode (speed control, position con-
trol)
D setting of a signal on the channel interface (configurable within the
Active function signals using machine parameters).
Abbreviation: TST(..)
where:
<PA-value> Retract path (incremental in mm) towards the primary
axis of the currently selected plane (G17, G18, G19,
G20).
The value must always be programmed; however, it is
only relevant for longitudinal and tapered threads.
<SA-value> Retract path (incremental in mm) towards the secondary
axis of the currently selected plane.
The value must always be programmed; however, it is
only relevant for transversal and tapered threads.
-1 -1 is an optional third parameter.
In this case, the retract data from MP 7050 00645 and
MP 7050 00650 will be active again.
4-152 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Effect
Trans offsets the active program coordinate system parallel to the
coordinate axes of the current workpiece coordinate system.
ATrans permits additional parallel and always additive offsets of the
program coordinate system.
In this way, a parts program can execute the programmed contour anyw-
here within the workpiece coordinate system without modifications. In-
put tools that are based on the active program coordinate system (e.g.
programmed contour offset, scaling, mirroring, rotation) are indepen-
dent of a program coordinate offset and therefore need not be adapted.
+ZW +YW
+ZP2 +YP2
+ZP1
+YP1 ATrans
Pn
P2
Trans
ATrans +XP2
W
P1
+XP1
+XW
Example:
N10 TRS(X10,Y10,Z50) Set the zero point of the program coordinate
: system to position X10 Y10 Z50 of the current
: workpiece coordinate system.
:
N50 ATR(X20,Y10) The zero point of the resulting program coordi-
: nate system lies on position X30 Y20 Z50, ba-
: sed on the original workpiece coordinate sy-
: stem.
N80 ATR() Additive program coordinate offset OFF. The
: zero point of the program coordinate system
: lies on position X10 Y10 Z50, based on the
: original workpiece coordinate system.
:
N180 TRS() All program coordinate offsets OFF.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 4-155
and Controls
Effect
Sets the axis position of virtual synchronous axes in the current channel.
Programming
Syntax:
VirtAxisPos(<Axis 1><Value>,<Axis n><Value>, ...)
Abbreviation: VAP(...)
where:
<Axis x> Address of the virtual axis.
<Value> Position information for <Axis x>.
Example:
VAP(VX150) Position axis VX to 150mm.
Effect
Transfers a synchronous axis to the calling channel. This turns an asyn-
chronous axis into a synchronous axis.
The axis can then be programmed in the current channel using its physi-
cal or logical axis name.
. For detailed information about the Axis transfer function, see the
Description of Functions.
Programming
Syntax:
WaitAxis(<PAN> | <PAI>,{<LAN>}{,<PAN> | <PAI>,{<LAN>}}...)
Abbreviation: WAX(..)
where:
<PAN> Physical axis name.
Specifies the axis that is to be transferred to the current
channel.
<PAI> Physical axis index.
Same effect as <PAN>.
<LAN> Logical axis name.
If this is programmed, the axis to be integrated into the
current channel receives the logical name <LAN>.
<LAN> must have been defined in MP 7010 00010 (Lo-
gical axis designation) or MP 7010 00020 (Optional
axis designation).
Example:
N030 WAX(YP,,ZP,Z) If necessary, block preparation waits for phy-
: sical axes YP and ZP to come to a standstill.
Then the axes are transferred to the calling
channel.
While YP is also addressed as YP in the cal-
ling channel, ZP receives address Z in the
calling channel.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 4-157
and Controls
Effect
Writes the programmed SERCOS drive parameter (S-x-xxxx, P-x-xxxx)
to one or more drives.
For product-specific SERCOS drive parameters (P-x-xxxx), complete
value lists with a maximum of 16 values or ID lists with a maximum of 8 ID
numbers can also be written.
Prerequisites:
D The parameter must be valid and editable in SERCOS Phase 4.
D The parameter value lies within the permitted range.
D The drive is connected to the control using the SERCOS interface;
cyclic communication between the control and the drive is running.
DANGER
Improper or random modifications of SERCOS drive parameters
can lead to damage to the workpiece and/or machine and to
dangerous and unpredictable machine reactions.
Information about the SERCOS drive parameters available in the
drive is required for proper use. For this, consult your drive
documentation.
Syntax:
WriteId(<Par>,<SA1><W1>{,<SAn><Wn>}...)
Abbreviation: WID(...)
where:
<Par> Default parameter (S-x-xxxx) or
product-specific parameter (P-x-xxxx).
<SA1>...<SAn> Logical axis address of the SERCOS drive.
<W1>...<Wn> Value that is to be written to<Par>.
Example:
N100 WID(P-0-0500,X10,Y20,Z30) Write P-0-0500:
in the drive of the X-axis: 10
in the drive of the Y-axis: 20
in the drive of the Z-axis: 30
4-158 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Syntax:
WriteId(<Par> DRIVE(<AA1>,<W1>{,<AAn>,<Wn>}...))
Abbreviation: WID(...)
where:
<Par> Default parameter (S-x-xxxx) or
product-specific parameter (P-x-xxxx).
<AA1>...<AAn> Physical axis index or physical axis name of the SER-
COS drive. A maximum of 8 drives may be defined
using DRIVE(...) syntax.
<W1>...<Wn> Value that is to be written to<Par>.
Syntax:
WriteId(<Par> LIST(<A1>,<W1>{,<Wn>}...))
Abbreviation: WID(...)
where:
<Par> Product-specific parameter (P-x-xxxx) containing a
value list.
(Default parameters (S-x-xxxx) are not permitted!)
<A1>...<An> Physical axis index or physical axis name of the SER-
COS drive.
<W1>...<Wn> A maximum of 16 values that are to be written to
<Par>.
Example:
N100 WID(P-0-0515 LIST(1,0.5,0.2) Write P-0-0515 in
drive 1 with 2 values
Syntax:
WriteId(<Par> ID_LIST(<A1>,<Id1>{,<Idn>}...))
Abbreviation: WID(...)
where:
<Par> Product-specific parameter (P-x-xxxx) containing an
ID list.
(Default parameters (S-x-xxxx) are not permitted!)
<A1>...<An> Physical axis index or physical axis name of the SER-
COS drive.
<Id1>...<Idn> A maximum of 8 ID numbers that are to be written to
<Par>.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 4-159
and Controls
Example:
N100 WID(P-0-0417 ID_LIST(X,S-0-47,S-0-51) Write P-0-0417 in
the drive of axis X
with 2 ID num-
bers.
Effect
Activates a zero offset table (ZO table). ZO tables are stored as XML files
in the file system of the control.
Programming
Syntax:
ZoTSel({<Path>}<Filename>)
Abbreviation: ZOS(..)
where:
<Path> Optional path information for the directory in which <File-
name> is stored.
If there is no information, the file will be searched in the /da-
tabase directory.
If <Filename> is not present there, the control uses the search
path for subroutines so that the search for <Filename> can
also be carried out in other directories.
<Filename> File name of the ZO table, incl. the file extension.
Tables with standard names (ZO<Number>.zot) can be
activated directly using the number, e.g.
ZoTSel(5) activates the table ZO5.zot.
. Please refer to the Operating Instructions for how to create and edit
ZO tables.
Example:
:
N030 ZOS(npvtab.zot) First searches for ZO table npvtab.zot in
: directory /database and then, if it is not
there, in the search path for subroutines.
The first ZO table with the name
npvtab.zot that is found is activated.
N130 ZOS(/mnt/np.zot) Searches and activates ZO table
: npvtab1.npv in directory /mnt. If it is not
found there, an error message appears.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-1
and Controls
5 CPL-Functions
Overview
Parts program
Program coordinate system: PCS Last programmed position: PCS
Probe value: PCSROBE
Block preparation
Calculation of workpiece coordinates
Program coordinate offset
Contour offset
Scaling
Tool coordinate system: WCS Probe value: PPOS
Interpolation
Tool coordinate system: WCS Interpolated workpiece position: WCS
Coordinate transformation
Basic tool coordinate system: BCS
Axis transformation 2
Local machine coordinate system: LCS LCS
Block execution
Zero offset
Machine coordinate system: MCS MCS
Axis transformation 1
Axis coordinate system: ACS Command values of system axes: A
CS
<Channel> optional:
Channel number; permitted only when <Selection
type> = 1.
If coordinates/axes are to be read by third-party
channels, and if they can be addressed using their in-
dex or name, the number of the channel to which the
coordinate/axis is currently assigned is entered in
<Channel>.
If no channel is entered, the coordinates/axes of the
current channel are accessed. If a system -axis is ad-
dressed (with name or index) and a channel is ent-
ered at the same time, an error message is issued,
even if variable ERRNO has been programmed.
ERRNO CPL variable that can be programmed in any position.
When ERRNO is programmed, no runtime error is is-
sued; the return values are:
0 : Access OK
-1 : Parameter error
-2 : Coordinate/axis does not exist.
-3 : Invalid coordinate/axis in channel.
-4 : Axis is not a pseudocoordinate.
-5 : Channel does not exist.
-6 : Function may be called only in an autonomous
channel.
-7 : Data cannot be read.
5-6 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
PCS
Supplies the last programmed value for a coordinate.
Syntax:
PCS(<Coordinate> [,<Selection type>])
(For the parameters, see page 5-4;
for programming ERRNO, see page 2-56)
Examples:
PCS(X,ERRNO)
PCS(X,1)
WCS
Supplies the current workpiece position, without online compensation
values, for a coordinate.
Syntax:
WCS(<Coordinate> [,<Selection type>[,<Channel>]])
(For the parameters, see page 5-4;
for programming ERRNO, see page 2-56)
Examples:
WCS(X,ERRNO)
WCS(X,1)
WCS(X,1,1)
30 WAIT
110 YPOS = WCS(Y) YPOS is assigned the currently inter-
polated workpiece position of the Y-
coordinate of the current channel
120 XPOS = WCS(1) XPOS is assigned the currently inter-
polated workpiece position of the 1st
coordinate of the current channel.
5-8 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
MCS
Supplies the current machine position (MCS) for a machine coordinate
without straightness- and angle error compensation.
Coordinates on other channels can also be accessed.
Syntax:
MCS(<Coordinate> [,<Selection type>[,<Channel>]])
(For the parameters, see page 5-4;
for programming ERRNO, see page 2-56)
Examples:
MCS(X,ERRNO)
MCS(X,1)
MCS(X,1,1)
ACS
Supplies the current command position of an axis.
Axes can be addressed using their channel axis name or their channel
axis index.
Alternatively, axes can also be addressed using their system -axis
name or their system axis index.
Syntax:
ACS(<Axis>[,<Selection type>[,<Channel>]])
(For the parameters, see page 5-4;
for programming ERRNO, see page 2-56)
Examples:
ACS(X,ERRNO)
ACS(X,1)
ACS(X,1,1)
SPOS
Supplies the current command position of an axis based on the axis
coordinate system.
All system -axes can be addressed using their system -axis name or
their system -axis index.
Syntax:
SPOS(<Axis> )
Example:
Channels according to sample configuration on page 5-3.
30 POS1=SPOS(1) Variable POS1 is assigned the current com-
: mand axis value of the 1st system axis (X-
axis in channel 1).
50 POS5=SPOS(Y2) Variable POS5 is assigned the current com-
: mand axis value of the 5th system axis
(Y2-axis in channel 2).
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-11
and Controls
APOS
Supplies the current command position of an axis based on the axis
coordinate system.
All system -axes can be addressed using their system -axis name or
their system -axis index.
Syntax:
APOS(<Axis>)
<Axis> Index or name of a system axis
Programming an unconfigured axis leads to a runtime
error.
ERRNO cannot be programmed.
Example:
Channels according to sample configuration on page 5-3.
30 AKT4=APOS(4) Variable AKT4 is assigned the current actual
: axis value of the 4th system axis (X2-axis in
channel 2).
50 AKT8=APOS(A) Variable AKT8 is assigned the current actual
: axis value of the 8th system axis (A-axis in
channel 3).
5-12 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
PCSPROBE
If a switching measuring probe is connected to the axes of a channel
and a measurement is launched, PCSPROBE can read the measured
value for any one coordinate.
The prerequisite for PCSPROBE is that the probe must be latched by all
the axes of the channel. The latched axis values are converted to pro-
gram coordinates using the transformation chain that was activated
last. PCSPROBE supplies the value for a coordinate.
Syntax:
PCSPROBE (<Coordinate> [,<Selection type>])
(For the parameters, see page 5-4;
for programming ERRNO, see page 2-56)
Example:
Channel 1 according to sample configuration on page 5-3:
N10 G75 X100 Y100 Z50
20 IF SD(9)=1 THEN
N30 (MSG, probe has not been deflected!)
40 GOTO .FEHLER
50 ELSE
60 ZMESS=PCSPROBE(3,ERRNO) Variable ZMESS is assigned the value
61 IF ERRNO <>0 THEN of the 3rd coordinate of the measured
62 GOTO .Fehler position.
63 ENDIF
70 ENDIF
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-13
and Controls
PROBE
Supplies axis values that refer to the ASC axis coordinate system.
Syntax:
PROBE (<Axis> [,<Selection type>])
(For the parameters, see page 5-4; ERRNO cannot be programmed)
Example:
Channel 2 according to sample configuration on page 5-3:
N70 G75 Y2 250
80 IF SD(9)=1 THEN
N90 (MSG, probe has not been deflected!)
100 GOTO .FEHLER
110 ELSE
120 Y2MESS=PROBE(2) Variable Y2MESS is assigned to the measu-
red actual position of the 2nd channel axis
(in this case, the Y2-axis of channel-2).
130 ENDIF
5-14 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
PPOS
Supplies the current actual axis position of a synchronous axis in the
switch point of the probe.
Syntax:
PPOS(<Axis> [,<Selection type>])
(For the parameters, see page 5-4; ERRNO cannot be programmed)
Example:
Channel 3 according to sample configuration on page 5-3:
N10 G1 G75 A250 F500
20 IF SD(9)=1 THEN
N30 (MSG, probe has not been deflected!)
40 GOTO .FEHLER
50 ELSE
60 AMESS = PPOs(1,1) Variable AMESS is assigned the measured
value of the 1st channel axis of the channel.
70 ENDIF
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-15
and Controls
AXO
AXO supplies the current G92 offset for a coordinate at the time of block
preparation, i.e. the offset that was last activated at the time of program
interpretation is supplied.
Syntax:
AXO(<Coordinate> [,<Selection type>])
(For the parameters, see page 5-4; ERRNO cannot be programmed)
. AXO permits access to only the offset values of its own channel.
Since asynchronous axes do not have any G92 offset, AXO is not
permitted for asynchronous axes.
Example:
Channel 1 according to sample configuration on page 5-3:
N10 G1 G90 X100 F1000
N20 G92 X75 Y125
30 XD = AXO(X) XD is assigned the G92 offset of the X-coor-
dinate of the current channel that was acti-
vated last (XD=100-75=25)
40 YD = AXO(2,0) YD is assigned the G92- offset of the 2nd
system- axis that was activated last
(YD=200-125=75)
50 X2D = AXO(4,0) Runtime error because the 4th system axis
is assigned to channel 2.
5-16 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
COF
Supplies the last programmed contour shift of a coordinate.
Since the programmed contour shift acts only on the coordinates in the
current channel, selecting a nonexistent coordinate in the current chan-
nel results in an error message.
Compensation values are supplied in the active unit of the current chan-
nel, i.e. in Inch for G70 and in mm for G71. In the case of rotary axes /
rotatory spatial coordinates, the unit is always degrees.
Syntax:
COF(<Coordinate> [,<Selection type>])
(For the parameters, see page 5-4; ERRNO cannot be programmed)
Examples:
10 A=COF(3) Supplies the last-programmed contour shift of the
: coordinate with the 3rd coordinate index in the ac-
tive channel.
20 B=COF(X) Supplies the last-programmed contour -shift of the
: X-coordinate in the active channel.
30 C=COF(2.0) Supplies the last-programmed contour shift of the
: 2nd system axis in the active channel.
This access is permitted only if the system axis is
identical to the WCS coordinate.
100 C=COF(0) Runtime error because 0 is not a valid coordinate
: index.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-17
and Controls
DPC
Supplies the last-programmed parameter of the workpiece position
compensation (BCR) of a coordinate (offset values and turning angle).
Syntax:
DPC(<Coordinate> [,<Selection type>])
(For the parameters, see page 5-4; ERRNO cannot be programmed)
<Coordinate> Additional effect of the specifications:
1 to n or Name: Supplies the offset value
0 Supplies turning angle Phi.
Examples:
10 A=DPC(1) Supplies the last-programmed workpiece position
: compensation of the coordinate with the 1st coor-
dinate index in the channel.
15 B=DPC(X) Supplies the last-programmed workpiece position
: compensation of the X-axis/coordinate in the chan-
nel.
20 B=DPC(2) Supplies the last-programmed workpiece position
: compensation of the coordinate with the 2nd coor-
dinate index in the channel.
25 B=DPC(2,0) Supplies the last-programmed workpiece position
: compensation of the 2nd system axis in the active
channel.
30 WINKEL=DPC(0) Supplies the last-programmed turning angle Phi.
:
100 C=DPC(9) Runtime error because 9 is not a valid coordinate
: index if there are 8 axes in the system.
5-18 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Zero Offsets
ZOV ZeroOffsetValue
Supplies the sum of the last-programmed and thus effective ZO values
of a machine coordinate (axis) or, optionally, the effective value of a sin-
gle ZO page.
Syntax:
ZOV(<Axis selection>[,<ZO page>])
<Axis selection> Name of the machine coordinate (axis), programmed
in turned commas, or
index of the machine coordinate (axis); values = 1-8
<ZO page> Index of the ZO page; values = 1-5
Examples:
ZOV(X) Supplies the sum of all effective (last-programmed) ZOs
for machine coordinate (axis) X.
ZOV(2,3) Supplies the effective ZO of the 3rd ZO page for the 2nd
machine coordinate (axis).
ZOT ZeroOffsetTable
Read/write access to any XML zero offset table within the IndraMotion
MTX file system. Only single elements can be accessed. During writing,
incremental modifications can also be preset.
Syntax:
ZOT(<Column selection>,<ZO-Code>[,[<ZO-Page>][,[<Ta-
ble>][,<Unit>]]])
<Column selection> Name of the machine coordinate (axis), pro-
grammed in turned commas, or
column index within the table.
The following is possible during write access:
- overwriting the table value, or
- adding the value to the table value if
<Column selection> starts with a negative
symbol.
<ZO code> 54: 1st zero offset
55: 2. Zero offset
56: 3. Zero offset
57: 4. Zero offset
58: 5. Zero offset
59: 6. Zero offset
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-19
and Controls
Zero Offsets
Examples:
ZOT(X,54) Access to the G54 offset of axis / machine
coordinate X in the last-activated ZO table of
the channel.
ZOT(2,55,2) Access to the G55.2 offset of the 2nd entered
axis / machine coordinate in the last-activated
ZO table of the channel.
ZOT(3,57,,V1) Access to the G57 offset of the 3rd entered
axis / machine coordinate in ZO table V1.zot.
ZOT(Z,58,4,21,1) Inch access to the G58.4 offset of axis / ma-
chine coordinate Z in ZO table ZO21.zot.
ZOT(Y,59,5,/mnt/esmuser/de/HHGENIUS,MM)
Metric access to the G59.5 offset of axis / ma-
chine coordinate Y in table HHGENIUS in
directory /mnt/esmuser/de.
ZOTCR
Creates an XML zero offset table without correction blocks within the file
system of MTX.
Syntax:
ZOTCR(<Table>,<Channel/template> )
<Table> : Name of XML table if necessary with path detail.
<channel/template> : Channel number or name of XML template table if
necessary with path detail.
5-20 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Zero Offsets
Examples:
ZOTCR(/usr/user/zot.tst,1)
Creating a new table /usr/user/zot.tst with
columns for each axis of the first channel.
ZOCINS
Inserting a new axis into an XML zero offset table before an available
column. The new axis contains so much correction blocks like the 1.axis
of table. The values will be preassigned with 0.0.
Syntax:
ZOCINS(<Table>,<Position>,<AxisName>[,<AxisType>])
<Table> : Name of XML table if necessary with path detail.
<Position> : Axis name or column index of insert position
<AxisName> : Axis name of new table column
<AxisType> : optional axis type of the new axis
0 : Linear axis (default value)
1 : Rotary axis
ERRNO CPL variable. If the CPL variable ERRNO is entered
on any location in the parameter list, no runtime error
is created. The error is supplied via a corresponding
value of variables. The following return values are
possible
0 : Access OK
-1 : Parameter error
-13 : Data could not be written.
-15 : XML table not found
-16 : Invalid file extension
-17 : Invalid table type
-18 : Insert position faulty
-19 : Maximum axis number exceeded
If the CPL variable ERRNO is not indicated, a runtime
error occurs during access error.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-21
and Controls
Zero Offsets
Example:
ZOCINS(/usr/user/zot.tst,X,Y)
Inserting a new axis into table /usr/user/
zot.tst with column designation Y before
table column with the designation X.
ZOCDEL
Deleting an axis in an XML zero offset table.
Syntax:
ZOCDEL(<Table>,<Position>)
<Table> : Name of XML table if necessary with path detail.
<Position> : Axis name or column index of the axis to delete
ERRNO CPL variable. If the CPL variable ERRNO is entered
on any location in the parameter list, no runtime error
is created. The error is supplied via a corresponding
value of variables. The following return values are
possible
0 : Access OK
-1 : Parameter error
-13 : Data could not be written.
-15 : XML table not found
-16 : Invalid file extension
-17 : Invalid table type
-18 : Insert position faulty
If the CPL variable ERRNO is not indicated, a runtime
error occurs during access error.
Example:
ZOCDEL(/usr/user/zot.tst,X)
Deleting the axis with column designation
X in the table /usr/user/zot.tst.
5-22 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Tool Compensation
TCV ToolCorrectionValue
Supplies the last-programmed tool compensation values, whether as a
sum (D-correction + external correction memory) or as a single value.
Syntax:
TCV(<Value selection>[,<Correction selection>])
<Value selection> Number of the D-/ED-correction:
0: last activated D-/ED-
corrections
1 or L1: L1-correction length
2 or L2: L2-correction length
3 or L3: L3-correction length
4 or RAD: Tool / tool edge radius
5 or ORI: Tool edge position
6 or PHI: Euler angle
(only ED-correction)
7 or THE: Euler angle
(only ED-correction)
8 or PSI: Euler angle
(only ED-correction)
Examples:
TCV(0,D) Supplies the last programmed D correction.
TCV(L1) Reading of the sum of L1-values of the last-pro-
grammed D- and ED-corrections.
TCV(4,1) Reading of the tool radius of the last-programmed
D-correction
TCV(2,E) Reading of the L2-tool length of the last-program-
med ED-correction
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-23
and Controls
Tool Compensation
DCT D-CorrectionTable
Read and write access to tool compensation values in any D-correction
tables as well as to external correction values (ED-correction). During
writing, incremental modifications can also be preset.
Syntax:
DCT(<Value selection>,<Data block>[,[<Table>][,<Unit>]])
<Value selection> Number of the D-/ED-correction:
1 or L1: L1-correction length
2 or L2: L2-correction length
3 or L3: L3-correction length
4 or RAD: Tool / tool edge radius
5 or ORI: Tool edge position
6 or PHI: Euler angle (only ED-correction)
7 or THE: Euler angle (only ED-correction)
8 or PSI: Euler angle (only ED-correction)
The value can be read or written.
The following is possible during write access:
- overwriting the table value, or
- adding the value to the table value if
<Value selection> starts with a negative symbol.
Incremental writing is not possible for the tool edge
position (5 or ORI).
<Data block> 1-99: for a D-correction
1..16: for an ED-correction
<Table> Name of the D-correction table;
if required, with absolute or incremental path informa-
tion (without table suffix .dct). If there is no path infor-
mation, a search within the configured search path is
carried out.
For tables with default names such as DC1, DC2, etc.,
only the value of the number need be provided.
without <Table>, the last-selected D-correction table
is accessed.
0: Access to ED-correction.
<Unit> 0 or MM: mm (default)
1 or INCH: inches
During write access, the assigned value is interpreted
in the unit provided. During read access, the value is
converted into the unit provided.
Examples:
DCT(1,10,K4) Access to the L1 correction value of data block
10 in D correction table K4.
DCT(RAD,7) Incremental writing to the tool radius of data block
7 of the last-activated table.
DCT(L2,16,0,IN Inch access to the L2 correction of data block 16
CH) of the external tool compensation.
5-24 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Tool Database
DBTAB
This can read a complete data block or a substructure of a tool database
table into a CPL variable or write from the variable back to the data
block.
Syntax:
DBTAB(<DbTable>,<Key1>,<Key2>[,<ResVar>])
<DbTable> Name of the database table with substructures
(Xpath string). A . or / can be used as a separator
between structure components.
<Key2> Database key 1
<Key2> Database key 2
<ResVar> Variable of type Integer.
If<ResVar> is entered, a runtime error does not result
in case of an access error. The following return values
are possible:
0: Access OK
1: Error during access
2: Not enough memory
3: Invalid variable type
If <ResVar> is not entered, a runtime error results in
case of an access error.
Example:
10 SV.A=DBTAB(DBT1.Rec,1,1)
20 D!=DBTAB(DBT1.Rec.UD.Ed.Geo.L1,1,1)
30 SV.A.UD.Ed.Geo.L1 = 10
40 DBTAB(DBT1.Rec,1,1) = SV.A
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-25
and Controls
Tool Database
DBSEA
Searches for a data block in a tool database table.
Syntax:
DBSEA(<DbTab>,<Key1>,<Key2>,<SeachCond>,
<SeachRes>[,<ResVar>])
<DbTab> Name of the database table.
<Key2> Start key 1
<Key2> Start key 2
<SearchCond> Search condition as a string (see below)
<SearchRes> Search result, variable of type Integer.
0: No data block that fits the search condition
found
1: Data block that fits the search condition found.
<ResVar>: Variable of type Integer.
If<ResVar> is entered, a runtime error does not result
in case of an access error. The following return values
are possible:
0: Access OK
1: Error during access
2: Not enough memory
3: Invalid variable type
4: Search condition faulty
If <ResVar> is not entered, a runtime error results in
case of an access error.
Tool Database
Boundary conditions:
D Only predefined tag names may be used
D Only queries regarding equality are possible.
Example:
K1=1
IKQ2=3
BQ2=0x1:0x1
The CPL function returns the first data block that satisfies the search
condition. In this case, variable <SearchRes> returns a value of 1. The
search starts at the data block that is defined by the two start keys. If one
of the two start keys has a value of -1, the search starts at the first data
block of the database table.
Example:
10 SV.A.Hd=DBSEA(DBT1,-1,-1,K1=1,FOUND%)
20 WHILE FOUND%=1 DO
30 SV.A.Hd=DBSEA(DBT1,SV.A.Hd.K1,SV.A.Hd.K2,K1=1,FOUND%)
40 END
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-27
and Controls
PMV PlaceMentValue
Supplies the sum of the last-programmed, and thus effective, place-
ment values for a coordinate. Optionally, the effective value of an indivi-
dual placement page can be read.
Syntax:
PMV(<Coord.selection>[,<Pl.-page>])
<Coord.selection> Index of the coordinate (1-6) or fixed identifier
X, Y, Z, PHI, THE, PSI for WCS coordi-
nates.
<Pl. page> Index of the placement page (1-5)
Examples:
PMV(Y) Supplies the sum of all effective (last-programmed)
placements for coordinate Y. Due to the possible rota-
tions, not only the sum of the individual pages is invol-
ved, but also the resulting offset in the Y-direction of
the basic workpiece coordinate system.
PMV(4,4) Supplies Euler angle PHI of the active placement of the
4th page.
5-28 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
PMT PlaceMentTable
Read/write access to any XML placement table of IndraMotion MTX;
only individual elements may be accessed. During writing, incremental
modifications can also be preset.
Syntax:
PMT(<Coord.selection>,<Pl. code>[,[<Pl. page>][,[<Table>]
[,<Unit>]]])
<Coord.selection> Index of the coordinate (1-6) or fixed identifier
X, Y, Z, PHI, THE, PSI for WCS coordi-
nates.
The value can be read or written. The following
is possible during write access:
- overwriting the table value, or
- adding the value to the table value if
<Coord.selection> starts with a negative
symbol.
<Pl. code> 154: Placement 1
155: Placement 2
156: Placement 3
157: Placement 4
158: Placement 5
159: Placement 6
<Pl. page> Index of the placement page (1-5)
Default value: 1
<Table>: Name of the placement table; if required, with
absolute or incremental path information (table
suffix .pmt must not be included in the pro-
gramming). If there is no path information, a
search within the configured search path is car-
ried out.
For tables with default names such as PM1,
PM2, etc., only the value of the number need be
provided. If there is no table name, the last-acti-
vated table is accessed.
<Unit> 0 or MM: mm
1 or INCH: inches
For the 3 translatory coordinates, the assigned
value is interpreted in the unit provided for write
access; in the case of read access, the value is
converted into the unit provided.
Default value: mm
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-29
and Controls
Examples:
PMT(Z,155) Access to the G155 offset of coordinate Z in the
last-activated placement table of the channel.
PMT(5,157,3) Access to Euler angle of G157.3 in the last-acti-
vated placement table of the channel.
PMT(X,154,,P1) Access to the G154.1 offset of coordinate X in
placement table P1.
PMT(3,158,4,,1) Inch access to the G158.4 offset of coordinate Z
in the last-activated placement table of the chan-
nel.
PMT(Y,159,5,/mnt/esmuser/de/PL5,MM)
Metric access to the G159.5 offset of coordinate
Y in table PL5 in directory /mnt/esmuser/de.
5-30 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
XML Tables
XTAB
Read/write access to any XML table which can also be user-defined.
As opposed to the special functions for ZO, D-correction and placement
tables, this function also permits access to any substructures of a table
if a corresponding data type has been defined.
Syntax:
XTAB(<Table>,<Substructure>)
<Table> Name of the XML table; if necessary with path infor-
mation
<Substructure> Desired substructure, provided as an XPATH expres-
sion.
Example:
10 X!=XTAB(/database/PM1.pmt,/PMT/set[1]/G154/Corr/Trans/XWCS)
20 XTAB(/database/PM1.pmt,/PMT/set[1]/G154/Corr/Trans/XWCS)=X!+1.0
Increment the va-
lue in the table by
1.
XTABCR
Creates an XML table without data within the file system of MTX.
Syntax:
XTABCR(<Table>,<Typ>[,<Table template>])
<Table> : Name of XML table if necessary with path detail.
<Type> : Type of table (XML root tag)
<Table template> : Name of template XML table if necessary with
path detail. The indicated <type> must correspond
with the type of the <table template>.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-31
and Controls
XML Tables
DBMOVE
Conversion of a data record within a database table.
Syntax:
DBMOVE(<DbTab>,<SrcKey1>,<SrcKey2>,<DestKey1>,<Dest -
Key2>[,<Mode>])
<DbTab> : Root tag of XML table.
<SrcKey1> : 1. Key of source data record
<SrcKey2> : 2. Key of source data record
<DestKey1> : 1. Key of target data record
<DestKey2> : 2. Key of target data record
<Mode> : optional (default : 0)
0 : The content of the source data record is moved
into target- data record and the content of the
source data record is set to zero.
1 : The content of the source data record is copied to
target-data record and the content of the source
data record remains unchanged.
2 : The content of the source data record and the de
stination data record are reversed.
5-32 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
XML Tables
DBLOAD
Via DBLOAD, parts of a database table or a complete database table
from a file can be read into the database.
Syntax:
DBLOAD(<DbTab>,<Key1>,<Key2>,<FileName> )
<DbTab> : Root tag of XML table.
<Key1> : 1. Key of data record
<Key2> : 2. Key of data record
<FileName> : File name
ERRNO CPL variable. If the CPL variable ERRNO is entered
on any location in the parameter list, no runtime error
is created. The error is supplied via a corresponding
value of variables. The following return values are
possible:
0 : Access OK
-1 : Parameter error
-7 : Data cannot be read
-13 : Data could not be written.
-20 : Faulty root tag
-21 : Accessing file not possible
-22 : Invalid key
-23 : Data record is locked
If the CPL variable ERRNO is not indicated, a runtime
error occurs during access error.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-33
and Controls
XML Tables
Only data records can be read which are already available in the data-
base table. No new data records are created.
If both keys have the value 1, all data records from the file will be read
into database table. If the 1. key has a value unequal 1 and the 2. key
the value 1, all data records whose 1. key has the entered value, will be
read into database table.
Example:
DBLOAD(/DBT1,1,1,/dbdaten.txt)
Th content of data record (1,1) will be read
from file dbdaten.txt into database table.
DBSAVE
Via DBSAVE, parts of a database table or a complete database table
can be saved into a file.
Syntax:
DBSAVE(<DbTab>,<Key1>,<Key2>,<FileName>[,<Mode>] )
<DbTab> : Root tag of XML table.
<Key1> : 1. Key of data record
<Key2> : 2. Key of data record
<FileName> : File name
<Mode> : optional (default : 0)
0 : Data will be written into file FileName
. If the file already exists, the
content is overwritten.
1 : Data will be added to the existing file File-
Name.
ERRNO CPL variable. If the CPL variable ERRNO is entered
on any location in the parameter list, no runtime error
is created. The error is supplied via a corresponding
value of variables. The following return values are
possible:
0 : Access OK
-1 : Parameter error
-7 : Data cannot be read
-13 : Data could not be written.
-20 : Faulty root tag
-21 : Accessing file not possible
-22 : Invalid key
-23 : Data record is locked
If the CPL variable ERRNO is not indicated, a runtime
error occurs during access error.
5-34 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
XML Tables
If both keys have the value 1, all data records will be written into file. If
the 1. key has a value unequal 1 and the 2. key the value 1, all data
records whose 1. key has the entered value, will be written into file.
Example:
DBSAVE(/DBT1,1,1,/dbdaten.txt)
The content of data record (1,1) is saved
into file dbdaten.txt.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-35
and Controls
Scaling
5.7 Scaling
SCL
Supplies for the current channel (here: channel in which the program
with the SCL command is running) the parameters last programmed of
the functions PLS, SCL, MIR und ROT(...) (pole coordinates, scaling
factors and rotation angles).
Since PLS, SCL, MIR and ROT(...) act only on the coordinates in the
current channel, selecting a nonexistent coordinate in the current chan-
nel results in an error message.
Position values are supplied in the active unit of the current channel, i.e.
in Inch for G70 and in mm for G71. In the case of rotary axes / rotatory
spatial coordinates, the unit is always degrees.
Syntax:
SCL(<Selection>[,<Coordinate>[,<Selection type>]])
<Selection> 0: last progr. turning angle of the main plane
1: last progr. pole of a channel axis
2: last progr. scaling factor of a channel-axis
<Coordinate> Index or name of a coordinate:
Aname is interpreted as a coordinate name. Only if no
corresponding coordinate name exists is it interpre-
ted as a channel or system axis name.
Anindex is interpreted according to the given <Selec-
tion type>.
Programming an unconfigured coordinate/axis leads
to a runtime error if the optional variable ERRNO is
not programmed.
<Selection type> optional:
Determines how an index programmed under <Coor-
dinate> is interpreted:
0: System axis index
1: Coordinate index (default)
If there is no <selection type,> the index is interpreted
as a coordinate index!
Examples:
10 W=SCL(0) Writes the last-programmed turning angle to varia-
: ble W.
20 P=SCL(1,2) Writes the pole of the coordinate with the 2nd
: coordinate index in the channel to variable P.
30 F=SCL(2,2,1) Writes the scaling factor of the coordinate with the
: 2nd coordinate index in the channel to variable F.
40 D=SCL(2,X) Writes the scaling factor of the X-coordinate in the
channel to variable D.
5-36 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
System Data
MCA
Transfers the contents of a MACODA individual parameter. Depending
on the type of data, this value can be of the integer, float, double or
even string type. The variable in which the transferred value is to be
stored must be of the same type!Type conflicts between the value trans-
ferred and the destination variable are detected during the programs
runtime and acknowledged in the form of an error message.
Syntax:
MCA(<Block>,<Index>[,<Channel>] )
<Block> Number of a MACODA parameter. Within one MA-
CODA parameter, more than one MACODA indivi-
dual parameter (parameter list) can be contained.
If a nonexistent parameter number is programmed, a
runtime error will appear.
<Index> Index of the MACODA individual parameter, begin-
ning with 0.
If a nonexistent index number is programmed, a run-
time error will appear.
<Channel> Channel number. If not programmed, the function will
supply the MACODA individual parameter of the
channel in which the CPL program is presently being
executed.
If a nonexistent channel number is programmed, a
runtime error will appear.
Example: MCA command
MACODA No.
10 BLOCKNR%=100300004
20 ERG%=MCA(BLOCKNR%,0) !
System Data
NCF
Supplies the syntax of the NC-function that was programmed last within
the modal group or the auxiliary function group of <NC-functions>. All of
the modal groups of the control, as well as the auxiliary functions that
are defined in the auxiliary function groups, can be queried
The variable in which the result is to be stored must be of type Dimen-
sioned character field.
Type conflicts are detected during the running time of the program and
confirmed with an error message.
Syntax:
NCF (<NC-Function>)
<NC function> Syntax of any NC function or auxiliary function.
If a nonexistent syntax is programmed, a run-
time error is issued.
Examples:
10 DIM A$(4) Set the size of a character field for a string with a
: maximum length of 4 characters.
20 A$=NCF(G1) The syntax of the last-programmed NC function of
: the group that contains G1 as the syntax is assi-
gned to string variable A$.
N80 [A$] The previously queried NC function is programmed
again.
System Data
SCS
Permits read access to SERCOS drive parameters of the active para-
meter set.
Syntax:
SCS(<Axis selection>,<ID-Type>,<ID-No>[,<Result var>])
<Axis selection> System axis index or system axis name
<ID type> String expression.
S: S-Parameter
P: P-Parameter
<ID No> Number of the SERCOS parameter
<ResVar>: If<ResVar> is entered, a runtime error does not result
in case of an access error:
the following return values are possible:
0: Access OK
1: Access is currently impossible
If <ResVar> is not entered, a runtime error results if
access is attempted.
<ResVar> is an Integer variable.
The parameter content is supplied without a unit or scaling.
If the drive data are located in the SERCOS drive telegram, they are
read out from it (see Servodyn-D Parameter Manual). Otherwise, the
drive data are read directly in the drive.
If other applications access drive data, the drive data cancurrently not
be read. Parameter <ResVar> can be used to react to this error in the
parts program. Repeating the access attempt may supply the desired
drive datum.
. Continuous access to drive data can prevent access for other ap-
plications!
System Data
Example:
10 LAGE%=SCS(1,S,51,FEHLER%) The actual position value of the
1st axis is assigned to the
LAGE% integer variable.
12 IF FEHLER% = 0 THEN Error evaluation
13 REM***Actual position value was read correctly***
14 ELSE
15 REM***Actual position value could not be read***
16 ENDIF
SCSL
Certain SERCOS parameters exist as lists that can be read using com-
mand SCSL. Since the length (required memory) for a list is not known,
the read list elements are stored in ASCII files. Then the read data can
be processed using CPL file commands.
Using the SCSL command, the file indicated in the command is regene-
rated if it does not yet exist. The content of an existing file is overwritten.
Syntax:
SCSL(<Axis index>,<ID-Art>,<ID-Nr>,<File name>[,<Result
var>])
<Axis index> System axis index or system axis name
<ID type> String expression.
S: S-Parameter
P: P-Parameter
<ID No> Number of the SERCOS parameter
<FileName> Name of the ASCII file in which the read list is to be
stored.
<ResVar> Integer variable.
If<ResVar> is entered, a runtime error does not result
in case of an access error.
The following return values are possible:
0: Access OK
1: SERCOS access is currently not
possible
2: Error accessing the file.
If <ResVar> is not entered, a runtime error results if
access is attempted.
5-40 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
System Data
. Continuous access to drive data can prevent access for other ap-
plications!
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-41
and Controls
System Data
SD
Reads from a collection of system data IndraMotion MTX in Integer-
format.
Syntax:
SD(<Group>[,<Index1>[,<Index2>[,<Index3>]]])
The SD-function outputs INTEGER-values.
System Data
System Data
* : Number of a channel:
If the given channel is not active, axes from this channel may already be assigned, i.e. they are currently
active in another channel. Nevertheless, assigned axes belong to the given channel.
Example: axis X2 belongs to channel 2 (not active) and X2 is currently being driven synchronously in channel
1. Axis X2 is taken into account in both SD instructions Number of synchronous axes of the channel of
SD(21,2,...) and SD(21,1...).
5-44 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
System Data
268 2 1...8
77 Supplies the currently set restarting point of an asynchro-
nous subroutine:
1: Starting point
2: End point
3: Interruption point
System Data
System Data
Axis cou- m: Channel axis number of the master in the current chan-
pling nel
581 0 1...8(m) s: Channel axis number of the slave in the current channel
D Channel axis number = m if the axis is a leading axis;
0: if no leading axis exists
581 1 - 8(s) 0 D Number of the leading axis for which axis s is a following
axis
0: if s is not a following axis
581 1 - 8(s) 1 D Programmed following axis offset in programming units.
0: if s is not a following axis
D Programmed coupling factor
581 1 - 8(s) 2 0: if s is not a following axis
D Programmed leading axis offset in programming units
581 1 - 8(s) 3 0: if s is not a following axis
* : Number of a channel:
If the given channel is not active, axes from this channel may already be assigned, i.e. they are currently
active in another channel. Nevertheless, assigned axes belong to the given channel.
Example: axis X2 belongs to channel 2 (not active) and X2 is currently being driven synchronously in channel
1. Axis X2 is taken into account in both SD instructions Number of synchronous axes of the channel of
SD(21,2,...) and SD(21,1...).
Examples:
30 A% = SD(2,1) A% contains the active position of the feed
: potentiometer in percent
40 B% = SD(5,1,1) B% contains the active feed velocity
:
System Data
SDR
Reads from a collection of system dataIndraMotion MTX in REAL-for-
mat. The format and application of the command correspond to the SD-
function.
Syntax:
SDR(<Group>[,<Index1>[,<Index2>]])
System Data
Axis cou- m: Channel axis number of the master in the current channel
pling s: Channel axis number of the slave in the current channel
581 0 1...8(m) D Channel axis number = m if the axis is a leading axis;
0: if no leading axis exists
D Number of the leading axis for which axis s is a following axis
581 1 - 8(s) 0 0: if s is not a following axis
D Programmed following axis offset in programming units.
0: if s is not a following axis
581 1 - 8(s) 1 D Programmed coupling factor
0: if s is not a following axis
D Programmed leading axis offset in programming units
581 1 - 8(s) 2 0: if s is not a following axis
581 1 - 8(s) 3
You can find extensive information regarding the use and definition of
system data in the Description of Functions.
Access in the CPL is carried out with keyword SD. As opposed to XPath
addressing (standardized access to structured data), the point operator
. is used in place of the separator /. Arrays are addressed with [ ], e.g.
Xpath: /MyArrVar[2,3,4]/subcomponent
CPL: SD.MyArrVar[2,3,4].subcomponent
Example:
10 SD.MyChanVar=DBSEA(/dbt1/Rec,-1,-1,Key1=1,I%)
System Data
Permanent system data are reinitialized once while volatile system data
are reinitialized each time the system is started. The values can be spe-
cified in an initialization file. If nothing is specified there, the values are
preset to 0.
Structured variables (SV) can be replaced by SDs; however, they are
retained for reasons of compatibility.
5-50 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
System Data
AXP
This function allows parts and measurement programs to be written re-
gardless of the plane.
Example:
Subroutine:
10 A%=P1% : B%=P2% Transfer axis No. from P1%
and P2% to A% and B%
20 C=P3:D=P4:RA=P5 Transfer command values for
G2
30 E=0 Constant for pole at G20
N40 G20 [AXP(A%,E)][AXP(B%,E)] Plane switch with G20;
pole at 0.0
N50 G2 [AXP(A%,C)][AXP(B%,D)] Radius programming with G2
R[RA]] F1000
Plane definition using A% and B%. Then switch the plane using G20.
Finally, the axes move with F1000 through an arc that is defined by va-
riables C, D (end point) and RA (radius).
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-51
and Controls
System Data
BITIF
This function permits access to the digital interface between the NC and
the PLC.
D All inputs and outputs can be read.
D CPL customer outputs Ch_Cpl01 - 16 in the channel interface can
also be written.
BITIF(<Bit signal>[,<Index>[,<IF-Unit>]])
where:
<Bit signal> Bit offset or symbolic address.
Bit offset: 0-31 for global interface
0-111 for channel interface
0-95 for axis interface
0-95 for spindle interface
0-7 for high-speed interface
For the symbolic addresses, see the PLC Interface Ma-
nual.
<Index> Index of the axis, the spindle or the channel.
If an index is not programmed, the following applies for
the query:
- active channel for channel interface
- axis 1 for axis interface
- spindle 1 for spindle interface
<IF unit> 0 or QCH: PLC output signals (channel-based)
1 or QAX: PLC output signals (axis-based)
2 or QSP: PLC output signals (spindle-based)
3 or ICH: PLC input signals (channel-based)
(incl. CPL-customer outputs of the NC)
4 or IAX: PLC input signals (axis-based)
5 or ISP: PLC input signals (spindle-based)
6 or QGEN: PLC output signals (global)
7 or IGEN: PLC input signals (global)
8 or QHS: PLC output signals (high-speed)
9 or IHS: PLC input signals (high-speed)
5-52 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
System Data
Examples:
I?=BITIF(QGEN_RESET) Reads global output signal System re-
set.
I?=BITIF(ICH_RESET,1) Reads channel input signal Channel re-
set from channel 1
I?=BITIF(0,1,IAX) Reads axis input signal Reference point
known for axis 1
I?=BITIF(88,2,5) Reads spindle input signal Status class
1 error for spindle 2
BITIF(ICH_CPL05)=1 Writes CPL customer output 5 with a va-
lue of 1
BITIF(50,1,3)=TRUE
BITIF(ICH_CPL02)=FALSE
PLC
This function permits access to the operands of the PLC.
PLC(<Type>,<Empty param.>,<Address>,<Size>)
where:
<Type> 1: Input (E)
2: Output (A)
3: Flag (M)
Read access is permitted for all the types.
Write access to flags is permitted when 2060 00200
is set to a value of 5 (= IndraLogic).
<Empty param.> (not assigned)
<Address> Relevant byte address starting at beginning of area.
The control checks the parameter according to the
active PLC.
<Size> Size of the data type:
1: Byte
2: Word
3: Double-word
Example:
:
30 REM Read 2 bytes starting at input 10
40 I% = PLC(1,,10,2)
:
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-53
and Controls
System Data
CLOCK
Reads out the system time within the control in milliseconds.
Example:
:
20 WAIT
30 START TIME% = CLOCK
N4 G1 X50 Y70
40 WAIT
50 END TIME%=Clock : DIFF%=END TIME%-START TIME%
:
DATE
Supplies the current value for the date.
Example:
: The date in the form DD.MM is assigned to
30 A$ = DATE STRING variable A$.
:
TIME
Supplies the current value for the time.
Example:
: The time in the form HH.MM.SS is assigned
40 B$ = TIME to STRING variable B$.
:
System Data
GETERR
This function calls the current errors in a CPL program. It contains the
current error No., the channel No. of the error and the associated error
category.
Each error that occurs is saved, together with these elements, to an ar-
ray. The max. number of errors that fit into the array is limited by the di-
mensioning (DIM) of parameter <Error No> .
GETERR(<Channel>,[<Category>],<Error No>[,<Number>])
<Channel> Channel No. of the queried channel
-1 : All channels
> 0: Channel No.
<Category> 0: All warnings and errors (default)
1: Low-priority system error
2: Control or drive error
3: Interpolator error
4: Hardware error
5: ICL error
6: Parts program error
7: Runtime warnings
8: MZA messages: Error
9: MZA messages: Warnings
10: MZA messages: Notes
<Error No> Result variable:
Two-dimensional integer array with at least 3 ele-
ments in the second dimension (DIM <Error-No.>%
(x,3)), default value: 0.
The function supplies the current error numbers from
the <channel> in decreasing order according to the
time they occurred.
Meaning of the 3 elements of the 2nd dimension:
<Error No>(x,1): Error No.
<Error No>(x,2): Error channel
(-1 = cross-channel)
<Error No>(x,3): Error category (if declared using
DIM
command).
0 = Unknown category
Other values = as for <Category>
Example: DIM ERRNO% (100,3).
System Data
Example:
Query the last parts program error in channel 2
10 DIM ERRN=%(5,3) : REM Integer array with 5 elements
20 REM Query the last parts program error in channel 2
30CHAN%=2:CATEGORY%=6
40ERG%=GETERR(CHAN%,CATEGORY%,ERRNO%,1)
:
Example:
Result-evaluation for 5 array elements.-
10 DIM ERRNO%(5,3):REM Integer array with 5 elements
20 CHAN%=2 : CATEGORY%=0
25 REM query part progr.-error in channel 2
30 ERG%= GETERR(CHAN%, CATEGORY%, ERRNO%, 5)
40 FOR I%= 1 TO ERG%
50
50 IF ERRNO%(I%,3)=6 THEN
60 PRN#(0, Parts program error: ,ERRNO%(I%,1))
70 ENDIF
80 NEXT I%
5-56 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
System Data
Criteria for selecting the errors: Result in Erg% that fulfills the
- Channel 2 criteria of GETERR(..):
- Category 6 = 2, i.e. 2 errors were
- Max. number of errors to be recorded: 5 found
DIM ERRNO%(5,3)
Latest Array-element
reported error
1 1856 Error No.
Array-index: 1 2 2 Error channel:
3 2 Error-category
1 1869
Array-index: 2 2 2
3 1
1 1970
Array-index: 4 2 2
3 10
As the result, parts program errors 1938 and 1971 are output in the
MSG window. Variable Erg% contains a value of 2.
System Data
Example:
ERR_VAR% = MCOPS(...)
ERR_VAR% = MCODS(...)
CAUTION
Improper program reactions possible!
When called functions return an error code, it may happen that im-
portant actions in the remainder of the program run are carried out
incompletely or not at all.
We therefore strongly recommend that you check the program
(e.g. using CASE) after a function is called to see whether the
function could be executed without errors.
The remaining program behavior then is determined by the type
and severity of the error that occurred.
System Data
System Data
MCODS
Calls Motion Control data services of the NCS via CPL. This allows the
data and states to be read from the CNC.
. All read values refer to the time at which the CPL block is proces-
sed by block preparation.
If the calling program also contains NC blocks, block preparation
generally occurs before processing in the machine. If program ex-
ecution is to be affected by functions that determine current ma-
chine data or states, you must eliminate the time delay between
block preparation and the current machine status. However, this
applies only to functions that access precisely the channel in
which they are executed themselves.
In this case, use the WAIT command in the line preceding the func-
tion call. This stops block preparation until all the blocks before
WAIT have actually been processed.
General syntax:
MCODS(<Type>,<Channel>,<Version>,<Buffer>,<Size>,<Axis
number>,<ID number>[,<P1>])
<Type> Integer expression. This indicates the function to be
executed.
The following table lists all the available functions.
<Channel> Integer expression. Indicates the channel which the
function is to affect.
<Version> Initialized integer- or real- variable (no constant!).
If the variable content = 0 when the function is called,
the function specified by <Type> immediately writes
the requested data to the<Buffer>.
In addition, the function returns a version ID of the
supplied data in <Version>. If this version ID is still
contained in the variable the next time that the func-
tion is called, the function does not write the reque-
sted data immediately, but rather after the next time
the data in <Buffer> are modified.
In this way, for example, a program loop can be run
until a channel has attained a certain status. Howe-
ver, you should incorporate a timeout condition (e.g.
counter or elapsed period) in the loop to prevent end-
less loops!
<Buffer> The function returns the requested data values in
<Buffer>. Depending on the type of data, <Buffer>
must be a:
5-60 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
System Data
System Data
States
Status InPos see MCODS(6..)
Status Test mode see MCODS(29..)
Status Traverse to reference point see MCODS(26..)
Status Dwell time active see MCODS(39..)
Status Auxiliary function which requires see MCODS(40..)
acknowledgement active
Status Reading release see MCODS(41..)
Status Travel command see MCODS(47..)
Status Feed inhibit see MCODS(49..)
SAV- and IPO-status see MCODS(32..)
Potentiometer
Value of feed-potentiometer see MCODS(7..)
Values of spindle-potentiometer see MCODS(8..)
Value of axis-potentiometer see MCODS(50..)
Corrections
Active length correction number see MCODS(9..)
Active length correction see MCODS(10..)
Active tool-radius correction number see MCODS(11..)
Active tool-radius correction see MCODS(12..)
Name of active tool-correction table see MCODS(13..)
Name of active axis-ZO-table see MCODS(14..)
Active axis-ZO-values see MCODS(15..)
Active external -correction values see MCODS(51..)
Active external axis-ZO-values see MCODS(52..)
Active universal tool correction see MCODS(54..)
Operating modes
Channel operating mode see MCODS(31..)
Axis operating mode see MCODS(48..)
System structure
Number of feed axes, auxiliary axes, spindles; see MCODS(34..)
movement types, drive types
Number of channels see MCODS(44..)
Number of axes see MCODS(45..)
Axis name see MCODS(33..)
Active channel-axis name see MCODS(59..)
Channel-axis name (default setting) see MCODS(60..)
Axis-channel assignment see MCODS(43..)
Axis-channel default-assignment see MCODS(58..)
5-62 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
System Data
System Data
2) Indicates the variable type (integer, real, double, character) required for <Buffer>.
If a simple variable is not required, but rather a field variable, Array is written behind the variable type.
5-64 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
System Data
2) Indicates the variable type (integer, real, double, character) required for <Buffer>.
If a simple variable is not required, but rather a field variable, Array is written behind the variable type.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-65
and Controls
System Data
2) Indicates the variable type (integer, real, double, character) required for <Buffer>.
If a simple variable is not required, but rather a field variable, Array is written behind the variable type.
5-66 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
System Data
2) Indicates the variable type (integer, real, double, character) required for <Buffer>.
If a simple variable is not required, but rather a field variable, Array is written behind the variable type.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-67
and Controls
System Data
2) Indicates the variable type (integer, real, double, character) required for <Buffer>.
If a simple variable is not required, but rather a field variable, Array is written behind the variable type.
5-68 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
System Data
2) Indicates the variable type (integer, real, double, character) required for <Buffer>.
If a simple variable is not required, but rather a field variable, Array is written behind the variable type.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-69
and Controls
System Data
2) Indicates the variable type (integer, real, double, character) required for <Buffer>.
If a simple variable is not required, but rather a field variable, Array is written behind the variable type.
5-70 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
System Data
2) Indicates the variable type (integer, real, double, character) required for <Buffer>.
If a simple variable is not required, but rather a field variable, Array is written behind the variable type.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-71
and Controls
System Data
2) Indicates the variable type (integer, real, double, character) required for <Buffer>.
If a simple variable is not required, but rather a field variable, Array is written behind the variable type.
5-72 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
System Data
2) Indicates the variable type (integer, real, double, character) required for <Buffer>.
If a simple variable is not required, but rather a field variable, Array is written behind the variable type.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-73
and Controls
System Data
2) Indicates the variable type (integer, real, double, character) required for <Buffer>.
If a simple variable is not required, but rather a field variable, Array is written behind the variable type.
5-74 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
System Data
2) Indicates the variable type (integer, real, double, character) required for <Buffer>.
If a simple variable is not required, but rather a field variable, Array is written behind the variable type.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-75
and Controls
System Data
2) Indicates the variable type (integer, real, double, character) required for <Buffer>.
If a simple variable is not required, but rather a field variable, Array is written behind the variable type.
5-76 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
System Data
2) Indicates the variable type (integer, real, double, character) required for <Buffer>.
If a simple variable is not required, but rather a field variable, Array is written behind the variable type.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-77
and Controls
System Data
2) Indicates the variable type (integer, real, double, character) required for <Buffer>.
If a simple variable is not required, but rather a field variable, Array is written behind the variable type.
5-78 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
System Data
2) Indicates the variable type (integer, real, double, character) required for <Buffer>.
If a simple variable is not required, but rather a field variable, Array is written behind the variable type.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-79
and Controls
System Data
2) Indicates the variable type (integer, real, double, character) required for <Buffer>.
If a simple variable is not required, but rather a field variable, Array is written behind the variable type.
5-80 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
System Data
2) Indicates the variable type (integer, real, double, character) required for <Buffer>.
If a simple variable is not required, but rather a field variable, Array is written behind the variable type.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-81
and Controls
System Data
2) Indicates the variable type (integer, real, double, character) required for <Buffer>.
If a simple variable is not required, but rather a field variable, Array is written behind the variable type.
5-82 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
System Data
2) Indicates the variable type (integer, real, double, character) required for <Buffer>.
If a simple variable is not required, but rather a field variable, Array is written behind the variable type.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-83
and Controls
System Data
2) Indicates the variable type (integer, real, double, character) required for <Buffer>.
If a simple variable is not required, but rather a field variable, Array is written behind the variable type.
5-84 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
System Data
2) Indicates the variable type (integer, real, double, character) required for <Buffer>.
If a simple variable is not required, but rather a field variable, Array is written behind the variable type.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-85
and Controls
System Data
Online correction values (WCS) Real, Array MCODS(89, <Channel>, <Version>, <Buffer>, <Size>)
E Supplies the values of the online correction (WCS) of the
given channel to <Buffer>. First all the spatial coordinates,
then the pseudocoordinates of the channel.
Status of online correction Integer, Array MCODS(90,, <Channel>, <Version>, <Buffer>, <Size>)
(WCS)
E Supplies the current status of the online correction (WCS)
of the given channel to <Buffer>. First all the spatial
coordinates, then the pseudocoordinates of the channel.
0: inactive
1: active
1) Data that the control provides cyclically are marked by a Z.
Data that are available after every block change are marked by an S.
Data that are supplied in irregular intervals after a change are marked by an E.
Data that are supplied immediately after the request are marked by an I.
Data that never change (they must be requested only once) are marked by an R.
2) Indicates the variable type (integer, real, double, character) required for <Buffer>.
If a simple variable is not required, but rather a field variable, Array is written behind the variable type.
5-86 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
System Data
Basic coordinates of the tool tip Real, Array MCODS(92,, <Channel>, <Version>, <Buffer>, <Size>)
(BCS-Tcp)
C If 3D-radius compensation is active, this supplies the
command values of the tool tip in the basic coordinate
system (BCS -Tcp) to <Buffer>, first the spatial
coordinates, then the pseudocoordinates of the given
channel.
If 3D radius compensation is switched off, the values are
identical with MCODS(72,...).
2) Indicates the variable type (integer, real, double, character) required for <Buffer>.
If a simple variable is not required, but rather a field variable, Array is written behind the variable type.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-87
and Controls
System Data
System Data
MCOPS
Calls Motion Control process services of the NCS via CPL. This allows
channels in the CNC to be controlled.
General syntax:
MCOPS(<Fct>,<Channel>[[,[<P1>][,[<P2>],[<P3>]]],<P4>
])
<Fct> Integer expression. This indicates the function to be
executed. The following table lists all the available
functions.
<Channel> Integer expression. Indicates the channel which the
function is to affect.
<P1> - <P1> Optional parameters that depend on <Fct>. Sequen-
ces of commas are permitted; however, a comma be-
fore a close-parentheses sign is not.
Effect Syntax/Description
Cancel distance to go MCOPS(1,<Channel>)
Initiates Cancel distance to go in the programmed <Channel>:
D Having initiated Cancel distance to go, all prepared NC blocks,
including the remainder of the current block, are cancelled and
prepared again.
D In the display, the indicated end point is set to the current position,
simultaneously deleting the indicated distance to go. The <Channel>
then changes to the NC ready state (iCh_NCReady PLC input signal)
D Following the NC start (PLC output signal qCh_NCStart), the program
is continued at the point of interruption, taking into account the new
compensation values.
Example for using MCOPS(1,<Channel>): after the correction tables
have been changed if the new values are also to apply to the previously
prepared blocks.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-89
and Controls
System Data
Effect Syntax/Description
control reset MCOPS(2,<Channel>[,<Control reset-type>])
Initiates Control reset in the programmed <Channel>.
To initiate an overall control reset: <Channel> = -2
D The channel temporarily does not accept any more orders, such as
program selection or operating mode switching.
D The interpolator is stopped.
D Orders to the channel that have not yet been processed are
cancelled.
D The main program is deselected.
D Modified machine parameters that do not require that the machine be
started are accepted, e.g. machine parameter 1020 00001 (software
limit switch).
D Error and warnings that this channel initiated are deleted.
D The interpolator is restarted.
D The startup status for the control reset (machine parameter 7060
00020) is accepted, i.e. the corresponding modal states become
active.
D The channel issues interface signal 0.2 Control reset executed and
is again ready for new orders.
D <Control reset-type>: Integer-expression. Specifies the behavior of
the function.
The following list contains all the defined behavioral patterns. Each
pattern is preceded by an ID. To set a certain behavior, the
corresponding ID must be provided in <Control reset -type>. If
several behavioral patterns are to be combined, the sum of all the
corresponding IDs in <Control reset-type> must be transferred to the
function. Until now, the list has had only one element:
ID:
2: Automatic program reselection is suppressed
if it is active.
Example: ERR_VAR=MCOPS(2,2,2)
Control reset in 2nd channel without automatic
program reselection
5-90 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
System Data
Effect Syntax/Description
Search block MCOPS(3,<Channel>[,[<Starting block>][,<End block>]])
Initiates Search block in the selected, but not yet started, main program
of the programmed <Channel>:
System Data
Effect Syntax/Description
D if 32+4096 is provided in <Selection type>: as several NC blocks
that are to be processed using the manual data input operating
mode.
Several NC-blocks are separated by NewLine (\n, Hex 0x0A).
The max. size of all NC blocks must not exceed 4096 bytes,
including the terminating 0 byte.
D if 32768 is provided in <Selection type>: the name or path name is
provided for job SETINT for asynchronous subroutines.
D The <Starting block> and <End block> specify the starting - and end
blocks in the parts program for processing. This is treated like
MCOPS(3,..).
If the system interprets <String> as manual data input, the <Starting
block> and <End block> are ignored.
For specifications for asynchronous subroutines (<Selection type>=
32768), the number (1 number 8) is provided as a string (e.g. 1)
in <Starting block> and the job is provided in <End block>.
Jobs for asynchronous subroutines are:
SETINT log on
DISABLE switch off
ENABLE switch back on
CLRINT delete
START start
System Data
Effect Syntax/Description
1 During the selection, the system carries out a link run. If one
does not already exist, a link table is generated for the
selected main program. Link tables are required if subroutine
calls or CPL instructions exist in the program.
2 The system acknowledges the validity of a selection only
after the NC status switches to READY.
Normally, the selection is acknowledged without waiting for
NC status READY.
32 The system interprets <String> as a manual data input
block. Also see ID 128.
64 Before the function selects the given program or manual
data input block, an active program or manual data input
block is deselected.
128 A manual data input block is started immediately. There are
2 cases:
<Channel> is not active: The block is processed immediately
as a normal manual data input block.
<Channel> is already active: The block is processed
immediately as a switching function. For limitations, see ID
1024.
256 Prerequisite to move axes in Jog operating mode
or
if movements are to occur in the Jog in workpiece coordi-
nates operating mode.
512 Prerequisite to start axes in Traverse to reference point
operating mode.
1024 Switch function. Works together with ID 128.
A manual data input block is processed at the same time as
the given <Channel>. However, only auxiliary functions and
asynchronous axis movements are permitted in the manual
data input block.
2048 A program that is already active is replaced by the newly
selected one. As a result, all modal states are maintained.
In manual data input, the old character sequence is replaced
by the new one.
4096 Entering buffered NC-blocks acts in connection with code
number 32. While preceding blocks are being executed, oth-
ers can already be specified.
32768 Asynchronous subroutines can be controlled using this flag
(see <Starting block> and <End block>).
Examples:
ERR_VAR=MCOPS(4,1,sekt.cnc,N50,N100,1)
Program selection of sekt.cnc in channel 1, incl. block search and
linking.
ERR_VAR=MCOPS(4,1,/usr/user/p1.cnc)
Program selection of p1.cnc in channel 1, without block search and
linking.
ERR_VAR=MCOPS(4,1,F1000G1X500,,,32)
Selects block F1000G1X500 in channel 1 using manual data input.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-93
and Controls
System Data
Effect Syntax/Description
Program deselection MCOPS(5,<Channel>,<Deselection-Type>)
Deselects a selected program or manual data input block in the
programmed<Channel> .
Example:
ERR_VAR=MCOPS(5,2,2) Program deselection in channel 2 without
automatic program reselection.
System Data
Effect Syntax/Description
Assign operating mode MCOPS(7,<Channel>,<Operating mode>)
Assigns an operating mode in the programmed <Channel>.
The operating mode can be changed only under the following conditions:
D Channel-interface-signal qCh_OpModePlc (PLC operating mode) may
not be set
D No program or block is selected for the NC
- or -
Switching is to be carried out solely between automatic operating
modes Next block, Program block, Single step or Single block.
Example:
ERR_VAR=MCOPS(7,2,5)
Operating mode change in the 2nd channel to Automatic (Next block).
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-95
and Controls
System Data
Effect Syntax/Description
Change return-to-path strategy MCOPS(8,<Channel>,<How>,<Where>)
Specifies the return-to-path strategy in the programmed <Channel>.
System Data
After it is called, the function returns to the calling program only after the
SAV status changes (VERSION still contains a value not equal to 0; for
the version number, see example 1). The loop is exited only after
BUF%(1) receives a value of 1.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-97
and Controls
System Data
System Data
10 CHAN%=1
20 VERSION%=0
30 STATES%=0
40 ERR=MCODS(87,CHAN%,VERSION%,STATES%,1)
50 IF ERR=0 THEN
60 MASK%=1
70 WHILE MASK% <= STATES% DO
80 CASE (STATES% AND MASK%) OF
90 LABEL 1:PRN#(0,Dwell time)
100 LABEL 2:PRN#(0,Auxiliary function requiring acknowledgement)
110 LABEL 4:PRN#(0,Block transfer inhibit)
120 LABEL 8:PRN#(0,Feed in channel equals 0)
130 LABEL 16:PRN#(0,Program stop with M0/M1)
140 LABEL 32:PRN#(0,Feed stop in channel)
150 LABEL 64:PRN#(0,Feed inhibit in channel or a channel axis)
160 LABEL 128:PRN#(0,Block transfer inhibit assigned by customer)
170 LABEL 256:PRN#(0,Synchronized movement stop
between channels (ASTOP, ...))
180 LABEL 512:PRN#(0,Wait for axis in axis exchange (G511))
190 LABEL 1024:PRN#(0,Wait for permanent variable (WPV))
200 LABEL 2048:PRN#(0,Wait for interface signal at
active time (WAITA, ...))
210 LABEL 4096:PRN#(0,Wait for If signal (WAIT(BITIF(...))) or)
220 PRN#(0, (WAIT(,ZEIT%)) in block preparation)
230 LABEL 8192:PRN#(0,Motion Control data service (MCODS(...)))
240 ENDCASE
250 MASK%=MASK%*2
260 END
270 ENDIF
M30
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-99
and Controls
System Data
System Data
Notes:
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-101
and Controls
CPL instructions MID$, LEN, INSTR, ASC, STR$, VAL and TRIM$ are
available for string processing.
DIM
In order to create a character field, you must index a character variable
using a DIM instruction.
In this way, character fields with a max. capacity of 1024 characters can
be created (value range of the index: 1 to 1024).
If the value range is not adhered to, the error message INVALID FIELD
LIMIT appears.
Example:
1 DIM VWX$(14)
Examples:
1 DIM ABC$(1) Character field for a string with a max. length of 1 cha-
racter.
2 DIM BCDE$(10) Character field for a string with a max. length of
10 characters.
5-102 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
MID$
This function removes parts from a string expression.
The result can be transferred to a dimensioned or to a non-dimensioned
character variable:
D A dimensioned character variable receives the complete partial
string defined in the MID$ command.
D A non-dimensioned character variable receives only the beginning
address and length of the defined partial string. If the string-expres-
sion from which the partial-string was taken changes, then the non-
dimensioned character variable changes correspondingly.
The range of values for the 2nd and 3rd parameters encompasses inte-
ger-values from 1 to 1024. If the range of values is not adhered to, the
fault message Invalid parameter is returned.
NUL is returned if a character field portion which has not yet been assi-
gned is accessed.
Example:
1 DIM A$(10)
2 DIM B$(5)
3 A$=ABCDEFGHIJ
4 B$=MID$(A$,2,5)
5 C$=MID$(A$,2,5)
6 REM Variables B$ and C$ both
have the content: BCDEF
7 A$=QRSTUVWXYZ
8 REM Variable B$ has the content: BCDEF
The variable C$ has the content: RSTUV
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-103
and Controls
MID$
The MID$-instruction overwrites parts of a character field.
The range of values for the 2nd and 3rd parameters is between 1 to
1024. If the range of values is not adhered to, the fault message INVA-
LID PARAMETER appears.
Example:
1 DIM A$(10)
2 A$=ABC Length of A$ is 3.
3 MID$(A$,4,3)=DEF
The 4th to 6th components of the character field are written. This is per-
missible because the first three components have already been assi-
gned.
Example:
1 DIM A$(10)
2 A$=ABC Length of A$ is 3.
3 MID$(A$,5,3)=DEF
LEN
LEN(<STRING expression>)
Returns the number of characters in a <STRING expression>. The re-
sult is an INTEGER-value.
If the <STRING expression> is empty, LEN returns a value of 0.
If the <STRING expression> is not defined, LEN returns a value of -1.
Example:
1 DIM XYZ$(10)
2 XYZ$=ABC
3 I%=LEN(XYZ$) INTEGER variable I% has a value of 3
4 XYZ$=
5 J%=LEN(XYZ$) INTEGER variable J% has a value of 0
6 XYZ$=NUL
7 K%=LEN(XYZ$) INTEGER variable K% has a value of -1
INSTR
INSTR(<Character string>,<String expression>[,<Starting
point>])
Beginning at the <Starting point>, INSTR searches for a <character
string> within a <string expression> and outputs the position of the first
character of the <character string> found in the <string expression> as
an INTEGER value.
A value of 0 is returned if the <character string> is not found.
The <character string> can be programmed as a STRING expression.
The range of values for the 3rd parameter is between 1 to 1024. The
following error message appears if the range of values is not adhered
to:
INVALID PARAMETER.
Example:
1 DIM A$(8)
2 DIM B$(16)
3 A$=A : MID$(A$,2)=UVWXYZ
4 B$=ABCDEF UVWXYZ GH
5 POS1%=INSTR(MID$(A$,2),B$,4) INTEGER variable POS1%
has a value of 8
6 POS2%=INSTR(MID$(A$,2,4),B$,10) INTEGER variable POS2%
has a value of 0
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-105
and Controls
ASC
ASC(<Character string>)
Outputs the ordinal number of the first character (ASCII code) of <Cha-
racter string> as an INTEGER value.
If <Character string> is empty or not defined, ASC returns a value of -1.
Example:
10 DIM A$(1)
20 A$ = ABC
30 B$ = BCD
40 I% = ASC(A$) INTEGER variable I% has a value of 65
50 J% = ASC(B$) INTEGER variable J% has a value of 66
60 A$ =
70 K% = ASC(A$) INTEGER variable K% has a value of -1
80 A$ = NUL
90 L% = ASC(A$) INTEGER variable L% has a value of -1
CHR$
CHR$ is the reversal of ASC.
CHR$(<Integer expression>)
Converts an <integer expression> into the corresponding ASCII cha-
racter.
All ASCII character decimal priorities appear in the ASCII character
set table in the Appendix of this manual.
Example:
10 DIM A$(1)
20 I% = 65
40 A$ = CHR$(I%) STRING variable A$ has a value of 65
5-106 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
STR$
STR$([<Format string>,]<Value>)
Converts numeric expression <Value> into a character string that can
be assigned to only one character field. Assignment to a STRING-varia-
ble leads to a runtime error.
Standard formats:
INTEGER-number: 9 digits
Single-precision REAL number:4 digits before and 3 after the decimal
point.
Double-precision REAL number: 9 digits before and 6 after the deci-
mal point.
Example:
10 DIM A$(50)
20 DIM B$(21)
30 A$=STR$(Num- Content of character field A$:
ber=##.###,(37/3) Number = 12.333
40 B$=STR$(2.5) Content of character field B$:
2.500
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-107
and Controls
VAL
VAL(<STRING expression>)
Returns the numerical value for a <STRING expression>. If the string
contains a character other than a leading space, the leading + or -
sign, the numbers 0 to 9 or the decimal point ., the conversion will be
performed up to this (other) character. Leading spaces and zeros are
ignored for purposes of value formation. If none of the characters above
appear, then NUL is returned. If the string contains a decimal point, the
result may only be assigned to a REAL or double-precision REAL-varia-
ble. Assignment to an INTEGER-variable in this case would lead to an
INVALID ASSIGNMENT error message.
Example:
1 I% = VAL(1.23DE)
2 K% = VAL(123DE)
3 J% = VAL(ABC)
4 R = VAL(-1.23DE)
5 Z = VAL(+ 000001234TEST4365)
6 X = VAL(ABC1.23DE)
7 D! = VAL(1234567.234567)
The value of the INTEGER variable K% is 123. The numbers 1,2,3 are
converted to an INTEGER number. The D character aborts the conver-
sion because it cannot belong to an INTEGER number. The characters
which follow it are ignored.
The value of INTEGER variable J% is NUL, i.e. the variable is not assi-
gned. The A character aborts the processing of the <STRING expres-
sion>.
The REAL variable X is NUL, i.e. not assigned. The conversion is abor-
ted when the character A is recognized.
TRIM$
TRIM$(<Character string>)
TRIM$(<Character string>,L)
TRIM$(<Character string>,R)
When a character field range is assigned to a STRING variable or cha-
racter field, TRIM$() returns a string without preceding ( index L) or
trailing ( index R) spaces.
The TRIM function without index hides both preceding and concluding
spaces.
If chaining occurs within the TRIM command (e.g. TRIM$(A$+B$)), the
result may be assigned only to a character field.
Example:
1 A$ = ABCDEF
2 B$ = TRIM$(A$,L)
3 C$ = TRIM$(A$,R)
4 D$ = TRIM$(A$)
5 PRN#(1,>,A$,<)
6 PRN#(1,>,B$,<)
7 PRN#(1,>,C$,<)
8 PRN#(1,>,D$,<)
Leads to the following lines in the file with the logical number 1 opened for
write access:
> ABCDEF <
>ABCDEF <
> ABCDEF<
>ABCDEF<
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-109
and Controls
Example:
Programming STRING variables (without prior dimensioning)
1 A$=ABCDE
2 B$=CHR$(10)
Read and write access to a part of a character field is performed with the
MID$ command. If only the character field name is entered, the entire
character field will be addressed.
If the length of the STRING variable is less than the character field, cha-
racter field XYZ$ is written only in the length of the STRING variable.
When allocating this character field to a STRING variable, it is not the
entire character field (defined via DIM instruction) which is assigned, but
only the range which was written previously ( length of the character
field).
Example:
1 DIM XYZ$(100)
3 MID$(XYZ$,1,10)=ABCDE
4 MID$(XYZ$,6,3)=T
The content of the XYZ$ field variable after block 3 is: ABCDE.
The field variable has a length of 5. The remaining 95 characters are not
assigned and are therefore not part of the length.
The content of the XYZ$ field variable after block 4 is: ABCDET.
The field variable now has a length of 6. The remaining 94 characters
are not assigned and are therefore not part of the length.
Example:
1 DIM XYZ$(16)
2 XYZ$=
Content of character field XYZ$:
Length of character field XYZ$: 1
Example:
1 DIM XYZ$(3)
2 XYZ$=ABCDEF
Content of character field XYZ$: ABC
Length of character field XYZ$: 3 ---> maximum length
Example:
1 DIM XYZ$(16)
2 A$=DAS
3 B$=IST EIN TEST
4 C$=EIN EI
5 MID$(XYZ$,1,4)=A$
CONTENT OF THE CHARACTER FIELD
-----------------------------------------------------------------
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |10 |11 |12 |13 |14 |15 |16 |
-----------------------------------------------------------------
| | | | | | | | | | | | | | | | |
| D | A | S | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | |
-----------------------------------------------------------------
| | |
Length = 4 Area is not assigned
6 MID$(XYZ$,5,6)=B$
CONTENT OF THE CHARACTER FIELD
-----------------------------------------------------------------
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |10 |11 |12 |13 |14 |15 |16 |
-----------------------------------------------------------------
| | | | | | | | | | | | | | | | |
| D | A | S | | I | S | T | | E | I | | | | | | |
| | | | | | | | | | | | | | | | |
-----------------------------------------------------------------
| | |
Length = 10 Area is not assigned
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-113
and Controls
7 MID$(XYZ$,5,12)=B$
CONTENT OF THE CHARACTER FIELD
-----------------------------------------------------------------
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |10 |11 |12 |13 |14 |15 |16 |
-----------------------------------------------------------------
| | | | | | | | | | | | | | | | |
| D | A | S | | I | S | T | | E | I | N | | T | E | S | T |
| | | | | | | | | | | | | | | | |
-----------------------------------------------------------------
| |
Length = 16; Range is fully assigned
8 MID$(XYZ$,9,8)=C$
CONTENT OF THE CHARACTER FIELD
-----------------------------------------------------------------
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |10 |11 |12 |13 |14 |15 |16 |
-----------------------------------------------------------------
| | | | | | | | | | | | | | | | |
| D | A | S | | I | S | T | | E | I | N | | E | I | S | T |
| | | | | | | | | | | | | | | | |
-----------------------------------------------------------------
| |
Length = 16; Range is fully assigned
9 XYZ$=MID$(XYZ$,1,4)
CONTENT OF THE CHARACTER FIELD
-----------------------------------------------------------------
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |10 |11 |12 |13 |14 |15 |16 |
-----------------------------------------------------------------
| | | | | | | | | | | | | | | | |
| D | A | S | | | | | | | | | | | | | |
| | | | | | | | | | | | | | | | |
-----------------------------------------------------------------
| | |
Length = 4 Area is not assigned
Content of P2 file:
ABCDEF <LF>
ABCGH <LF>
GHJKL <LF>
ABCGHTEST <LF>
UVWXYZ <LF><ETX><LF>
10 DIM A$(100)
20 DIM B$(100)
30 DIM C$(10)
40 DIM D$(20)
51 DIM E$(30)
52 DIM F$(30)
53 DIM G$(30)
54 DIM H$(30)
55 DIM I$(30)
60 A$=DAS
70 B$=IST EIN TEST
80 MID$(C$,1,6)=A$ + B$
90 MID$(D$,1,10)=MID$(A$,1,1) + MID$(B$,1,2)
92 E$=A$ + MID$(B$,1)
93 X$=ABC
94 Y$=DE
95 F$=X$ + Y$
96 G$=X$ + A$
97 H$=X$ + A$ + TEST
98 I$=TES + T1
Example:STR$
1 DIM A$(50) : DIM B$(21)
2 A$ = STR$(A$ = ##.###,(37/3)) : B$ = STR$(2.5)
Example:VAL
1 DIM FOLGE$(20) : FOLGE$=X-VALUE -0001.234 MM
2 XR = VAL(MID$(FOLGE$,7)) : Z% = VAL(MID$(FOLGE$,7,6))
3 Y%=VAL(MID$(FOLGE$,15,5)) : X% = VAL(MID$(FOLGE$,18))
Example: LEN
1 DIM Z$(10)
2 Z$ = TEST
3 S$ = TEST
4 A% = LEN(TEST)
5 B% = LEN(Z$)
6 C% = LEN(S$)
7 D% = LEN(TEST+Z$+S$)
70 B$ = MID$(A$,2,2) --> B$ = BC
80 C$ = MID$(A$,2,5) --> C$ = BCD
95 E$ = MID$(A$,5,1) --> E$ = NUL
97 F$ = MID$(A$,2) --> F$ = BCD
98 F$ = MID$(F$,1,1) --> F$ = B
Example:TRIM$
1 DIM XYZ$(16)
2 XYZ$ = XVALUE = 0.123
3 A$ = MID$(XYZ$,8)
4 B$ = TRIM$(MID$(XYZ$,8))
5 C$ = TRIM$(MID$(XYZ$,8),L)
6 D$ = TRIM$(MID$(XYZ$,8),R)
File Processing
Within the CNC, files are administered in the file system. They are orga-
nized into a hierarchic structure. Individual files are accessed using di-
rectory paths.
To provide read or write access to data, the corresponding file must al-
ways be opened first (see OPENW, OPENR commands); as soon as
access to the data is no longer necessary, the file is closed (see CLOSE
command).
D Filenames . and .. are not permitted because they are already used
internally.
D Filenames within a directory must be unique.
However, files with the same name can exist in different directories.
5-118 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
File Processing
The advantage of the random file is that it can be used to access the
required data more quickly. In addition, the data of a record can be pro-
cessed and/or modified without changing the structure of the rest of the
file. Records that are not completely filled with data are filled to the defi-
ned length with blanks.
The REWRITE and CLOSE instructions are used for sequential files.
File Processing
OPENW, OPENR
The command used to open a file is dependent on the desired type of
access:
D write access: OPENW
D read access: OPENR
If the file to be opened does not yet exist, it is created during opening
and the predetermined memory area is reserved.
Files which have already been opened can also be opened for read ac-
cess by means of the OPENR command. An open file cannot, however,
be opened again for writing to it.
Syntax:
OPENW(<n>,<PGM name>,<Length>[,<PGM remark>]
[,<Record length>])
File Processing
Examples:
50 OPENW(1, P500,1024,This is my best
program)
50 OPENW(7,PData_Mes.DAT,1024,Store measurement
data)
When the file is opened for writing, a check is made to ensure that the
random structure has been maintained.
If the structure has been damaged by the editor, the following message
appears: INVALID COMPONENT LENGTH.
Example:
10 OPENW(2,P200,1024,10)
20 FOR I% = 1 TO 3
30 PRN#(2,TESTE)
40 NEXT I%
50 CLOSE(2)
Result: P2
TESTE <LF>
TESTE <LF>
TESTE <LF>
<ETX><LF>
When the file is opened for reading, a check is made to ensure that the
random-structure has been maintained. All components must have the
identical length specified in the OPENR-command.
Example:
1 OPENW(2,P200,130,TEST,10)
2 PRN#(2,ABC)
3 CLOSE(2)
4 OPENR(1,P2,5)
5 CLOSE(1)
File Processing
Example:
P1:
N10 G1F10000X1000Y1000Z1000
1 A$=01234567890123456789
2 B$=TEST
N20 X0
M30
P2:
1 OPENW(1,PMess_PRG,500,RANDOMDATEI,10)
2 OPENR(2,P1)
3 DIM A$(30)
4 FOR I% = 1 TO 5
5 INP#(2,A$)
6 PRN#(1,A$)
7 NEXT
8 CLOSE(2)
9 CLOSE(1)
RESULT: PMeas_PRG:
N10 G1F100<LF>
1 A$=0123<LF>
2 B$=TEST<LF>
N20 X0 <LF>
M30 <LF>
<ETX><LF><LF>
If the structure was damaged by the editor, the following message ap-
pears: INVALID COMPONENT LENGTH.
FILENO
Logical file numbers are required to access files; these can have values
between 1 and 9, i.e. a maximum of 9 files can be opened at the same
time using CPL.
Command FILENO makes it possible to query the next valid logical file
number. If the function returns a value of -1, no free logical file number
is available. The function values type is integer.
Example:
10 LOG_NR%= FILENO
20 IF (LOG_NR% <> (-1)) THEN
30 OPENW(LOG_NR%,/user/usr/Test,130)
40 PRN#(LOG_NR%,Date: ,DATE)
50 CLOSE(LOG_NR%)
60 ELSE
70 PRN#(0,No free log. file number exists!)
80 ENDIF
M30
5-122 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
File Processing
VERSINF$
VERSINF$ makes it possible to query management data of the Indra-
Motion MTX in the CPL program.
The function supplies a value of type string.
Syntax:
VERSINF$(<Index1>[,<Index2>])
<Index1>: Integer constant type.
Function mode:
1: Read software version
2: Read hardware version
<Index2>: Integer type.
Auxiliary mode of the function, depending on the va-
lue of parameter <Index1>.
<Index1> = 1: No auxiliary mode exists
<Index1> = 2: Auxiliary mode:
1: Hardware type (default)
2: Vector group No.
3: Index of vector group No.
Example:
10 DIM SYS_INFO$(50)
20 SYS_INFO$ = VERSINF$(1)
30 PRN#(0,Software version: , SYS_INFO$)
M30
DIRINF
DIRINF makes it possible to query management data of the IndraMo-
tion MTX file system in the CPL program. The function supplies a value
of type Integer (for negative results, the real result is greater than the
maximum integer value, i.e. > 2,147,483,647).
File Processing
Return value:
Function mode 1: free storage space (in bytes)
Function mode 2: occupied storage space (in bytes)
Function mode 3: number of files present in the directory
Function mode 4: 0 (<ResVar> contains filename) or
1 (<ResVar> is NUL)
Example:
; Show all the file names in the /database directory
in
; the MSG window
10 DIM FILENAME$(30)
20 LJUST
30 DIR$= /database
40 ANZ_FILES%= DIRINF(3,DIR$)
50 FOR LNR%= 1 TO ANZ_FILES%
60 ERG%= DIRINF(4,DIR$,FILENAME$,LNR%)
70 PRN#(0,LNR%,: ,FILENAME$)
80 NEXT LNR%
M30
DIRCR
DIRCR makes it possible to create a new directory in the CPL program.
The function supplies a value of type integer.
Syntax:
DIRCR(<Directory>)
<Directory>: Directory name with complete path as a string expres-
sion.
If the path is not provided, the current directory is posi-
tioned in front of the string expression.
Return value:
0: Directory has been created
1: It is not possible to create a directory
5-124 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
File Processing
Example:
10 I% = DIRCR(/usr/user/test)
M30
DIRDEL
DIRDEL makes it possible to delete an empty directory in the CPL pro-
gram. The function supplies a value of type integer.
Syntax:
DIRDEL(<Directory>)
<Directory>: Directory name with complete path as a string expres-
sion.
Return value:
0: Directory has been deleted
1: Directory could not be deleted
Example:
10 I% = DIRDEL(/usr/user/test)
M30
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-125
and Controls
File Processing
LJUST, NJUST
With LJUST (= Left JUSTify), a change-over to left-justified data output
is carried out. It is effective up to the end of the program run for all data
outputs. NJUST (No JUSTify) makes it possible to return prematurely to
the formatted output.
Since blanks between the NC address and the value are suppressed,
LJUST makes it possible to use CPL to directly create NC programs
which can be executed under the AUTOMATIC mode.
PRN#
Syntax:
PRN#(<n>,[<Expression>][,<Expression>][,<Expression>][,...][;])
<n>: 1 to 9: Logical number of the file to be written.
0: Output is diverted to the monitor (as in the case of
message programming with the MSG command).
<Expression>: Any alphanumeric characters (text in inverted com-
mas), format strings or variables, the content of which is
to be saved/displayed.
; Suppresses the automatic addition of a <CR><LF>.
If a record is overwritten via the PRN# command, the fol-
lowing applies:
PRN# command with semicolon:
If the length of the new data to be written is shorter than
the length of the old data, the new data are inserted and
the rest of the old data is retained.
PRN# command without semicolon:
If the length of the new data to be written is shorter than
the length of the old data, the new data are inserted and
the rest of the old data is overwritten with blanks.
File Processing
A line feed can be initiated during output with CHR$(13), i.e. the further
output of the PRN#- command is continued in the next line (i.e. in the
next record).
Other control characters can be transferred with the CHR$() function,
e.g. when outputting via a serial interface.
RESULT in PProg123.PRG:
OVERWRITE - COMMAND WITH SEMICOLON<LF>
TEST2 FOR PRN-COMMAND WITH SEMICOLON<LF>
TEST3 FOR PRN-COMMAND WITH SEMICOLON<LF>
<ETX><LF>
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-127
and Controls
File Processing
RESULT in P2:
OVERWRITE <LF>
TEST2 FOR PRN-COMMAND W/O SEMICOLON<LF>
TEST3 FOR PRN-COMMAND W/O SEMICOLON<LF>
<ETX><LF>
The following error message appears if the length of the block exceeds
1024 characters: BLOCK EXCEEDS 1024 BYTES.
If a sequential file is written and the end of the file is reached, the file is
copied automatically and the reserved range increased by the occupied
length insofar as sufficient memory is available in the parts program me-
mory.
Since this very quickly takes up a great deal of memory, it is advisable to
reserve a sufficiently large file length when creating the file with
OPENW.
Example:
1 OPENW(1,P2,300,TEST PRN-COMMAND)
2 A$=TEST
3 B$=FOR
4 C$=PRN-COMMAND
5 PRN#(1,A$)
6 PRN#(1,B$)
7 PRN#(1,C$)
8 PRN#(1,A$;)
9 PRN#(1,B$;)
10 PRN#(1,C$;)
11 CLOSE(1)
Result:
P2:
TEST<LF>
FOR<LF>
PRN-COMMAND<LF>
TESTFORPRN-COMMAND<LF><ETX><LF>
5-128 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
File Processing
Example:
10 DIM E$(50)
20 OPENW(1,P2,300,TEST2)
30 A% = 5000
40 R = 1.231
50 B! = 4/3
60 D$ = ABCDE
70 E$ = CDEFGHI
80 PRN#(1,10;)
90 PRN#(1,#####,###.###,#.#####,A%,R,B!,D$,E$)
95 CLOSE(1)
P2:
10 5000 1.2311.33333ABCDECDEFGHI<LF>
A% R B! D$ E$
REWRITE
If data are already present in the opened file, the new data are normally
appended to the existing data when writing. An existing file can, howe-
ver, be overwritten by means of REWRITE without especially having to
delete the contents that are no longer required. When overwriting, the
range reserved in the OPENW-command remains available in the parts
program memory.
Syntax:
REWRITE(<n>)
<n>: Logical file number (range of values 1 - 9)
File Processing
INP#
With the INP# instruction, the ASCII data in an open file may be read in
record form and assigned to one or more variables. This command only
has an effect on files that were opened with OPENR(...).
INP#(<n>,<Variable>[,<Variable>][,...][;])
<n>: 1 to 9: Logical file number to be read from.
<Variable>:Variable under which the read data is stored.
; If a semicolon is programmed, the file pointer remains in the
record until the end of the record is reached. After that, the
next record is opened. Reading does not, however, auto-
matically take place there.
If no semicolon is programmed, the next record is opened
automatically.
P3:
1 OPENR(2,P2)
2 DIM C$(3)
3 DIM D$(3)
4 INP#(2,I%,J,L?,C$,K%,D$)
5 CLOSE(2)
RESULT:
I% = NUL
J = NUL
L? = NUL
C$ = ABC
K% = 123456789
D$ = ABC
5-130 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
File Processing
Result:
B% = -12
D$ = TEST ,since max. length of character field = 4
R(1.1) = 1,230
E$ = V
R(1,2) = 12.000
A$ = ABC ,since max. length of character field = 3
C$ = D2.4A
G$ = -12TEST1.23V12ABCD2.4A
H$ = -12TEST ,since max. length of character field = 7
I$ = 1.23V12 ,since max. length of character field = 7
J$ = ABCD2.4A
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-131
and Controls
File Processing
EOF
The EOF function allows a query to be made as to whether the end of file
(EOF) has been reached.
The EOF function returns the logical value TRUE if the end of the file is
reached during reading. Otherwise FALSE is returned.
Example:
:
9 DIM A$(10)
10 OPENR(1,P,444) : I%=0
11 WHILE NOT (EOF(1))DO
12 INP#(1,A$)
13 I%=I%+1
14 END
15 CLOSE(1)
M30
CLOSE
Closes a file.
A maximum of 9 files can be open at the same time. If, when 9 files are
open, access to a further file is necessary, you must first close a file.
Open files should therefore as a rule be closed immediately upon com-
pletion of read- or write operations.
Syntax:
CLOSE(<n>)
<n>: 1 to 9: Logical number of the file
that is to be closed.
Example:
:
90 DIM A$(35)
100 XPOS = MPOS(1)
110 YPOS = MPOS(2)
120 OPENW(1,P5,500,ACHSPOS)
130 REWRITE(1)
140 PRN#(1,X-axis,XPOS,YPOS,Y-axis,YPOS)
150 CLOSE(1)
160 OPENR(1,P5)
170 INP#(1,A$)
180 CLOSE(1)
:
5-132 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
File Processing
In the above example, the current positions of the X- and Y- axis are
transferred to variables (lines 90 to 110). File 1 is then opened and sto-
red as parts program P5 (line 120).
The file is subsequently written or overwritten and then closed (lines
140 to 150). The file is then opened for reading and assigned the con-
tents of the A$ variable. It is closed again after read access (lines 160 to
180).
FILEPOS
The FILEPOS() function returns the number of the current record of a
random file. This record can be accessed afterwards. It is also possible
to determine the record-offset within the current record of a random-file
or the offset from the current byte that can be accessed for a sequential
file. The file can therefore be a sequential or a random-file.
Offset refers to the number of bytes- from the top of the file up to the
current byte in a file. The record-offset specifies the byte at which posi-
tioning takes place within a record. The record-offset begins with the va-
lue 1 (= 1st byte in a record) and can have the maximum value of the
record-length + 1 (last byte in this record is <LF>). The value 1 is retur-
ned if you are on the EOF-pointer.
Syntax:
FILEPOS(<n>[,<mode>])
<n>: 1 to 9: Logical number of the file in which the position of
the file pointer is to be read.
If the range of values is not adhered to, the following error
message appears: INVALID FILE NUMBER
<Mode>: With random-files: Range of values = 1 to 3
<mode> = 1:
Supplies the offset to the current byte which can be read or
written.
<mode> = 2:
Supplies the record-number of the current record which can
be read or written. The result is as follows if you are on the
EOF-pointer: Number of records + 1.
<mode> = 3:
This command supplies the record-offset within the current
record which can be read or written. The record-offset be-
gins with the value 1 (. 1st byte in this record) and can have
the maximum value of the record-length + 1 (. last byte in
this record is <LF>).
The value 1 is returned if you are on the EOF-pointer and
reading from the file is not permitted.
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-133
and Controls
File Processing
. If the range of values of <Mode> is not adhered to, the following er-
ror message appears: INVALID PARAMETER.
Result:
POS% = 3 -> byte number
POS1% = 3 -> byte number
POS2% = 171 -> byte number
POS3% = 171 -> byte number
5-134 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
File Processing
Result:
POS% = 3 > number of record of current position
POS1% = 258 > byte number
POS2% = 3 > number of record of current position
POS3% = 2 > position within 3rd record
POS% = 11 > number of record of current position
POS1% = 1281 > byte number
POS2% = 11 > number of record of current position
POS3% = 1 > position within 3rd record
SEEK
Positions the file pointer at a certain position of an open file. The file may
be a sequential or a random-file.
With sequential files, the file must be opened with the command
OPENR(..). For random-files, the command OPENW(..) is also per-
missible.
Syntax:
SEEK(<n>,<k>[,<o>])
<n>: Logical number of the file in which the file pointer is to be
positioned.
Range of values: 1 through 9
If the range of values is not adhered to, the following error
message appears: INVALID FILE NUMBER
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-135
and Controls
File Processing
File Processing
FILESIZE
Supplies the size of a file, or the limit up to which a file has already been
written. The file can be a sequential or a random-file. This command
only has an effect on files that were opened with OPENR(...).
Syntax:
FILESIZE(<n>[,<k>])
<n>: 1 to 9
Logical number of the file of which the size is to be determi-
ned. If the range of values is not adhered to, the following
error message appears: INVALID FILE NUMBER
<k>: With random files: Range of values = 1 to 4
With sequential files: Range of values = 1 to 2
<k> = 1:
Total memory area size (in bytes) used by a file.
<k> = 2:
Memory area size (in bytes) used from the start of the data
range up to the EOF pointer (excluding the size of the EOF
pointer).
<k> = 3:
Maximum number of records in a file. This result depends
on the record-length with which the file was opened.
<k> = 4:
Number of records from the start of the file up to the EOF-
pointer. This result depends on the record-length with which
the file was opened.
<k> not programmed:
Like <k> = 1.
If the range of values for <k> is not adhered to, the following
error message appears: INVALID PARAMETER.
File Processing
File Processing
ERASE
Erases files in the current directory.
Syntax:
ERASE(<Prog-identifier>)
<PGM identifier> STRING expression; max. 30 characters.
Otherwise the INVALID FILE NAME error message
appears.
Examples:
10 IF ERASE(P1) <> 0 THEN ...
10 I% = ERASE(P1)
Example:
10 OPENW(1,P2,200)
11 OPENW(2,P3,200)
20 PRN#(1,TEST1 FOR ERASE)
21 PRN#(2,TEST2 FOR ERASE)
31 CLOSE(1)
32 CLOSE(2)
40 ERASE(P2)
43 A$=P3
44 ERASE(A$)
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-139
and Controls
File Processing
FILEACCESS
With FILEACCESS of the CPL program, it is possible to tell whether a
file exists and which access rights (privileges) it has.
Syntax:
FILEACCESS( <File name>)
<File name> File name with a complete path as a string expres-
sion.
If the file name contains no path, the file is searched in
the current directory. The CPL-function supplies the
return value as an integer-value:
-1 : file does not exist
0: : file without access rights
otherwise : binary-coded access rights:
Bit1: execution possible (X)
Bit2: writing allowed (W)
Bit3: reading allowed (R)
Bit4: file is a directory (D)
Bit5: file is an active program (A)
Example:
10 I% = FILEACCESS(/usrfep/test.cnc)
5-140 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
File Processing
FILEDATE
In the CPL-program, the date of a file can be determined with FILE-
DATE.
An access error does not generate a parts program error; instead, the
function supplies an empty string.
Syntax:
FILEDATE(<File name>[,<Mode>])
where:
<File name> File name with a complete path as a string expres-
sion.
If the file name contains no path, the file is searched in
the current directory. The CPL-function supplies a
string-expression as a return value.
<Mode> Integer variable for the function mode
(default = 1):
1 = Date of the file, format: dd.mm.yy
2 = Time of the file, format: hh.mm.ss
Example:
10 DIM DATE$(10)
20 DATE$ = FILEDATE(/usr/user/Test.txt,1)
30 IF LEN(DATE$)>0 THEN
40 PRN#(0,File date: ,DATE$)
50 ENDIF
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG 5-141
and Controls
File Processing
FILECOPY
FILECOPY is used to copy a file in the CPL program.
Syntax:
FILECOPY(<Source file>,<Target file>)
where:
<Source file> File name with the complete path of the source file as
a string expression. If the file name contains no path,
the file is searched in the current directory.
<Target file> File name with the complete path of the target file as a
string expression. If the file name contains no path,
the file is created in the current directory.
ERRNO CPL variable that can be programmed in any position.
When ERRNO is programmed, no runtime error is is-
sued; the return values are:
0: Access OK
-8: name of source file, including path, is too long
-9: access to source file impossible
-10: name of target file, including path, is too long
-11: file name (source or target) invalid
-12: copying impossible.
Example:
10 FILECOPY(/usr/user/Test.txt, /usr/user/Test.bak,
ERRNO)
20 IF ERNO = 0 THEN
30 PRN#(0,Copying procedure OK)
40 ENDIF
5-142 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Communication
5.16 Communication
MMC
Sends information regarding the program running time from a subrou-
tine to a client and waits for the result from this client.
This is carried out with the aid of CPL variables, which can send values
from the parts program as well as return values to the parts program.
The parts program is stopped during runtime at the point where the
MMC command is received.
Syntax:
MMC(<CPL Var1>[,<Cpl Var2>....[,<Cpl VarN>]....])
Communication
Example:
10 DIM PROGNAME$ (50)
20 PROGNAME$=WinProg
30 INTPAR%=1
40 REALPAR=1.1
50 I%=MMC(PROGNAME$, CPL variables PROGNAME$, INT-
INTPAR%,REALPAR) PAR% and REALPAR are made avai-
lable, with their values, to the client.
60 IF I%=0 THEN The block preparation of the parts
70 IF INTPAR%=2 THEN program is not continued in line 60
80 ... until a corresponding finished mes-
90 ELSE sage has arrived.
100 ...
110 ENDIF
120 ENDIF
5-144 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Communication
Notes:
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG A-1
and Controls
Appendix
A Appendix
A.1 Abbreviations
Abbrevia- Meaning
tion
OM Operating mode
UI User interface
CSE Components sensitive to electrostatic
discharge
ESD Electrostatic discharge
Abbreviation for all designations that
are concerned with electrostatic di-
scharge, e.g. ESD protection, ESD-
sensitive.
Fx Function key with the number x
MP Main program
LSEC Lead screw error compensation
MDI Operating mode manual data input
MP Machine parameter
MSD Machine status display
NC, CNC Numerical control
PE Protective earth
SK Softkey
PLC Programmable logic control
SR Subroutine
MTB Machine tool builder
T Tool
A-2 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Appendix
// - - Comment 2-21
Appendix
ATrans ATR Program coor- ATR(X..., Y..., Z..., ...): Additive program coordi- 4-153
dinate offset nate offset ON
ATR( ): Additive program coordinate offset OFF
Appendix
Appendix
CLRWARN - CPL Delete all the warnings of a channel that were 2-59 - -
generated with SETWARN.
COF - CPL COF(<Axis selection>[,<Selection type>]) 5-16 COF -
Supplies the last-programmed contour shift of
a coordinate for the current channel.
Coord CRD Axis transfor- CRD(x): Switch axis transformation on 4-30 Coord G30ff.
mation CRD( ): Switch axis transformation off
e.g. end surface transformation
A-6 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Appendix
Appendix
FeedForward FFW Servo control FFW(X..., Y..., Z..., ...): switch on 4-42 G114/G115 G6/G7
FFW( ): switch off
Activate servo control
Appendix
FOR NEXT - CPL FOR <Count.var.>=<Start val> [STEP spac- 2-42 FOR NEXT -
ing>] TO <End val><Routine>
NEXT [<Count.variable>]
Loop construction with automatically updated
counter.
Appendix
G08 G8 Path slope Path slope on with path SHAPE according to 3-21 G08 G08
machine parameters
G08(SHAPE...) - Path slope Path slope ON with programmed path SHAPE 3-23 G108 G08
G09 G9 Path slope Path slop OFF (without SHAPE) 3-21 G09 G09
G154.2 - - IP page 2-5 Placement: 1st inclined plane, page 2-5 ON 3-83 G454/G554
G154.5
G155.1 G155 IP page 1 Placement: 2nd inclined plane, page 1 ON 3-83 G355
G155.2 - - IP page 2-5 Placement: 2nd inclined plane, page 2-5 ON 3-83 G455/G555
G155.5
G156.1 G156 IP page 1 Placement: 3rd inclined plane, page 1 ON 3-83 G356
G156.2 - - IP page 2-5 Placement: 3rd inclined plane, page 2-5 ON 3-83 G456/G556
G156.5
G157.1 G157 IP page 1 Placement: 4th inclined plane, page 1 ON 3-83 G357
A-10 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Appendix
G158.2 - - IP page 2-5 Placement: 5th inclined plane, page 2-5 ON 3-83 G458/G558
G158.5
G159.1 G159 IP page 1 Placement: 6th inclined plane, page 1 ON 3-83 G359
G159.2 - - IP page 2-5 Placement: 5th inclined plane, page 2-5 ON 3-83 G459/G559
G159.5
G16 - Plane selec- no plane 3-27 G16 -
tion
G17 - Plane selec- Plane selection XY 3-28 G17/G20 G17/G20
tion
G17(...), - Plane selec- Expanded plane switching 3-30 - -
G18(...), tion G17/18/19( <Axis1>,<Axis2>,<Axis3>)
G19(...) The axes in parentheses open the WCS and
receive the meaning X, Y and Z.
Then the programmed plane is selected.
G17/18/19( )
Reset the workpiece coordinate system to the
default setting and then select the programmed
plane.
G40 - Path compen- Cutter path compensation OFF 3-39 G40 G40
sation
G41 - Path compen- Cutter path compensation to left of workpiece 3-39 G41 G41
sation
G42 - Path compen- Cutter path compensation to right of workpiece 3-39 G42 G42
sation
G43 - Insertion stra- Insertion strategy, arc 3-41 G68 G43
tegy
G44 - Insertion stra- Insertion strategy, intersection 3-41 G69 G44
tegy
G45 - Velocity, mil- Velocity, milling machine point of engagement 3-43 G64 G99
ling machine
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG A-11
and Controls
Appendix
G47(..) - Tool correction G47(<L1 coord>,<L2 coord>,<L3 coord>) 3-44 G146/8 G47
G47(ActPlane)
Tool length correction ON with switching of
correction assignment.
G47( ): Tool length correction ON with correc-
tion assignment according to machine parame-
ters.
G48 - Tool correction Tool length correction OFF 3-44 G145/7ff. G48/G49
G53.1-G53.5 - ZO page 1-5 Zero offset page 1-5 OFF 3-46 G53-G253
G54.2-G54.5 - ZO page 2-5 1st zero offset, page 2-5 ON 3-46 G54-G254
G55.2-G55.5 - ZO page 2-5 2nd zero offset, page 2-5 ON 3-46 G55-G255
G56.2-G56.5 - ZO page 2-5 3rd zero offset, page 2-5 ON 3-46 G56-G256
G57.2-G57.5 - ZO page 2-5 4th zero offset, page 2-5 ON 3-46 G57-G257
G58.2-G58.5 - ZO page 2-5 5th zero offset, page 2-5 ON 3-46 G58-G258
G59.2-G59.5 - ZO page 2-5 6th zero offset, page 2-5 ON 3-46 G59-G259
G61(IPS...) - Precise stop Precise stop with precise stop window IPS1, 3-49 G61/G161 G61
IPS2 or IPS3
G62 - Precise stop Precise stop off 3-49 G62/G162 G62
G63 - Thread G63(M3/M4, S.../H...) F... Z... ... 3-51 G32 G63/G64
Rigid tapping
G70 - Inch/metric Inch programming, 3-53 G70 G70
affects the programmed path and length units,
feeds and acceleration.
Appendix
G81 - Drilling cycle Drilling cycle: Drilling with retraction in rapid 3-62 G81 DEFINE
traverse
G82 - Drilling cycle Drilling cycle: Drilling with retraction in feed 3-63 G82 DEFINE
G83 - Drilling cycle Drilling cycle: Deep hole drilling 3-64 G83 DEFINE
G84 - Drilling cycle Drilling cycle: Floating tapping 3-65 G84 DEFINE
G85 - Drilling cycle Drilling cycle: Drilling out with retraction in 3-66 G85 DEFINE
rapid traverse
G86 - Drilling cycle Drilling cycle: Drilling out with retraction in feed 3-67 G86 DEFINE
G94 - Feed prog. Feed programming (per min) 3-71 G94 G94
G94(...) - Feed prog. G94({DF <Value>,} { DS1 <Value>, DS2 3-72 G94 G94
<Value>, ...} )
Incremental velocity programming with accel-
eration adaptation.
G95 - Feed prog. Feed programming (per rotation) 3-74 G95 G95
Appendix
Appendix
Appendix
Appendix
NJUST - CPL Premature reset from left-justified data output 5-125 NJUST -
to formatted output.
NOT - CPL NOT <Expression> 2-64 NOT -
Negation of a BOOLEAN expression / bitwise
negation of an INTEGER expression.
Appendix
PoleSet PLS Set pole PLS(X..., Y..., Z...): Set pole 4-101 G37/G39
PLS( ): Pole at origin
Pole for help in making mirroring/rotation en-
tries.
PosMode PMD Positioning PMD(A..., B...) : switch positioning type 4-102 G151/G150 G36ff.
type PMD( ): Positioning type acc. to machine pa-
rameters
Positioning type for endless axes
Appendix
Appendix
S S - S<Number>=<Value> 3-97 S
S<Value>
Program spindle speed
Appendix
Appendix
Appendix
TangToolOri TTO Tangential tool TTO(SYM..., ANG...): Tangential tool orienta- 4-145 G630/G631 -
orient. tion ON
TTO( ): Tangential tool orientation OFF
Appendix
Appendix
Appendix
// - - Comment 2-21
Appendix
Appendix
Appendix
Appendix
Appendix
Shift SHT - SHT(X..., Y ..., Z ..., ...) : Contour offset 4-124 G60/G67 -
ON
SHT( ): Contour offset OFF
Appendix
Appendix
Appendix
AxAcc AAC Axis accel. AAC(X..., Y..., Z..., ...): switch on 4-17 G6/G7 -
AAC(1): switch on with saved
setting
AAC( ): switch off
Program axis acceleration
PathAcc PAC Path accel. PAC(ACC... | UP..., DOWN ...) : switch on 4-91 G106/G107 ACC
PAC( ): switch off
Path acceleration programming, either sepa-
rately for acceleration and braking or com-
bined.
G40 - Path compen- Cutter path compensation OFF 3-39 G40 G40
sation
G41 - Path compen- Cutter path compensation to left of workpiece 3-39 G41 G41
sation
G42 - Path compen- Cutter path compensation to right of workpiece 3-39 G42 G42
sation
G08 G8 Path slope Path slope ON with path SHAPE according to 3-21 G08 G08
machine parameters
G08(SHAPE...) - Path slope Path slope ON with programmed path SHAPE 3-23 G108 G08
G09 G9 Path slope Path slop OFF (without SHAPE) 3-21 G09 G09
Appendix
G81 - Drilling cycle Drilling cycle: Drilling with retraction in rapid 3-62 G81 DEFINE
traverse
G82 - Drilling cycle Drilling cycle: Drilling with retraction in feed 3-63 G82 DEFINE
G83 - Drilling cycle Drilling cycle: Deep hole drilling 3-64 G83 DEFINE
G84 - Drilling cycle Drilling cycle: Floating tapping 3-65 G84 DEFINE
G85 - Drilling cycle Drilling cycle: Drilling out with retraction in 3-66 G85 DEFINE
rapid traverse
G86 - Drilling cycle Drilling cycle: Drilling out with retraction in feed 3-67 G86 DEFINE
Appendix
CLRWARN - CPL Delete all the warnings of a channel that were 2-59 - -
generated with SETWARN.
COF - CPL COF(<Axis selection>[,<Selection type>]) 5-16 COF -
Supplies the last-programmed contour shift of
a coordinate for the current channel.
Appendix
Appendix
FOR NEXT - CPL FOR <Count.var.>=<Start val> [STEP spac- 2-42 FOR NEXT -
ing>] TO <End val><Routine>
NEXT [<Count.variable>]
Loop construction with automatically updated
counter.
Appendix
NJUST - CPL Premature reset from left-justified data output 5-125 NJUST -
to formatted output.
NOT - CPL NOT <Expression> 2-64 NOT -
Negation of a BOOLEAN expression / bitwise
negation of an INTEGER expression.
Appendix
Appendix
Appendix
Appendix
Appendix
FlyMeas FME Measurement FME(MpiAxis< i>) X... Y... Z... 4-44 G275 -
on-the-fly Movement with on-the-fly measurement
G61 Precise stop Precise stop 3-49 G61/G161 G61
G61(IPS...) - Precise stop Precise stop with precise stop window IPS1, 3-49 G61/G161 G61
IPS2 or IPS3
G62 - Precise stop Precise stop off 3-49 G62/G162 G62
G63 - Thread G63(M3/M4, S.../H...) F... Z... ... 3-51 G32 G63/G64
Rigid tapping
ThreadSet TST Thread Thread cutting, auxiliary functions 4-151
Appendix
G53.1-G53.5 - ZO page 1-5 Zero offset page 1-5 OFF 3-46 G53-G253
G54.2-G54.5 - ZO page 2-5 1st zero offset, page 2-5 ON 3-46 G54-G254
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG A-45
and Controls
Appendix
G56.2-G56.5 - ZO page 2-5 3rd zero offset, page 2-5 ON 3-46 G56-G256
G57.2-G57.5 - ZO page 2-5 4th zero offset, page 2-5 ON 3-46 G57-G257
G58.2-G58.5 - ZO page 2-5 5th zero offset, page 2-5 ON 3-46 G58-G258
G59.2-G59.5 - ZO page 2-5 6th zero offset, page 2-5 ON 3-46 G59-G259
PoleSet PLS Set pole PLS(X..., Y..., Z...): Set pole 4-101 G37/G39
PLS( ): Pole at origin
Pole for help in making mirroring/rotation en-
tries.
PosMode PMD Positioning PMD(A..., B...): switch positioning type 4-102 G151/G150 G36ff.
type PMD( ): Positioning type acc. to machine pa-
rameters
Positioning type for endless axes
ATrans ATR Program coor- ATR(X..., Y..., Z..., ...): Additive program coordi- 4-153
dinate offset nate offset ON
ATR( ): Additive program coordinate offset OFF
Trans TRS Program coor- TRS( X ..., Y ..., Z ..., ...): Program coordinate 4-153 G60/G67
dinate offset offset ON
TRS( ): Program coordinate offset OFF
G155.1 G155 IP page 1 Placement: 2nd inclined plane, page 1 ON 3-83 G355
G156.1 G156 IP page 1 Placement: 3rd inclined plane, page 1 ON 3-83 G356
G157.1 G157 IP page 1 Placement: 4th inclined plane, page 1 ON 3-83 G357
G158.1 G158 IP page 1 Placement: 5th inclined plane, page 1 ON 3-83 G358
G159.1 G159 IP page 1 Placement: 6th inclined plane, page 1 ON 3-83 G359
G153.1-G153.5 - IP page 1-5 Placement: Inclined plane page 1-5 OFF 3-83, G353
3-83
G152.2-G152.5 - IP page 2-5 Placement: Inclined plane, programmable, 3-83 G452
page 2-5
G154.2-G154.5 - IP page 2-5 Placement: 1st inclined plane, page 2-5 ON 3-83 G454/G554
G155.2-G155.5 - IP page 2-5 Placement: 2nd inclined plane, page 2-5 ON 3-83 G455/G555
G156.2-G156.5 - IP page 2-5 Placement: 3rd inclined plane, page 2-5 ON 3-83 G456/G556
A-46 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Appendix
G158.2-G158.5 - IP page 2-5 Placement: 5th inclined plane, page 2-5 ON 3-83 G458/G558
G159.2-G159.5 - IP page 2-5 Placement: 5th inclined plane, page 2-5 ON 3-83 G459/G559
Mirror MIR Mirror imaging MIR(X1, Y1,Z1,...): Mirroring of coordinates 4-73 G38/G39
ON
MIR( ): Mirroring of coordinates OFF
Appendix
G94 - Feed prog. Feed programming (per min) 3-71 G94 G94
G94(...) - Feed prog. G94({DF <Value>,} { DS1 <Value>, DS2 3-72 G94 G94
<Value>, ...} )
Incremental velocity programming with accel-
eration adaptation.
G95 - Feed prog. Feed programming (per rotation) 3-74 G95 G95
FeedForward FFW Servo control FFW(X..., Y..., Z..., ...): switch on 4-42 G114/G115 G6/G7
FFW( ): switch off
Activate servo control
G47 - Tool correction Switch on tool length correction 3-44 G146/8 G47
G47(..) - Tool correction G47(<L1 coord>,<L2 coord>,<L3 coord>) 3-44 G146/8 G47
G47(ActPlane)
Tool length correction ON with switching of
correction assignment.
G47( ): Tool length correction ON with correc-
tion assignment according to machine parame-
ters.
G48 - Tool correction Tool length correction OFF 3-44 G145/7ff. G48/G49
TangTool TTL Tool orient. TTL(TAX..., SYM..., ANG..., IA..., PLC...): 4-142 G131/G130 -
Tangential tool guidance ON
TTL( ): Tangential tool guidance OFF
A-48 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Appendix
Dec. Hex ASCII Dec. Hex ASCII Dec. Hex ASCII Dec. Hex ASCII
0 00 NUL 32 20 SP 64 40 @ 96 60
1 01 SOH 33 21 ! 65 41 A 97 61 a
2 02 STX 34 22 " 66 42 B 98 62 b
3 03 ETX 35 23 # 67 43 C 99 63 c
4 04 EOT 36 24 $ 68 44 D 100 64 d
5 05 ENQ 37 25 % 69 45 E 101 65 e
6 06 ACK 38 26 & 70 46 F 102 66 f
7 07 BEL 39 27 71 47 G 103 67 g
8 08 BS 40 28 ( 72 48 H 104 68 h
9 09 HT 41 29 ) 73 49 I 105 69 i
10 0A LF 42 2A * 74 4A J 106 6A j
11 0B VT 43 2B + 75 4B K 107 6B k
12 0C FF 44 2C , 76 4C L 108 6C l
_
13 0D CR 45 2D 77 4D M 109 6D m
14 0E SO 46 2E . 78 4E N 110 6E n
15 0F SI 47 2F / 79 4F O 111 6F o
16 10 DLE 48 30 0 80 50 P 112 70 p
17 11 DC1 49 31 1 81 51 Q 113 71 q
18 12 DC2 50 32 2 82 52 R 114 72 r
19 13 DC3 51 33 3 83 53 S 115 73 s
20 14 DC4 52 34 4 84 54 T 116 74 t
21 15 NAK 53 35 5 85 55 U 117 75 u
22 16 SYN 54 36 6 86 56 V 118 76 v
23 17 ETB 55 37 7 87 57 W 119 77 w
24 18 CAN 56 38 8 88 58 X 120 78 x
25 19 EM 57 39 9 89 59 Y 121 79 y
26 1A SUB 58 3A : 90 5A Z 122 7A z
27 1B ESC 59 3B ; 91 5B [ 123 7B {
28 1C FS 60 3C < 92 5C \ 124 7C I
29 1D GS 61 3D = 93 5D ] 125 7D }
30 1E RS 62 3E > 94 5E " (! ) 126 7E ~
31 1F US 63 3F ? 95 5F !(!_!) 127 7F DEL
:!!!Characters!that!are!skipped!by!default!when!they!are!read!in.
141 SOFTKEY1
142 SOFTKEY2
143 SOFTKEY3
144 SOFTKEY4
145 SOFTKEY5
146 SOFTKEY6
147 SOFTKEY7
148 SOFTKEY8
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG A-49
and Controls
Appendix
A.5 Index
Zeichen ATCAL, 4-11
; (Start remark), 2-21 ATFWD, 4-13
( (Start remark), 2-21 ATGET, 4-14
) (End remark), 2-21 ATPUT, 4-15
$ (channel designation), 2-20 ATrans, 4-154
/ (Skip block), 2-38 ATS, 4-22 , 4-154
// (Start remark), 2-21 Attributes, 2-15
| (separator for alternative parameters), 2-11 , 3-2 , AxAcc, 4-17
4-1 AxAccSave, 4-17
\\ (End remark), 2-21 AXC, 4-20
AxCouple, 4-20
Zahlen Axis acceleration
3D tool radius compensation, 3-79 change, 4-17
save, 4-17
A Axis addresses, 2-16
AAC, 4-17 variable, 5-50
AAS, 4-17 Axis coupling, 4-19
ABS, 2-62 Axis designation, 2-16
Absolute dimension programming, 3-69 Axis distance control for digitizing, 4-37
local, 3-69 Axis name, 2-16
AC (Local absolute dimension programming), 3-69 Axis positions, reading, 5-4
Acceleration Overview, 5-2
axis, 4-17 Axis transfer
path, 4-91 area monitoring, 4-3
Acceleration interpolators, 4-68 Assign logical axis name, 4-10
Access privileges to files, 2-1 Integrate axis, 4-51
ACOS, 2-63 remove an axis from an axis group, 4-113
ACS, 5-9 Remove logical axis name., 4-114
Activate D-correction tables, 4-33 switch off C-axis mode, 4-22
Activate tables, 4-33 , 4-160 switch spindle to C-axis mode, 4-135
Placement tables, 4-95 Transfer axis, wait if necessary, 4-156
Activate zero offset tables, 4-160 Transfer default axis setting from MP, 4-34
Additional conditions, 2-8 AxisToSpindle, 4-22
ALN, 4-10 AXO, 5-15
AND, 2-64 AXP, 5-50
Angle brackets, 2-11
Angular offset while coupling is active, 4-130 B
Angular offset, wait for, 4-131 Backwards jump, 2-34
APOS, 5-11 BCD, 2-65
ARA, 4-2 BCR, 4-24
Arc (contour transition), 3-41 BcsCorr, 4-24
Area, 4-2 BIN, 2-65
area monitoring, 4-2 BITIF, 5-51
ARRAY, 2-53 Blank lines, 2-7 , 2-21
ASC, 5-105 BlkNmb, 2-72
ASIN, 2-63 Block duration, 3-70
AssLogName, 4-10 Block execution, DIN - CPL differences, 2-4
ASTOPA / ASTOPO, Channel synchronization by mo- Block number
vement stop, 2-79 Block preparation limit, 2-72
Asynchronous axes, velocity, 3-96 N instruction, 2-20
ATAN, 2-63 Block preparation limit: Block number, 2-72
A-50 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Appendix
Block transition using high-speed signal Compensation switching G78, G79, 3-60
Block transition on-the-fly, 4-52 , 4-53 Components sensitive to electrostatic discharge, 1-7
Block transition with cancellation, 4-56 Conditional jump, 2-35
BNB, 2-72 Constant cutting speed, 3-75
BOOLEAN, 2-48 , 2-52 Constant speed interpolator, 4-68
Brackets Constants, 2-66
angle, 2-11 , 3-2 , 4-1 double-precision, 2-66
curly, 2-11 , 3-2 , 4-1 ConstFeed, 4-69
square, 2-3 Contour error, 4-104
Braking interpolators, 4-69 Contour offsets, 5-16
Branch instructions, 2-24 , 2-38 Contour shift, programmed, 4-124
BSTOPA / BSTOPO, Channel synchronization by mo- Contour transitions for cutter path compensation,
vement stop, 2-81 3-41
Conversion, numeric systems, 2-65
C Coolant ON, 3-87 , 3-88
Calibration of axis kinematics Coord, 4-31
convert parameters, 4-13 Coordinate coupling, in same channel, 4-39
optimize parameters, 4-11 Coordinate designator, 2-16
read parameter from NC, 4-14 Coordinate name, 2-16
write parameter to NC, 4-15 Coordinate positions, reading, 5-4
CALL, 2-29 Overview, 5-2
CASE-LABEL...LABEL-OTHERWISE-ENDCASE, Correcting the tool length, 3-44
2-40 COS, 2-63
Center point programming, 3-10 Coupled groups: defining, activating, canceling, deac-
CFD, 4-69 tivating, 4-127
Chamfer length, 4-25 CoupleSplineTab, 4-32
Chamfer programming, 4-25 coupling lag of following spindle, 4-128
Chamfer segment, 4-25 CPL instructions, 2-3 , 2-61
Change the path acceleration, 4-91 CPL jump, 2-37
Channel designation, 2-20 CPL programming, 2-2
CHARACTER, 2-48 , 2-54 CRD, 4-31 , 4-32
Character fields, dimensioning, 5-101 CSE, 1-7
Character string constant, 2-67 Curly brackets, 2-11
Character strings and numbers, 5-105 Cutter center point (feedrate compensation), 3-43
CHL, 4-26 Cutter contact point (feedrate compensation), 3-43
ChLength, 4-26 Cutter path compensation, 3-39
CHR$, 5-105 contour transitions, 3-41
CHS, 4-26 feedrate compensation, 3-43
ChSection, 4-26 Cutting speed, constant, 3-75
Circle with tangential entry, 3-14
Circular/helical interpolation, 3-7 D
CLN, 4-28 D-correction, 3-99
CLOCK, 5-53 DATE, 5-53
CLOSE, 5-131 DAX, 4-34
CLRWARN, 2-59 DBSEA, 5-25
CO programming, 4-62 DBTAB, 5-24
Code characters, 2-67 DCA, 4-37
Coefficient programming, Spline, 3-16 DcAxis, 4-37
COF, 5-16 DCB, 4-38
COFFS, 3-80 DcBreak, 4-38
Collision, 4-27 DCC, 4-38
Collision monitoring function, 4-27 DcCont, 4-38
Communication, 5-142 DCF, 4-37
Comparison operations, 2-65 DcFilter, 4-37
R911309064 / 02 IndraMotion MTX Electric Drives Bosch Rexroth AG A-51
and Controls
Appendix
DCL, 4-38 F
DcLimit, 4-38 F-address, 3-95
DCM, 4-38 F-word, 3-95
DcMon, 4-38 F-word (feed)
DCR, 4-37 per min., 3-71
DCS, 4-33 per rot., 3-74
DCT, 5-23 F-word (time), 3-70
DcTSel, 4-33 FA address, 3-96
Deactivate plane, 3-27 FA word, 3-96
Decision instructions, 2-24 , 2-38 FAD, 4-41
DefAxis, 4-34 Feed, 3-5 , 3-96
Define mirroring point, 4-101 F-address, 3-95
Define rotation point, 4-101 synchronous axes, 3-95
Definition of spline type, 4-136 Feed 100%, 4-90
DIA, 4-35 Feed forward control, 4-42
Diameter programming, 4-35 Feed programming
Digitizing, Axis distance control, 4-37 incremental, 3-72
DIM, 5-101 per min, 3-71
DIRCR, 5-123 per rot., 3-74
DIRDEL, 5-124 FeedAd, 4-41
Direct speed programming, 3-75 FeedForward, 4-42
DIRINF, 5-122 Feedrate compensation for cutter path compensation,
DistCtrl, 4-37 3-43
Divide traversing block Feedrate computing, hide axes, 4-41
general information, 4-138 FFW, 4-42
length of partial path, 4-64 Field variable, 2-53
number of partial paths, 4-78 File
DN, 3-16 closing, 5-131
DOUBLE, 2-48 , 2-52 copy, 5-141
DPC, 5-17 describing, 5-125
Drives, virtual, 4-155 determine access rights, 5-139
Dwell time, 3-13 determine date, 5-140
determining size, 5-136
E erasing, 5-138
EBC, 3-18 name, 5-117
ED-correction, 3-100 pointer position, 5-132
EMC Directive, 1-1 opening, 5-119
EMERGENCY STOP devices, 1-6 reading, 5-129
End of main program, 3-86 recognition of end, 5-131
End of program, 2-17 , 3-86 setting pointer, 5-134
End of subroutine, 2-17 File processing, 5-117
End position coupling, 4-39 File structure
Endless axes, switch positioning type, 4-102 random, 5-118
EndPosCouple, 4-39 sequential, 5-118
EOF, 5-131 File system and file protection, 2-1
ERASE, 5-138 FILEACCESS, 5-139
ERRNO, 2-56 FILECOPY, 5-141
Error return values, 5-57 FILEDATE, 5-140
Errors and error categories, 5-54 FILENO, 5-121
ESD FILEPOS, 5-132
protection, 1-7 FILESIZE, 5-136
workplace, 1-7 Fixed stop
measuring at, 4-46
move to, 4-48
A-52 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Appendix
Appendix
Appendix
Appendix
PoleSet, 4-101 R
POP, 4-96 RAD, 4-35
PosDepHSOut, 4-93 Radius programming, 3-9 , 4-35
Position-dependent high-speed output, 4-93 Ramp functions, 4-68
Positioning type for endless axes, 4-102 Rapid traverse, 3-3
PosMode, 4-102 RAX, 4-113
PPOS, 5-14 RDT, 4-112
Precise stop REAL, 2-52 , 2-66
ON/OFF (G61,G62), 3-49 RED, 4-116
rapid traverse (G00), 3-3 RedTorque, 4-112
precision programming, 4-104 Reduction of maximum torque, 4-112
PrecProg, 4-105 Relative dimension programming, 3-69
PRN#, 5-125 local, 3-69
PROBE, 5-13 REM, 2-22
Probe, 3-57 Remarks, 2-21
reading, 5-12 nested, 2-21
Program RemAxis, 4-113
interrupt, 3-85 RemLogName, 4-114
interrupt conditionally, 3-85 remove an axis from an axis group, 4-113
terminate, 3-86 Remove axis name (log.), 4-114
Program blocks, 2-7 Rename axis (log. axis name), 4-10
Program design, 2-20 Repeat instructions, 2-24 , 2-42
Program execution, 2-24 REPEAT-UNTIL, 2-43
Program remarks, 2-21 REPOSTP, 4-115
Program speed (spindle), 3-97 Reserved instruction words, 2-60
Program stop, 3-85 REWRITE , 5-128
conditional, 3-85 Rigid tapping, 3-51
Program words, 2-10 Spindle selection, 4-147
as parameter, 2-13 RLN, 4-114
from NC functions, 2-11 RND, 4-119
Programmable path split, 4-138 RNE, 4-118
Programmed contour shift, 4-124 Rotate, 4-116
Programming attributes, 2-15 Rotating a contour, 4-116
Programming Examples ROTAX(), 4-79
character strings, 5-109 ROUND, 2-63
NCS functions, 5-96 RoundEps, 4-118
Programming notes, 2-23 Rounding, 4-119
Proper use, 1-1 Rounding corners
Providing handling instructions, 2-23 with deviation information, 4-118
PRP, 4-105 with radius information, 4-119
psi, 4-79
PtBlkEnd, 4-106 S
PTD, 4-108 S-word, 3-97
PtDefault, 4-108 S2D, 4-69
PTE, 4-106 S2U, 4-69
PTI, 4-109 SBC, 3-18
PtInpos, 4-109 Scale, 4-120
PUN, 4-110 Scaling, 4-120 , 5-35
Punch, 4-110 SCC, 4-122
Punching, 4-110 SCL, 4-120 , 5-35
PW, 3-20 SCS, 5-38
SCSL, 5-39
Q SD, 5-41
Qualified personnel, 1-3 SDF, 4-136
A-56 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Appendix
Appendix
System data U
simple types, 5-36 Unconditional jump, 2-36
structured types, 5-48 Unconditional jump with CPL, 2-37
T V
TAN, 2-63 VAL, 5-107
Tangential circle entry, 3-14 Variable programming, 2-45
Tangential tool guidance, 4-142 Variable types, 2-52
Tangential tool orientation, 4-145 Variables
TangTool, 4-143 CHARACTER, 2-54
TangToolOri, 4-145 definable permanent, 2-47
Tapping, rigid, 3-51 global, 2-46
Spindle selection, 4-147 local, 2-46
TappSp, 4-147 Overview, 2-54
TCS, 4-148 permanent, 2-47
TCS definition in program coordinates, 4-148 STRING, 2-54
TcsDef, 4-148 structured, 2-51
TCV, 5-22 Velocity of asynchronous axes, FA address, 3-96
terminate a program, 3-86 Velocity profiles, definition of separate, 4-68
Test activities, 1-6 VERSINF$, 5-122
theta, 4-79 VirtAxisPos, 4-155
Thread Virtual drives, 4-155
chained, 3-36
multiple, 3-36 W
Thread cutting, 3-33 WAIT, 2-69
additional functions, 4-151 WAITA, WAITO, States on the digital interface, 2-74
thread pitch, 3-51 WaitAxis, 4-156
ThreadSet, 4-151 WAX, 4-156
TIME, 5-53 WCS, 5-7
time programming, 3-70 WHILE-DO-END, 2-44
Time recording, 5-53 WID, 4-157 , 4-158
Tool compensation, 5-22
A-58 Bosch Rexroth AG Electric Drives IndraMotion MTX R911309064 / 02
and Controls
Appendix
Workpiece coordinates
jogging, 4-61
Online correction, 4-58
Workpiece position compensation, 4-23 , 5-17
WPV, WPVE, Value of a permanent CPL variable,
2-76
WriteId, 4-157 , 4-158
Writing SERCOS parameters, 4-157
WSTOPA / WSTOPO, Channel synchronization by
movement stop, 2-82
X
XML tables, general access, 5-30
XOR, 2-64
XTAB, 5-30
Z
Zero offsets, 3-46 , 5-18
Zero-setting of modulo axis, 4-71
ZO, 3-46
ZO groups, 3-46
ZO pages, 3-46
ZOS, 4-160
ZOT, 5-18
ZoTSel, 4-160
ZOV, 5-18
Bosch Rexroth AG
Electric Drives and Controls
P.O. Box 13 57
97803 Lohr, Germany
Bgm.-Dr.-Nebel-Str. 2
97816 Lohr, Germany
Phone +49 (0)93 52-40-50 60
Fax +49 (0)93 52-40-49 41
service.svc@boschrexroth.de
www.boschrexroth.com
Printed in Germany
R911309064 DOK-MTX***-NC**PRO*V02-AW02-EN-P