100% found this document useful (1 vote)
983 views322 pages

EN - 840Dsl Kinematic Chain Milling 0408 - 2019-03

The document discusses kinematic chains which describe the geometric design of machine tools. Kinematic chains can be used for collision avoidance functions, simulation of machine movements, and representation of transformations. They provide more flexibility and capability than previous methods of modeling machine kinematics. Examples of modeling different machine types using kinematic chains are provided, including simple 3-axis machines, machines with dividing units, and various 5-axis machine configurations.

Uploaded by

F.C
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
983 views322 pages

EN - 840Dsl Kinematic Chain Milling 0408 - 2019-03

The document discusses kinematic chains which describe the geometric design of machine tools. Kinematic chains can be used for collision avoidance functions, simulation of machine movements, and representation of transformations. They provide more flexibility and capability than previous methods of modeling machine kinematics. Examples of modeling different machine types using kinematic chains are provided, including simple 3-axis machines, machines with dividing units, and various 5-axis machine configurations.

Uploaded by

F.C
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 322

SINUMERIK 840D sl

Kinematic Chain
Documentation
Sinumerik 840D sl

Edition 2019.03
Training Manual

This document was produced for training purposes.


Siemens assumes no responsibility for its contents.
SINUMERIK 840D sl

Kinematic Chain
Manual

Valid for:

SINUMERIK 840D sl SW4.8


Start

A175
Content
Fundamentals
of the kinematic
chain function A177 A178
A176
3-axis machine 5-axis machine
Simple
with dividing with table
3-axis machine
unit kinematics
A179
5-axis machine
with head
kinematics

A180
5-axis machine
with mixed
A182 kinematics
A183 Collision
A181
Collision Collision
avoidance, 3-axis avoidance, simple
avoidance, 5-axis
machine with
table kinematics 3-axis machine
A184 dividing unit
Collision
avoidance, 5-axis
head kinematics

A185
Collision
avoidance, 5-axis
mixed kinematics
A186
Transformation
for 5-axis
machines
End
A175 Fundamentals of the kinematic chain function
Sinumerik
Operate

Module Description:

The following chapters provide further details of the kinematic chain operating principle.
In particular, the following topics are discussed:
• Fundamentals of the "Kinematic chains" function
• Explanation of the individual blocks:

Module Objective:

The reader gains a general overview of the kinematic chains operating principle application and, in
various exercises, familiarized with the individual functions and their capabilities. After working through
all chapters, readers should be able to integrate their own machine kinematics in the system.

Content:
Sinumerik

Fundamentals of the kinematic chain

Explanation of the individual blocks

840D sl SINUMERIK Operate v4.8 Page 1 This document was produced for training purposes. A175
Siemens assumes no responsibility for its contents.
A175 Fundamentals of the kinematic chain function

A175 Page 2 840D sl SINUMERIK Operate


Fundamentals of the kinematic chain function A175

Fundamentals of the
kinematic chain function
START

Fundamentals
of the kinematic
chain

Explanation of
the individual
blocks

Fundamentals of the
kinematic chain function
END

Notes:

840D sl SINUMERIK Operate Page 3 A175


A175 Fundamentals of the kinematic chain function

The next chapter discusses the "Modelling of kinematic Application of kinematic chains:
chains" topic. The creation of kinematic chains is illustrated
with several examples: The kinematic chains describe the geometric basic design of
the machine with regard to the linear and rotary axes installed
1. Simple 3-axis machine on the machine.
2. 3-axis machine with an optionally mounted A axis Using the kinematic chain as basis, a graphic representation
3. 5-axis machine with table kinematics for the simulation of movement sequences and for the
4. 5-axis machine with head kinematics permanent collision prevention of the NC during machine
5. 5-axis machine with mixed kinematics operation.
Whereby, the kinematics of the associated machine based on
Based on these machine models, the supplementary chapters the base frame are described once in the workpiece direction
explain the commissioning of Collision Avoidance (Chapter and once in the tool direction. Furthermore, the kinematic
A131) and of transformations based on kinematic chains chains can be used to integrate transformations in the NC.
(Chapter A114). Depending on the configuration of the machine, it is possible
that one "branch" of the kinematic chain (e.g. workpiece
branch for the 5-axis machine with head kinematics) is not
occupied with kinematic elements.
This may then remain open.

Compared with the usual capabilities (description of the Thanks to its architecture, the kinematic chain is more
machine kinematics for CYCLE800 via the $TC_CARR[n] flexible, has better performance (more functions can be
machine parameters or the transformation descriptions for implemented, e.g. collision prevention, transformations) and
TRAORI with the $MC_TRAFO5.. machine parameters), a is visualized on the HMI.
kinematic chain can be used for the following functions:
Furthermore, one or more branches can also be programmed
- Simulation of machine movements for a kinematic chain, for example, to consider mounted parts
- Collision check with Collision Avoidance such as
- Configuration and commissioning of transformations:
TRAORI_DYN - Quick-release devices
TRAORI_STAT - Mounted axes, such as dividing units, etc.
TRANSMIT_K - Changeable heads
TRACYL_K - Partitions that can be mounted and dismantled.
TRAANG_K
Tool Carrier based on kinematic chains These branches can be activated or deactivated from an NC
program (switch function).
This allows different machine configurations to be considered.

For the commissioning, ensure that the configuration is


adapted to the actual status of the machine during the
controller start up, for reset, after mounting and dismantling
kinematic elements (dividing units, changeable heads, etc.)
via manufacturer macros or via the ProgEvent function.

Notes:

A175 Page 4 840D sl SINUMERIK Operate


Fundamentals of the kinematic chain function A175

Summary:

- Kinematic chains describe the machine model.


- Kinematic chains can be used for the collision check (when collision bodies are used).
- Kinematic chains can be used to represent transformations.

Simplified, a kinematic chain of a 3-axis machine tool can have the following structure:

Linear Note:
Spindle Tool The "ROOT" element represents the machine
axis
zero for all example machines used in this doc-
ument.
ROOT Each axis or deployed spindle should consist
of an offset element (distance from the previ-
Linear Linear Work- ous element) and an axis element (rotary axis,
axis axis piece linear axis).

For modelling the kinematic chain, the following MD settings


are also explained:

MD 16800 $MN_ROOT_KIN_ELEM_NAME
Name of the root element. As delivered, the name "ROOT" is
entered for the controller, although the name can be custom-
ized to the individual machine.

MD 18882 $MN_MAXNUM_KIN_SWITCHES
The number of switches that can be defined to branch the
chain (see Chapter A177, 3-axis machine with dividing unit).

Notes:

840D sl SINUMERIK Operate Page 5 A175


A175 Fundamentals of the kinematic chain function

All machine kinematics can always be simulated. Modelling of a machine:


The most frequently deployed kinematics with 3 linear axes Fundamentals:
and 2 rotary axes are divided into three categories: For the representation of the machine in the NC, a machine
• Kinematic with two rotary axes in the head, type "T" (TOOL) model must be created in the NC. Whereby, the following
• Kinematics with two rotary axes in the table, type circumstances are considered:
Which axes are present on the machine and what are
"P" (PART)
their names? Note MD10000 (machine axis name)!
• Kinematics with one rotary axis in the table and one rotary Which axes are connected directly with which axes or
axes in the head, type "M" (MIXED) have contact with them?
In which direction do the axes move (linear axes) or in
The deployed example machines are characterized in that the which direction does the rotational vector of the
orientation of the linear axes is not changed by the movement rotary axes proceed? MCS is the base direction
of a rotary axis. reference. DIN 66217 is the base standard.
How many elements are required in the kinematics
Depending on the orientation of the rotary axes (vector description? Check MD18880!
direction of the spin axis), the rotary axis names "A", "B" or
"C" are assigned in accordance with DIN 66217. Parallel chain branches can occur for a machine. For the first
The axis names "U", "V" or "W" are provided for parallel linear 3-axis example machine, these are, for example, Z and Y.
axes for X, Y or Z. Both linear axes are connected directly with the machine tool
table.
For the examples in this document, the following name
conventions are adopted for machine axes: For modeling on the HMI user interface, an HMI tool is
available at the "Commissioning" operating area.
Name for linear and rotary axes: Axis name + suffix "_AXIS" All required steps can be performed with this tool.
Example for the designation of the X axis: X_AXIS As alternative, the complete machine modeling from the NC
program is also possible.

Initially, the individual blocks of the modeling tool are explained.


The tool has the following basic structure:
All available axes, spindles, protection areas and
collision bodies of the machine are defined at "Active
data".

Protection areas and bodies can be defined in the


"Free elements" area that, for example, should be used
for handling (magazine axes, but also the walls of the
hall, external collision bodies).

The protection areas to be checked for mutual collision


are specified in the "Collision groups" area.

To deploy 3D data as STL files, the "3D files" fold-


er contains a storage capability. STL data should
contain only the actually required surfaces (no
indentations into which screw heads are
inserted later; these consume many triangular
surfaces and are not relevant for the collision
check).

Notes:

A175 Page 6 840D sl SINUMERIK Operate


Fundamentals of the kinematic chain function A175

From which elements is a kinematic chain composed?

Various elements are available in the controller for describing a machine kinematic:

• Rotation
• Linear axis
• Rotation axis
• Offset
• Switch

For branches in the chain structure:


• Parallel rotation
• Parallel linear axis
• Parallel rotation axis
• Parallel offset
• Parallel switch

The parallel elements are used when an element has a branch.


Example:
For the machine with table kinematics, a branch is made on the machine frame (ROOT element) in the workpiece direction and in
the tool direction.

Overview of the fundamental structure: Note: The sequence "upper tool" and
"lower workpiece" can be chosen
freely.
Branch 1 The associated chains are closed
END_TOOL_CHAIN with the elements
Direction tool
"END_TOOL_CHAIN" and
"END_PART_CHAIN". These two
ROOT
elements can be used for the
parameterization of transformations.
Branch 2 However, we recommend that bit 7
END_PART_CHAIN
Direction tool and bit 8 of the system tag
$NT_CNTRL[n] are used, because
then no manual adaptation of the
offset values is necessary.
Specifically with regard to the 5-axis table machine example:

The chain is considered from the direction of the root element:


Linear Y axis
• The next element is the linear Y axis
Y_AXIS
• The next parallel element is the coarse offset of the A axis
ROOT NC code:
$NK_NAME[0]="ROOT"
Coarse offset $NK_NEXT[0]="Y_AXIS" ;next element
A axis A_OFFSET $NK_PARALLEL[0]="A_OFFSET" ;parallel to the next element

Notes:

840D sl SINUMERIK Operate Page 7 A175


A175 Fundamentals of the kinematic chain function

Explanation of the individual blocks:

Rotation (or also: constant rotation):


A rotation is used to change the coordinate system for all following chain elements by making a rotation. The offset and direction
vectors of all subsequent elements apply to this newly oriented system.

A direction vector and an angle are defined for the rotation. The specified rotation angle acts "mathematic positive" along the
defined rotational vector. Therefore, the direction (+/-) of the vector is critical!

$NK_TYPE[n]=“ROT_CONST“

$NK_NAME[n]=“ROT1“ ; Adapt as required!

$NK_OFF_DIR[n,0]=0

$NK_OFF_DIR[n,1]=0

$NK_OFF_DIR[n,2]=1

$NK_A_OFF[n]=90

Linear axis
This element can be used to define a linear axis. The definition of the element always requires a vector based on the coordinate
system currently valid in the chain. The sign of the vector is defined depending on whether the axis moves the workpiece or the
tool:
Sign +: The axis moves the tool
Sign -: The axis moves the workpiece
The assignment of the axis name is based on the machine name as defined in MD10000[n].
The channel axes are not considered here!

$NK_TYPE[n]=“AXIS_LIN“

$NK_NAME[n]=“X_AXIS“ ; Adapt as required!

$NK_OFF_DIR[n,0]=1
$NK_OFF_DIR[n,1]=0
$NK_OFF_DIR[n,2]=0

$NK_AXIS[n]=“MX1“ ; Adapt to MD10000!

$NK_A_OFF[n]=0

Notes:

A175 Page 8 840D sl SINUMERIK Operate


Fundamentals of the kinematic chain function A175

Rotation axis:
The "rotation axis" element makes an assignment to a rotary axis that turns by the defined vector.
The sign of the vector is defined depending on whether the axis moves the workpiece or the tool:
Sign +: The axis moves the tool
Sign -: The axis moves the workpiece
The assignment of the axis name is based on the machine name as defined in MD10000[n].
The channel axes are not considered here!

$NK_TYPE[n]=“AXIS_ROT“

$NK_NAME[n]=“C_AXIS“ ; Adapt as required!

$NK_OFF_DIR[n,0]=0
$NK_OFF_DIR[n,1]=0
$NK_OFF_DIR[n,2]=-1 ; Workpiece axis

$NK_AXIS[n]=“MC1“ ; Adapt to MD10000!

$NK_A_OFF[n]=0

Offset:
This element can be deployed to represent constant offsets of elements (preferably rotary axes or also collision bodies). Where-
by, the total offset vector is formed from the individual offsets in X, Y, Z.

For the representation of rotary axes whose position should be corrected later with CYCLE9960, the total offset is formed by
chaining two individual offsets:
1. Offset = coarse offset, X/Y/Z values as specified in the design drawing
2. Offset = fine offset used as target element for correction by CYCLE9960.

$NK_TYPE[n]=“OFFSET“

$NK_NAME[n]=“X_OFFSET“ ; Adapt as required!

$NK_OFF_DIR[n,0]=0
$NK_OFF_DIR[n,1]=0
$NK_OFF_DIR[n,2]=0

Notes:

840D sl SINUMERIK Operate Page 9 A175


A175 Fundamentals of the kinematic chain function

Switch:
A switch allows a chain at a defined position to be steered specifically to a different branch. A typical use is for activation of the
dividing unit (see 3-axis machine with dividing unit) or for changeable heads. When value "-1" is written to the switch number, the
switch is considered to be closed. Otherwise, the switch must be brought to its switch setting with the "$NK_SWITCH[n]" tag.

$NK_TYPE[n]=“SWITCH“

$NK_NAME[n]=“SWITCH_0_1“ ;Adapt as required!

$NK_SWITCH_INDEX[n]=-1

$NK_SWITCH_POS[n]=0

Note:
After switching a switch in the NC program, the command:
PROTA("R")
must be programmed so that the kinematic chain is
reinitialized.

A typical use is shown with a simple 3-axis milling machine with dividing unit:

Dividing unit

Switch
A axis Work-
piece

Linear Linear
axis axis
Work-
ROOT piece

Linear
Spindle Tool
axis

This structure allows the mounted dividing unit to be displayed only in the machine model for simultaneous recording with ma-
chine spatial view and included in the collision consideration when the switch is connected with the A axis. The switch must be
actuated in the NC program by the user or the machine manufacturer.

Notes:

A175 Page 10 840D sl SINUMERIK Operate


Fundamentals of the kinematic chain function A175

Arrangement of correction elements when using CYCLE9960 (kinematic measurement):

For the commissioning of transformations, the position of the


correction elements in which the CYCLE9960 should perform
a geometric correction of the kinematic chain is very
important.

The following principle applies:

If the kinematic chain should be processed from the end of the


part chain (END_PART_CHAIN element) in the tool chain end
(END_TOOL_CHAIN) direction, each of the correction
elements must be arranged in this travel direction behind the
associated rotary axis.

The diagram at the side can be used for the exact


determination of the sequence.

For all considerations, this equivalent model has been introduced for the kinematic chain:

End
End
Workpiece ROOT
Tool chain
chain

Viewing direction

The positions of the rotary axes and of the correction elements are determined based on this equivalent model.
Similarly, the plausible sequence of the entries in the $NT_ROT_AX_NAME[n,m] system tags can be determined.

Notes:

840D sl SINUMERIK Operate Page 11 A175


A175 Fundamentals of the kinematic chain function

Example for a kinematic chain for a machine with mixed kinematics with correction elements:
The original chain:

Offset Vector End


Y Y Corr. Offset
ROOT C axis Workpiece
Linear Linear C offset C axis
(0,0,-1) chain

Offset Offset Vector Corr.


X X Z Offset Offset End
Z B axis Spindle Spindle
Linear Linear Linear B axis Spindle Tool chain
Linear (0,1,1) offset

is reduced to:

1. Rotary axis 2. Rotary axis

End
Workpiece C axis B axis End
ROOT
chain (0,0,-1) (0,1,1) Tool chain

Viewing direction

This conceptual sequence can now be augmented with the correction elements (each in viewing direction "behind" the associated
rotary axis) for the CYCLE9960:

1. Rotary axis 2. Rotary axis

End Corr.
Corr. End
Workpiece C axis ROOT B axis Spindle
C offset Tool chain
chaine offset

Viewing direction

Notes:

A175 Page 12 840D sl SINUMERIK Operate


Fundamentals of the kinematic chain function A175

Example for a kinematic chain for a machine with table kinematics with correction elements for CYCLE9960:

The original chain:

Offset Offset Offset End


Y X X Z
ROOT Y
Linear Linear
Z
Linear
Spindle Tool
Linear Linear Linear chain

Vector Vector
Corr.
A axis
Corr.
C axis End
A offset C offset
C offset
A offset
(-1,0,0) (0,0,-1) Tool chain

is reduced to:

1. Rotary axis 2. Rotary axis

End
C axis A axis End
Workpiece Root
(0,0,-1) (-1,0,0) Tool chain
chain

Viewing direction

This conceptual sequence can now be augmented with the correction elements (each in viewing direction "behind" the associated
rotary axis) for CYCLE9960:

1. Rotary axis 2. Rotary axis

End
C axis Corr. A axis Corr. End
Workpiece ROOT
(0,0,-1) C offset (-1,0,0) A offset Tool chain
chain

Viewing direction

Notes:

840D sl SINUMERIK Operate Page 13 A175


A175 Fundamentals of the kinematic chain function

Example for a kinematic chain for a machine with head kinematics with
correction elements for CYCLE9960:

The original chain:

End
ROOT Workpiece
chain

Offset Vector
Vector
Y X Z C axis C axis Corr. Offset
A axis
Linear Linear Linear (0,0,1) A axis A axis
(1,0,0)

End
Spindle Offset
Tool chain Corr.
Rot Spindle Spindle
(0,0,-1)

Is reduced to:

1. Rotary axis 2. Rotary axis

End
Root C axis A axis End
Workpiece
(0,0,1) (1,0,0) Tool chain
chain

Viewing direction

This conceptual sequence can now be augmented with the correction elements (each in viewing direction "behind" the
associated rotary axis) for the CYCLE9960:

1. Rotary axis 2. Rotary axis

End
C axis Corr. A axis Corr. End
Workpiece ROOT
(0,0,1) A axis (1,0,0) Spindle Tool chain
chain

Viewing direction

Notes:

A175 Page 14 840D sl SINUMERIK Operate


Fundamentals of the kinematic chain function A175

The modeling of a machine representation with kinematic chain is performed in several steps:

• 1. Preparation of a principle machine structure with linear and rotary axes as well as all spindles, e.g. as a hand-drawn
sketch.
• 2. Creation of the kinematic chain in the NC based on this basic structure.
• 3. Assignment of protection areas to the individual axes (Chapter A181, A182, A183, A184, A185).
• 4. Assignment of collision bodies (Chapter A181, A182, A183, A184, A185).
• 5. Creation of collision pairs with all bodies to be included in the collision check (Chapter A181, A182, A183, A184, A185).

Recommended machine data setting for Collision Avoidance ECO:

MD 10619 $MN_COLLISION_TOLERANCE = 1
MD 10621 $MN_COLLISION_PREP_CALC_TIME = 0.5
MD 10622 $MN_COLLISION_SAFETY_DIST = 5
MD 18866 $MN_MM_NUM_KIN_TRAFOS=6
MD 18880 $MN_MM_MAXNUM_KIN_CHAIN_ELEM=50
MD 18890 $MN_MM_MAXNUM_3D_PROT_AREAS = 17
MD 18891 $MN_MM_MAXIMUM_3D_WPFXPROT_ELEM = 0
MD 18892 $MN_MM_MAXNUM_3D_PROT_AREA_ELEM = 68
MD 18893 $MN_MM_MAXNUM_3D_T_PROT_ELEM = 1
MD 18894 $MN_MM_MAXNUM_3D_FACETS_INTERN = 1000
MD 18895 $MN_MM_MAXNUM_3D_FACETS = 0
MD 18896 $MN_MM_MAXIMUM_3D_COLLISION = 0
MD 18897 $MN_MM_MAXIMUM_3D_INTERFACE_IN = 16
MD 18898 $MN_MM_MAXNUM_3D_ COLL_PAIR = 10
MD 18899 $MN_PROT_AREA_TOOL_MASK = 1
MD 51160 $MNS_ACCESS_WRITE_CA_MACH_JOG = 6
MD 51161 $MNS_ACCESS_WRITE_CA_MACH_AUTO = 3
MD 51162 $MNS_ACCESS_WRITE_CA_TOOL = 1

Notes:

840D sl SINUMERIK Operate Page 15 A175


A175 END Fundamentals of the kinematic chain function

Activation and deactivation of collision avoidance:

To manually switch the collision check via the user interface, a control screen from can be called:

The status of the collision check can be queried via the $AN_COLL_CHECK_OFF system tag:
AUTO mode: Bit 0-3 are not set when the collision check is active.
JOG/MDA operation: Bit 4-7 are not set when the collision check is active.

A175: END

Notes:

A175 Page 16 840D sl SINUMERIK Operate


A176 Simple 3-axis machine
Sinumerik
Operate

Module Description:

The following chapters provide further details of the kinematic chain operating principle. In particular,
the following topics are discussed:

• Fundamentals of the "Kinematic chains" function


• Creation of machine models with kinematic chain:
- 3-axis milling machine

Module Objective:

The reader gains a general overview of the kinematic chains operating principle application and, in
various exercises, familiarized with the individual functions and their capabilities. After working through
all chapters, readers should be able to integrate their own machine kinematics in the system.

Content:
Sinumerik

Fundamentals of the kinematic chain

Designing the kinematic chain

NC code of the kinematic chain

840D sl SINUMERIK Operate v4.8 Page 1 This document was produced for training purposes. A176
Siemens assumes no responsibility for its contents.
A176 Simple 3-axis machine

A176 Page 2 840D sl SINUMERIK Operate


Simple 3-axis machine A176

Simple
3-axis machine
START

Fundamentals
of the kinematic
chain

Design of the
kinematic chain

NC code of the
kinematic chain

Simple
3-axis machine
END

Notes:

840D sl SINUMERIK Operate Page 3 A176


A176 Simple 3-axis machine

Fundamentals of the kinematic chain

Example 1:
Simple 3-axis milling machine with X and Z in the
workpiece branch, Y in the tool branch.

Basic key data of the machine:

The machine zero is defined on the table surface (see position of the tool tip in the figure).
The machine provides the following software limit switches (they are required for checking the traversal areas):

X axis:
$MA_POS_LIMIT_MINUS[X]=-300
$MA_POS_LIMIT_PLUS[X]=300

Y axis:
$MA_POS_LIMIT_MINUS[Y]=-400
$MA_POS_LIMIT_PLUS[Y]=0

Z axis:
$MA_POS_LIMIT_MINUS[Z]=0
$MA_POS_LIMIT_PLUS[Z]=690

The machine has the following machine axis names:


MD 10000[0]="MX1" Machine X axis
MD 10000[1]="MY1" Machine Y axis
MD 10000[2]="MZ1" Machine Z axis
MD 10000[3]="MSP1" Machine spindle

This machine is designed in several steps:

1. Description of the kinematic basic chain


2. Modeling of the machine bodies (Chapter A131)
3. Definition of the collision pairs (Chapter A131)

Notes:

A176 Page 4 840D sl SINUMERIK Operate


Simple 3-axis machine A176

Complete overview of the machine:


Arrangement of the axes and coordinate systems

SP1_AXIS:
„MSP1“

Y_AXIS:
„MY1“

ROOT / MCS:
X=0
Y=0
Z=0
Z

X_AXIS:
„MX1“
Z_AXIS:
„MZ1“

Notes:

840D sl SINUMERIK Operate Page 5 A176


A176 Simple 3-axis machine

Step 1: Description of the kinematic basic chain

The kinematic basic chain is described based on the machine tool table in the direction of the workpiece and in the direction of the
tool.

Direction
Workpiece

ROOT

Directiog
Tool

For the direction of the linear and rotary axes, the following declarations are made:
• Axes that move a tool are defined with a positive direction vector
• Axes that move a workpiece are defined with a negative direction vector

The schematic representation of the machine produces the following figure:

Z axis X axis

ROOT

Y axis Spindle

In more detail:

OFFSET OFFSET End


Z axis X axis
Z axis X axis Workpiece chain

ROOT

OFFSET OFFSET End


Y axis Spindle
Y axis Spindle Tool chain

Notes:

A176 Page 6 840D sl SINUMERIK Operate


Simple 3-axis machine A176

The complete structure tree has the design:

Before the actual creation of the model begins, the following program is
performed via MDA so that the machine axes are at the initial position when
creating the collision bodies:

TRAFOOF
CYCLE800
T0
M6
G500
G0 SUPA X0 Y0 Z0
M30

In general: The machine axes should be located at a defined position so that the assignment of the bodies in the graphic
window of the machine model can be better understood.

To make changes to the machine model, all transformations must be deactivated in the NC.

The following steps must be performed to create the structure


tree:

• Set the manufacturer password


• Call the "Commissioning" operating area Select the "Offset" element from the "New kinematic element"
selection window

If data already exists for the active data, it must be deleted


with the "Delete element" softkey.

Notes:

840D sl SINUMERIK Operate Page 7 A176


A176 Simple 3-axis machine

Accept the selection with the "OK" (VS8) softkey This creates the ROOT element as first element in the
structure tree. The ROOT element should be considered as
being the base frame of the machine.

In the next step, the kinematic chain is further extended in the


workpiece direction (purely arbitrary consideration). The Z axis
The name of the element is initialized automatically by the NC
is mounted on the machine tool table; the X axis is mounted
with "ROOT"; all the offset values can remain at the value 0.
on the Z axis.
The offset of the Z axis is initially defined, then the Z axis as a
linear axis.

OFFSET OFFSET End


Z axis X axis
Z axis X axis Workpiece chain

ROOT

OFFSET OFFSET End


Y axis Spindle
Y axis Spindle Tool chain

Type "Offset" is selected from the "New kinematic element" dialog box.

Notes:

A176 Page 8 840D sl SINUMERIK Operate


Simple 3-axis machine A176

The name of the element is defined with "Z_OFFSET". Operating sequence for the Z axis:
The offset vector is initialized with (0,0,0). Place the cursor on line "Z_OFFSET".
New element → Kinematic element → Linear axis

The name of the chain element is specified as "Z_AXIS".


The direction vector is defined with (0,0,-1).

Operating sequence for the offset of the X axis: Operating sequence for the X axis:
Place the cursor on line "Z_AXIS". Place the cursor on line "X_OFFSET".
New element → Kinematic element → Offset New element → Kinematic element → Linear axis

The name of the chain element is specified as "X_OFFSET". The name of the chain element is specified as "X_AXIS". The
The offset vector is defined with (0,0,0). direction vector is defined with (-1,0,0).

Notes:

840D sl SINUMERIK Operate Page 9 A176


A176 Simple 3-axis machine

Operating sequence for the TABLE-OFFSET: Operating sequence for the "END_PART_CHAIN" element:
Place the cursor on line "TABLE_OFFSET".
Place the cursor on line "X_AXIS". New element → Kinematic element → Offset
New element → Kinematic element → Offset
The name of the chain element is specified as
The name of the chain element is specified as "END_PART_CHAIN".
"TABLE_OFFSET". Because the kinematic chain in this example is not closed,
The offset is defined with the vector (0,0,0) and so points to the offset vector is initialized with (0,0,0).
the table surface.

Operating sequence for the offset of the Y linear axis: Operating sequence for the Y linear axis:
Place the cursor on line "ROOT". Place the cursor on line "Y_OFFSET".
New element → Kinematic element → Parallel offset New element → Kinematic element → Linear axis

The name of the chain element is specified as "Y_OFFSET". The name of the chain element is specified as "Y_AXIS".
The offset vector is assigned (0,0,0). The axis references machine axis "MY1" and has vector
(0,1,0).

Notes:

A176 Page 10 840D sl SINUMERIK Operate


Simple 3-axis machine A176

Operating sequence for the offset of the spindle: Operating sequence for the spindle:
Place the cursor on line "Y_AXIS". Place the cursor on line "SP1_OFFSET".
New element → Kinematic element → Offset New element → Kinematic element → Rotary axis

The name of the chain element is specified as The name of the chain element is specified as "SP1_AXIS".
"SP1_OFFSET" and has vector (0,0,0). The axis references machine axis "MSP1" and has vector
(0,0,-1).
The direction "-1" in the Z component is considered for the
deployment of turning tools or the tool type "L stylus".

To define uniquely the end of the chain in the tool branch, an The completed structure tree now has the following
offset element with the name "END_TOOL_CHAIN" is components:
appended as last element of the chain.

Operating sequence:
Place the cursor on line "SP1_AXIS".
New element → Kinematic element → Offset
The name of the chain element is specified as
"END_TOOL_CHAIN". Because no offset is used currently in
the complete tool chain, the offset values for X,Y,Z can remain
at the value "0".

Notes:

840D sl SINUMERIK Operate Page 11 A176


A176 Simple 3-axis machine

NC code of the kinematic chain $NK_NAME[COUNT1]="Z_OFFSET"


As alternative to creation via the HMI, all data can also be
$NK_NEXT[COUNT1]="Z_AXIS"
defined via an NC program. Unlike the creation via the HMI $NK_PARALLEL[COUNT1]=""
user interface, comments (e.g. for version management, etc.) $NK_TYPE[COUNT1]="OFFSET"
can be used here. $NK_OFF_DIR[COUNT1,0]=0
Assignment of tags for the kinematic chain:
$NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=0
DEF INT COUNT1 $NK_AXIS[COUNT1]=""
$NK_A_OFF[COUNT1]=0
$NK_NAME[COUNT1]="ROOT" $NK_SWITCH_INDEX[COUNT1]=-1
$NK_NEXT[COUNT1]="Z_OFFSET" $NK_SWITCH_POS[COUNT1]=0
$NK_PARALLEL[COUNT1]="Y_OFFSET" COUNT1=COUNT1+1
$NK_TYPE[COUNT1]="OFFSET"
$NK_OFF_DIR[COUNT1,0]=0
$NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=0
$NK_AXIS[COUNT1]=""
$NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1

$NK_NAME[COUNT1]="Z_AXIS" $NK_NAME[COUNT1]="X_OFFSET"
$NK_NEXT[COUNT1]="X_OFFSET" $NK_NEXT[COUNT1]="X_AXIS"
$NK_PARALLEL[COUNT1]="" $NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="AXIS_LIN" $NK_TYPE[COUNT1]="OFFSET"
$NK_OFF_DIR[COUNT1,0]=0 $NK_OFF_DIR[COUNT1,0]=0
$NK_OFF_DIR[COUNT1,1]=0 $NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=-1 $NK_OFF_DIR[COUNT1,2]=0
$NK_AXIS[COUNT1]="MZ1" $NK_AXIS[COUNT1]=""
$NK_A_OFF[COUNT1]=0 $NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0 $NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1 COUNT1=COUNT1+1

Notes:

A176 Page 12 840D sl SINUMERIK Operate


Simple 3-axis machine A176

$NK_NAME[COUNT1]="X_AXIS" $NK_NAME[COUNT1]="TABLE_OFFSET"
$NK_NEXT[COUNT1]="TABLE_OFFSET" $NK_NEXT[COUNT1]="END_PART_CHAIN"
$NK_PARALLEL[COUNT1]="" $NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="AXIS_LIN" $NK_TYPE[COUNT1]="OFFSET"
$NK_OFF_DIR[COUNT1,0]=-1 $NK_OFF_DIR[COUNT1,0]=0
$NK_OFF_DIR[COUNT1,1]=0 $NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=0 $NK_OFF_DIR[COUNT1,2]=0
$NK_AXIS[COUNT1]="MX1" $NK_AXIS[COUNT1]=""
$NK_A_OFF[COUNT1]=0 $NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0 $NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1 COUNT1=COUNT1+1

$NK_NAME[COUNT1]="END_PART_CHAIN" $NK_NAME[COUNT1]="Y_OFFSET"
$NK_NEXT[COUNT1]="" $NK_NEXT[COUNT1]="Y_AXIS"
$NK_PARALLEL[COUNT1]="" $NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="OFFSET" $NK_TYPE[COUNT1]="OFFSET"
$NK_OFF_DIR[COUNT1,0]=0 $NK_OFF_DIR[COUNT1,0]=0
$NK_OFF_DIR[COUNT1,1]=0 $NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=0 $NK_OFF_DIR[COUNT1,2]=0
$NK_AXIS[COUNT1]="" $NK_AXIS[COUNT1]=""
$NK_A_OFF[COUNT1]=0 $NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0 $NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1 COUNT1=COUNT1+1

Notes:

840D sl SINUMERIK Operate Page 13 A176


A176 END Simple 3-axis machine

$NK_NAME[COUNT1]="Y_AXIS" $NK_NAME[COUNT1]="SP1_OFFSET"
$NK_NEXT[COUNT1]="SP1_OFFSET" $NK_NEXT[COUNT1]="SPI_AXIS"
$NK_PARALLEL[COUNT1]="" $NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="AXIS_LIN" $NK_TYPE[COUNT1]="OFFSET"
$NK_OFF_DIR[COUNT1,0]=0 $NK_OFF_DIR[COUNT1,0]=0
$NK_OFF_DIR[COUNT1,1]=1 $NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=0 $NK_OFF_DIR[COUNT1,2]=0
$NK_AXIS[COUNT1]="MY1" $NK_AXIS[COUNT1]=""
$NK_A_OFF[COUNT1]=0 $NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0 $NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1 COUNT1=COUNT1+1

$NK_NAME[COUNT1]="SPI_AXIS" $NK_NAME[COUNT1]="END_TOOL_CHAIN"
$NK_NEXT[COUNT1]="END_TOOL_CHAIN" $NK_NEXT[COUNT1]=""
$NK_PARALLEL[COUNT1]="" $NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="AXIS_ROT" $NK_TYPE[COUNT1]="OFFSET"
$NK_OFF_DIR[COUNT1,0]=0 $NK_OFF_DIR[COUNT1,0]=0
$NK_OFF_DIR[COUNT1,1]=0 $NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=-1 $NK_OFF_DIR[COUNT1,2]=0
$NK_AXIS[COUNT1]="MSP1" $NK_AXIS[COUNT1]=""
$NK_A_OFF[COUNT1]=0 $NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0 $NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1 COUNT1=COUNT1+1

PROTA ;Activation of the chain

M30

A176: END

Notes:

A176 Page 14 840D sl SINUMERIK Operate


A177 3-axis machine with dividing unit
Sinumerik
Operate

Module Description:

The following chapters provide further details of the kinematic chain operating principle. In particular,
the following topics are discussed:
• Fundamentals of the "Kinematic chains" function
• Creation of machine models with kinematic chain:
- 3-axis milling machine with optional dividing unit

Module Objective:

The reader gains a general overview of the kinematic chains operating principle application and, in
various exercises, familiarized with the individual functions and their capabilities. After working through
all chapters, readers should be able to integrate their own machine kinematics in the system.

Content:
Sinumerik

Fundamentals of the kinematic chain

Designing the kinematic chain

NC code of the kinematic chain

840D sl SINUMERIK Operate v4.8 Page 1 This document was produced for training purposes. A177
Siemens assumes no responsibility for its contents.
A177 3-axis machine with dividing unit

A177 Page 2 840D sl SINUMERIK Operate


3-axis machine with dividing unit A177

3-axis machine with dividing


unit
START

Fundamentals
of the kinematic
chain

Design of the
kinematic chain

NC code of the
kinematic chain

3-axis machine with dividing


unit
END

Notes:

840D sl SINUMERIK Operate Page 3 A177


A177 3-axis machine with dividing unit

Fundamentals of the kinematic chain

Example 2: Simple 3-axis milling machine with X and Z in the tool branch, Y in the workpiece branch.

The machine zero is located in the table center and on the


table surface.

The linear axes are defined with the vectors


X(1,0,0), Y(0,-1,0), Z(0,0,1)

The software limit switches have the values:


X axis:
$MA_POS_LIMIT_MINUS[X]=-750
$MA_POS_LIMIT_PLUS[X]=750

Y axis:
$MA_POS_LIMIT_MINUS[Y]=-350
$MA_POS_LIMIT_PLUS[Y]=350

Z axis:
$MA_POS_LIMIT_MINUS[Z]=0
$MA_POS_LIMIT_PLUS[Z]=650

The machine has the following machine axis names: Note:


MD 10000[0]="MX1" Machine X axis
MD 10000[1]="MY1" Machine Y axis The two "END_TOOL_CHAIN" and
MD 10000[2]="MZ1" Machine Z axis "END_WORKPIECE_CHAIN" elements are not essential for
MD 10000[3]="MSP1" Machine spindle this simple machine in the basic kinematics. They are also
MD 10000[3]="MA1" Machine A axis in the dividing added in the section for creating the A axis so that the
unit TRACYL cylinder jacket interpolation can be configured later.

The kinematic chain of the machine has the basic structure


(simplified, without switch):

Dividing End
Y
ROOT Linear unit Workpiece
A axis chain

X Z Spindle End
Linear Linear Rot Tool chain

Notes:

A177 Page 4 840D sl SINUMERIK Operate


3-axis machine with dividing unit A177

Definition of the machine reference point and of the


axis directions:

MCS / ROOT
X=0
Y=0
Z=0

Z
Y

Arrangement of the axes:

X_AXIS

Z_AXIS

Y_AXIS

A_AXIS

Notes:

840D sl SINUMERIK Operate Page 5 A177


A177 3-axis machine with dividing unit

Detailed representation of the kinematic chain:

ROOT

Next, parallel element for the


Next element for the "ROOT" element
"ROOT" element

Y_OFFSET X_OFFSET

Y_AXIS X_AXIS

Z_OFFSET

$NK_SWITCH[0]=1 $NK_SWITCH[0]=2 Z_AXIS

TABLE_
A_CORR
OFFSET SP1_OFFSET

END_
A_OFFSET
PART_CHAIN_2
SP1_AXIS

A_AXIS
END_
TOOL_CHAIN

END_
PART_CHAIN_1

Notes:

A177 Page 6 840D sl SINUMERIK Operate


3-axis machine with dividing unit A177

Designing the kinematic chain

Before the modeling begins, the machine should be positioned


via MDA to "MCS-0" so that the collision bodies in the initial
setting are displayed:

TRAFOOF
CYCLE800
T0
M6
G0 SUPA X0 Y0 Z0
M30

The following steps must be performed to create the structure


tree:

• Set the manufacturer password


• Call the "Commissioning" operating area

Operating sequence for creating the ROOT element: Operating sequence for the offset of the Y linear axis:
Place the cursor on line "Active data". Place the cursor on line "ROOT".
New element → Kinematic element → Offset New element → Kinematic element → Offset

The name is initialized automatically with "ROOT" and does The name of the chain element is specified as "Y_OFFSET".
not need to be changed. The offset vector is defined with (0,0,0).
The offset values X,Y,Z do not need to be further assigned.

Notes:

840D sl SINUMERIK Operate Page 7 A177


A177 3-axis machine with dividing unit

Operating sequence for the Y linear axis: Operating sequence for creating the switch:
Place the cursor on line "ROOT".
New element → Kinematic element → Linear axis Place the cursor on line "Y_AXIS".
New element → Kinematic element → Switch
The name of the chain element is specified as "Y_AXIS".
The axis references machine axis "MY1" and has vector (0,- The name of the chain element is specified as
1,0). "SWITCH_0_1" (switch with index = 0 in switch setting = 1).

The name SWITCH_0_1 implies:


• Switch with index 0 ($NK_SWITCH[0])
• The subsequent branch of the chain is valid for
$NK_SWITCH[0]=1

Operating sequence for the correction element of the A axis: Operating sequence for the coarse offset of the A axis:
Place the cursor on line "SWITCH_0_1". Place the cursor on line "A_CORR".
New element → Kinematic element → Offset New element → Kinematic element → Offset

The name of the chain element is specified as "A_CORR". The name of the chain element is specified as "A_OFFSET".
Because this element is used later by CYCLE996, the vector This element programs the coarse offset of the A axis. The
is entered with (0,0,0). offset is defined for the offset vector (-500,0,150). The A axis
is 150 mm above the table surface.

Notes:

A177 Page 8 840D sl SINUMERIK Operate


3-axis machine with dividing unit A177

Operating sequence for the A rotation axis: Operating sequence for the definition of
Place the cursor on line "A_OFFSET". "END_PART_CHAIN":
New element → Kinematic element → Rotation axis Place the cursor on line "A_AXIS".
New element → Kinematic element → Parallel offset
The name of the chain element is specified as "A_AXIS".
The axis references machine axis "MA1" and has vector The name of the chain element is specified as
(-1,0,0). "END_PART_CHAIN_1". The offset vector is initialized with
(0,0,0).

Operating sequence for the branch at SWITCH[0]: Operating sequence for the TABLE-OFFSET:
Place the cursor on line "SWITCH_0_1".
New element → Kinematic element → Parallel switch Place the cursor on line "SWITCH_0_2".
New element → Kinematic element → Offset
The name of the chain element is specified as
"SWITCH_0_2". The name of the chain element is specified as
"TABLE_OFFSET".
The offset is defined with the vector (0,0,0) and so points to
the table surface.

Notes:

840D sl SINUMERIK Operate Page 9 A177


A177 3-axis machine with dividing unit

Operating sequence for the "END_PART_CHAIN_2" element: Operating sequence for the offset of the X linear axis:
Place the cursor on line "TABLE_OFFSET". Place the cursor on line "ROOT".
New element → Kinematic element → Offset New element → Kinematic element → Parallel offset

The name of the chain element is specified as The name of the chain element is specified as "X_OFFSET".
"END_PART_CHAIN_2". The offset vector is defined with (0,0,0).
Because the kinematic chain in this example is not closed, the
offset vector is initialized with (0,0,0).

Operating sequence for the X linear axis: Operating sequence for the offset of the Z linear axis:
Place the cursor on line "X_OFFSET". Place the cursor on line "X_AXIS".
New element → Kinematic element → Linear axis New element → Kinematic element → Offset

The name of the chain element is specified as "X_AXIS". The name of the chain element is specified as "Z_OFFSET".
The axis references machine axis "MX1" and has vector The offset vector is defined with (0,0,0).
(1,0,0).

Notes:

A177 Page 10 840D sl SINUMERIK Operate


3-axis machine with dividing unit A177

Operating sequence for the Z linear axis: Operating sequence for the offset of the spindle:
Place the cursor on line "Z_OFFSET". Place the cursor on line "Z_AXIS".
New element → Kinematic element → Linear axis New element → Kinematic element → Offset

The name of the chain element is specified as "Z_AXIS". The name of the chain element is specified as
The axis references machine axis "MZ1" and has vector "SP1_OFFSET" and has direction vector (0,0,0).
(0,0,1).

Operating sequence for the spindle: To define uniquely the end of the chain in the tool branch, an
Place the cursor on line "SP1_OFFSET". offset element with the name "END_TOOL_CHAIN" is
New element → Kinematic element → Rotary axis appended as last element of the chain.

The name of the chain element is specified as "SP1_AXIS". Operating sequence:


The axis references machine axis "MSP1" and has vector Place the cursor on line "SP1_AXIS".
(0,0,-1). New element → Kinematic element → Offset
The direction "-1" in the Z component is considered for the The name of the chain element is specified as
deployment of turning tools or the tool type "L stylus". "END_TOOL_CHAIN". Because no offset is used currently in
the complete tool chain, the offset values for X,Y,Z can
remain at the value "0".

Notes:

840D sl SINUMERIK Operate Page 11 A177


A177 3-axis machine with dividing unit

View of the completed structure tree: NC code of the kinematic chain

Description of the kinematic chain.


DEF INT COUNT1

$NK_NAME[COUNT1]="ROOT"
$NK_NEXT[COUNT1]="Y_OFFSET"
$NK_PARALLEL[COUNT1]="X_OFFSET"
$NK_TYPE[COUNT1]="OFFSET"
$NK_OFF_DIR[COUNT1,0]=0
$NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=0
$NK_AXIS[COUNT1]=""
$NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1

$NK_NAME[COUNT1]="Y_OFFSET" $NK_NAME[COUNT1]="Y_AXIS"
$NK_NEXT[COUNT1]="Y_AXIS" $NK_NEXT[COUNT1]="SWITCH_0_1"
$NK_PARALLEL[COUNT1]="" $NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="OFFSET" $NK_TYPE[COUNT1]="AXIS_LIN"
$NK_OFF_DIR[COUNT1,0]=0 $NK_OFF_DIR[COUNT1,0]=0
$NK_OFF_DIR[COUNT1,1]=0 $NK_OFF_DIR[COUNT1,1]=-1
$NK_OFF_DIR[COUNT1,2]=0 $NK_OFF_DIR[COUNT1,2]=0
$NK_AXIS[COUNT1]="" $NK_AXIS[COUNT1]="MY1"
$NK_A_OFF[COUNT1]=0 $NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0 $NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1 COUNT1=COUNT1+1

Notes:

A177 Page 12 840D sl SINUMERIK Operate


3-axis machine with dividing unit A177

$NK_NAME[COUNT1]="SWITCH_0_1" $NK_NAME[COUNT1]="A_CORR"
$NK_NEXT[COUNT1]="A_CORR" $NK_NEXT[COUNT1]="A_OFFSET"
$NK_PARALLEL[COUNT1]="SWITCH_0_2" $NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="SWITCH" $NK_TYPE[COUNT1]="OFFSET"
$NK_OFF_DIR[COUNT1,0]=0 $NK_OFF_DIR[COUNT1,0]=-500
$NK_OFF_DIR[COUNT1,1]=0 $NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=0 $NK_OFF_DIR[COUNT1,2]=150
$NK_AXIS[COUNT1]="" $NK_AXIS[COUNT1]=""
$NK_A_OFF[COUNT1]=0 $NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=0 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=1 $NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1 COUNT1=COUNT1+1

$NK_NAME[COUNT1]="A_OFFSET" $NK_NAME[COUNT1]="A_AXIS"
$NK_NEXT[COUNT1]="A_AXIS" $NK_NEXT[COUNT1]="END_PART_CHAIN_1"
$NK_PARALLEL[COUNT1]="" $NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="OFFSET" $NK_TYPE[COUNT1]="AXIS_ROT"
$NK_OFF_DIR[COUNT1,0]=0 $NK_OFF_DIR[COUNT1,0]=-1
$NK_OFF_DIR[COUNT1,1]=0 $NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=0 $NK_OFF_DIR[COUNT1,2]=0
$NK_AXIS[COUNT1]="" $NK_AXIS[COUNT1]="MA1"
$NK_A_OFF[COUNT1]=0 $NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0 $NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1 COUNT1=COUNT1+1

Notes:

840D sl SINUMERIK Operate Page 13 A177


A177 3-axis machine with dividing unit

$NK_NAME[COUNT1]="END_PART_CHAIN_1" $NK_NAME[COUNT1]="SWITCH_0_2"
$NK_NEXT[COUNT1]="" $NK_NEXT[COUNT1]="TABLE_OFFSET"
$NK_PARALLEL[COUNT1]="" $NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="OFFSET" $NK_TYPE[COUNT1]="SWITCH"
$NK_OFF_DIR[COUNT1,0]=0 $NK_OFF_DIR[COUNT1,0]=0
$NK_OFF_DIR[COUNT1,1]=0 $NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=0 $NK_OFF_DIR[COUNT1,2]=0
$NK_AXIS[COUNT1]="" $NK_AXIS[COUNT1]=""
$NK_A_OFF[COUNT1]=0 $NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1 $NK_SWITCH_INDEX[COUNT1]=0
$NK_SWITCH_POS[COUNT1]=0 $NK_SWITCH_POS[COUNT1]=2
COUNT1=COUNT1+1 COUNT1=COUNT1+1

$NK_NAME[COUNT1]="TABLE_OFFSET" $NK_NAME[COUNT1]="END_PART_CHAIN_2"
$NK_NEXT[COUNT1]="END_PART_CHAIN_2" $NK_NEXT[COUNT1]=""
$NK_PARALLEL[COUNT1]="" $NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="OFFSET" $NK_TYPE[COUNT1]="OFFSET"
$NK_OFF_DIR[COUNT1,0]=0 $NK_OFF_DIR[COUNT1,0]=0
$NK_OFF_DIR[COUNT1,1]=0 $NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=0 $NK_OFF_DIR[COUNT1,2]=0
$NK_AXIS[COUNT1]="" $NK_AXIS[COUNT1]=""
$NK_A_OFF[COUNT1]=0 $NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0 $NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1 COUNT1=COUNT1+1

Notes:

A177 Page 14 840D sl SINUMERIK Operate


3-axis machine with dividing unit A177

$NK_NAME[COUNT1]="X_OFFSET" $NK_NAME[COUNT1]="X_AXIS"
$NK_NEXT[COUNT1]="X_AXIS" $NK_NEXT[COUNT1]="Z_OFFSET"
$NK_PARALLEL[COUNT1]="" $NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="OFFSET" $NK_TYPE[COUNT1]="AXIS_LIN"
$NK_OFF_DIR[COUNT1,0]=0 $NK_OFF_DIR[COUNT1,0]=1
$NK_OFF_DIR[COUNT1,1]=0 $NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=0 $NK_OFF_DIR[COUNT1,2]=0
$NK_AXIS[COUNT1]="" $NK_AXIS[COUNT1]="MX1"
$NK_A_OFF[COUNT1]=0 $NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0 $NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1 COUNT1=COUNT1+1

$NK_NAME[COUNT1]="Z_OFFSET" $NK_NAME[COUNT1]="Z_AXIS"
$NK_NEXT[COUNT1]="Z_AXIS" $NK_NEXT[COUNT1]="SP1_OFFSET"
$NK_PARALLEL[COUNT1]="" $NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="OFFSET" $NK_TYPE[COUNT1]="AXIS_LIN"
$NK_OFF_DIR[COUNT1,0]=0 $NK_OFF_DIR[COUNT1,0]=0
$NK_OFF_DIR[COUNT1,1]=0 $NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=0 $NK_OFF_DIR[COUNT1,2]=1
$NK_AXIS[COUNT1]="" $NK_AXIS[COUNT1]="MZ1"
$NK_A_OFF[COUNT1]=0 $NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0 $NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1 COUNT1=COUNT1+1

Notes:

840D sl SINUMERIK Operate Page 15 A177


A177 END 3-axis machine with dividing unit

$NK_NAME[COUNT1]="SP1_OFFSET" $NK_NAME[COUNT1]="SP1_AXIS"
$NK_NEXT[COUNT1]="SP1_AXIS" $NK_NEXT[COUNT1]="END_TOOL_CHAIN"
$NK_PARALLEL[COUNT1]="" $NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="OFFSET" $NK_TYPE[COUNT1]="AXIS_ROT"
$NK_OFF_DIR[COUNT1,0]=0 $NK_OFF_DIR[COUNT1,0]=0
$NK_OFF_DIR[COUNT1,1]=0 $NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=0 $NK_OFF_DIR[COUNT1,2]=-1
$NK_AXIS[COUNT1]="" $NK_AXIS[COUNT1]="MSP1"
$NK_A_OFF[COUNT1]=0 $NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0 $NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1 COUNT1=COUNT1+1

$NK_NAME[COUNT1]="END_TOOL_CHAIN"
$NK_NEXT[COUNT1]=""
$NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="OFFSET"
$NK_OFF_DIR[COUNT1,0]=0
$NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=0
$NK_AXIS[COUNT1]=""
$NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1

A177: END

Notes:

A177 Page 16 840D sl SINUMERIK Operate


A178 5-axis machine with table kinematics
Sinumerik
Operate

Module Description:

The following chapters provide further details of the kinematic chain operating principle. In particular,
the following topics are discussed:

• Creation of machine models with kinematic chain:


- 5-axis milling machine with table kinematics

Module Objective:

The reader gains a general overview of the kinematic chains operating principle application and, in
various exercises, familiarized with the individual functions and their capabilities. After working through
all chapters, readers should be able to integrate their own machine kinematics in the system.

Content:
Sinumerik

Fundamentals of the kinematic chain

Designing the kinematic chain

NC code of the kinematic chain

840D sl SINUMERIK Operate v4.8 Page 1 This document was produced for training purposes. A178
Siemens assumes no responsibility for its contents.
A178 5-axis machine with table kinematics

A178 Page 2 840D sl SINUMERIK Operate


5-axis machine with table kinematics A178

5-axis machine with table


kinematics
START

Fundamentals
of the kinematic
chain

Design of the
kinematic chain

NC code of the
kinematic chain

5-axis machine with table


kinematics
END

Notes:

840D sl SINUMERIK Operate Page 3 A178


A178 5-axis machine with table kinematics

Fundamentals of the kinematic chain

Example 3: 5-axis machine with table kinematics

Once the modeling of the 3-axis machine is completed, the use of rotary axes is explained in the next examples.

A rotary axis always consists of an "Offset" kinematic element for describing the spatial position of the rotary axis and of a
"Rotation axis" element for defining the rotary axis direction as vector and the assignment to a machine axis.

For the subsequent deployment of the CYCLE9960 measuring cycle, an offset element with the name extension "CORR" that
serves as correction target for CYCLE9960 is used. This second offset element can be considered as being a fine offset for the
rotary axis position. This allows the rotary axis position values from the design drawing of the machine to be transferred to the
main offset element.

For the table kinematics, with viewing direction from the end of the part chain, the offset elements lie behind the rotary axes; with
viewing direction from the ROOT element, the correction elements is added in front of the rotary axis.

A_OFFSET CORR_A_OFFSET A_AXIS


(Offset Element) (Offset Element) (Rot Element)

Position according to Correction for Direction vector


the drawing "Kinematic measurement" (-1,0,0)
with CYCLE9960

The machine zero (MCS) lies in the center of the C axis on the The vectors are defined for the linear axes:
table surface (current position of the tool tip). X (1,0,0)
Y (0,1,0)
Z (0,0,1)

The following vectors


A (-1,0,0) first table axis
C (0,0,-1) second table axis
are declared for both rotary axes.

The spindle receives the vector:


SPI (0,0,-1)

Notes:

A178 Page 4 840D sl SINUMERIK Operate


5-axis machine with table kinematics A178

The position of the reference system and the orientation of the axes:

MCS / ROOT
X=0
Y=0
Z=0

Z_AXIS

X_AXIS
Y_AXIS

Note:
No visible bodies are
available for the X axis.
SP1_AXIS

A_AXIS

C_AXIS

Notes:

840D sl SINUMERIK Operate Page 5 A178


A178 5-axis machine with table kinematics

The kinematic chain of the machine has the basic structure:

Next element for the ROOT Next, parallel element for the
"ROOT" element "ROOT" element

Y_OFFSET A_OFFSET

The structure of the axes is


configured so that each machine
Y_AXIS CORR_A_OFFSET
axis always consists of an offset
element and an axis element.
This method is used identically for
rotary and linear axes.
This provides the capability to
X_OFFSET
adapt the chain easier for future
A_AXIS
functions (based on the kinematic
chain).

X_AXIS C_OFFSET

The "TABLE_OFFSET" element is


used to set the total offset on the
table surface.

Z_OFFSET CORR_C_OFFSET The "END_TOOL_CHAIN" and


"END_PART_CHAIN" elements
close the associated chain branch.
The chain remains open in the
following example. This situation
must be considered later when a
Z_AXIS C_AXIS transformation is deployed.

TABLE_
SP1_OFFSET
OFFSET

END_
SP1_AXIS
PART_CHAIN

END_
TOOL_CHAIN

Notes:

A178 Page 6 840D sl SINUMERIK Operate


5-axis machine with table kinematics A178

Design of the kinematic chain The machine provides the following software limit switch-
es (they are required for checking the traversal areas):
Before the modeling begins, the machine should be posi-
tioned via MDA to "MCS-0": X axis:
$MA_POS_LIMIT_MINUS[X]=-450
TRAFOOF $MA_POS_LIMIT_PLUS[X]=450
CYCLE800
T0 Y axis:
M6 $MA_POS_LIMIT_MINUS[Y]=-450
G0 SUPA X0 Y0 Z0 A0 C0 $MA_POS_LIMIT_PLUS[Y]=1000
M30
Z axis:
$MA_POS_LIMIT_MINUS[Z]=-150
$MA_POS_LIMIT_PLUS[Z]=500
The rotary axes should be configured with the following offset A axis:
values: $MA_POS_LIMIT_MINUS[A]=-120
Offset from ROOT to A: (0,0,100) $MA_POS_LIMIT_PLUS[A]=120
Offset from A to C: (0,0,-100)
The machine has the following machine axis names:
MD 10000[0]=„MX1“ Machine X axis
MD 10000[1]=„MY1“ Machine Y axis
MD 10000[2]=„MZ1“ Machine Z axis
MD 10000[3]=„MSP1“ Machine spindle

MD 10000[4]=„MA1“ Machine Aaxis


MD 10000[5]=„MC1“ Machine C axis

The following steps must be performed to create the structure Operating sequence for the creation of the ROOT element:
tree: Place the cursor on line "Active data".
New element → Kinematic element → Offset

• Set the manufacturer password The name is initialized automatically with "ROOT" and does
• Call the "Commissioning" operating area not need to be changed.
The offset values X,Y,Z do not need to be further assigned;
consequently, the machine zero lies on the world coordinate
system.

Notes:

840D sl SINUMERIK Operate Page 7 A178


A178 5-axis machine with table kinematics

Operating sequence for the offset of the Y linear axis: Operating sequence for the Y linear axis:
Place the cursor on line "ROOT". Place the cursor on line "Y_OFFSET".
New element → Kinematic element → Offset New element → Kinematic element → Linear axis

The name of the chain element is specified as "Y_OFFSET" The name of the chain element is specified as "Y_AXIS".
and has direction vector (0,0,0). The axis references machine axis "MY1" and has vector
(0,1,0).

Operating sequence for the offset of the X linear axis: Operating sequence for the X linear axis:
Place the cursor on line "Y_AXIS". Place the cursor on line "X_OFFSET".
New element → Kinematic element → Offset New element → Kinematic element → Linear axis

The name of the chain element is specified as "X_OFFSET" The name of the chain element is specified as "X_AXIS".
and has direction vector (0,0,0). The axis references machine axis "MX1" and has vector
(1,0,0).

Notes:

A178 Page 8 840D sl SINUMERIK Operate


5-axis machine with table kinematics A178

Operating sequence for the offset of the Z linear axis: Operating sequence for the Z linear axis:
Place the cursor on line "X_AXIS". Place the cursor on line "Z_OFFSET".
New element → Kinematic element → Offset New element → Kinematic element → Linear axis

The name of the chain element is specified as "Z_OFFSET" The name of the chain element is specified as "Z_AXIS".
and has direction vector (0,0,0). The axis references machine axis "MZ1" and has vector
(0,0,1).

Operating sequence for the offset of the spindle: Bedienfolge für die Spindel:
Place the cursor on line "Z_AXIS". Operating sequence for the spindle:
New element → Kinematic element → Offset Place the cursor on line "SP1_OFFSET".
New element → Kinematic element → Rotary axis
The name of the chain element is specified as
"SP1_OFFSET" and has direction vector (0,0,0). The name of the chain element is specified as "SP1_AXIS".
The axis references machine axis "MSP1" and has vector
(0,0,-1).
The direction "-1" in the Z component is considered for the
deployment of turning tools or the tool type "L stylus".

Notes:

840D sl SINUMERIK Operate Page 9 A178


A178 5-axis machine with table kinematics

To define uniquely the end of the chain in the tool branch, an The "upper part" in the schematic representation of the kine-
offset element with the name "END_TOOL_CHAIN" is matic chain is so defined completely. To still describe the low-
appended as last element of the chain. er part, a parallel A-correction element on the ROOT
element must be linked to the Y_OFFSET element.
Operating sequence:
Place the cursor on line "SP1_AXIS".
New element → Kinematic element → Offset
The name of the chain element is specified as
"END_TOOL_CHAIN". Because no offset is used currently in
the complete tool chain, the offset values for X,Y,Z can
remain at the value "0".

Chain in direction
ROOT
tool

Chain in direction
workpiece

Operating sequence for the coarse offset of the A axis:


Place the cursor on line "ROOT".
New element → Kinematic element → Parallel offset

The name of the chain element is specified as "A_OFFSET".


This element programs the coarse offset of the A axis. The
offset in the Z direction is 100 mm, this results in offset vector
(0,0,100).

Notes:

A178 Page 10 840D sl SINUMERIK Operate


5-axis machine with table kinematics A178

Operating sequence for the correction element of the A axis: Operating sequence for the rotation component of the A axis:
Place the cursor on line "CORR_A_OFFSET".
New element → Kinematic element → Offset Place the cursor on line "CORR_A_OFFSET".
New element → Kinematic element → Rotation axis
The name of the chain element is specified as
"CORR_A_OFFSET". The name of the chain element is specified as "A_AXIS".
Because this element is used later by CYCLE996, the offset The axis references machine axis "MA1" and has
vector is entered with (0,0,0). vector (-1,0,0).

Operating sequence for the correction element of the C axis: Operating sequence for the coarse offset of the C axis:
Place the cursor on line "A_AXIS". Place the cursor on line "C_OFFSET".
New element → Kinematic element → Offset New element → Kinematic element → Offset

The name of the chain element is specified as "C_OFFSET". The name of the chain element is specified as
This element programs the coarse offset of the C axis. The "CORR_C_OFFSET".
offset in the Z direction is -100 mm, this results in offset vector Because this element is used later by CYCLE996, the offset
(0,0,-100). vector is entered with (0,0,0).

Notes:

840D sl SINUMERIK Operate Page 11 A178


A178 5-axis machine with table kinematics

Operating sequence for the rotation component of the C axis: Operating sequence for the TABLE-OFFSET:

Place the cursor on line "CORR_C_OFFSET". Place the cursor on line "C_AXIS".
New element → Kinematic element → Rotation axis New element → Kinematic element → Offset

The name of the chain element is specified as "C_AXIS". The name of the chain element is specified as
The axis references machine axis "MC1" and has vector "TABLE_OFFSET".
(0,0,-1). The offset is defined with the vector (0,0,0) and so points to
the table surface.

Operating sequence for the "END_PART_CHAIN" element: This completes the definition of the kinematic chain that can
Place the cursor on line "TABLE_OFFSET". be used for further applications (Collision Avoidance, transfor-
New element → Kinematic element → Offset mations).

The name of the chain element is specified as The following design of the machine kinematics results in the
"END_PART_CHAIN". structure tree of the NC:
Because the kinematic chain in this example is not closed, the
offset vector is initialized with (0,0,0).

Notes:

A178 Page 12 840D sl SINUMERIK Operate


5-axis machine with table kinematics A178

NC code of the kinematic chain $NK_NAME[COUNT1]="Y_OFFSET"


$NK_NEXT[COUNT1]="Y_AXIS"
Assignment of tags for the kinematic chain:
$NK_PARALLEL[COUNT1]=""
DEF INT COUNT1 $NK_TYPE[COUNT1]="OFFSET"
$NK_NAME[COUNT1]="ROOT" $NK_OFF_DIR[COUNT1,0]=0
$NK_NEXT[COUNT1]="Y_OFFSET" $NK_OFF_DIR[COUNT1,1]=0
$NK_PARALLEL[COUNT1]="A_OFFSET" $NK_OFF_DIR[COUNT1,2]=0
$NK_TYPE[COUNT1]="OFFSET" $NK_AXIS[COUNT1]=""
$NK_OFF_DIR[COUNT1,0]=0 $NK_A_OFF[COUNT1]=0
$NK_OFF_DIR[COUNT1,1]=0 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_OFF_DIR[COUNT1,2]=0 $NK_SWITCH_POS[COUNT1]=0
$NK_AXIS[COUNT1]="" COUNT1=COUNT1+1
$NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1

$NK_NAME[COUNT1]="Y_AXIS" $NK_NAME[COUNT1]="X_OFFSET"
$NK_NEXT[COUNT1]="X_OFFSET" $NK_NEXT[COUNT1]="X_AXIS"
$NK_PARALLEL[COUNT1]="" $NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="AXIS_LIN" $NK_TYPE[COUNT1]="OFFSET"
$NK_OFF_DIR[COUNT1,0]=0 $NK_OFF_DIR[COUNT1,0]=0
$NK_OFF_DIR[COUNT1,1]=1 $NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=0 $NK_OFF_DIR[COUNT1,2]=0
$NK_AXIS[COUNT1]="MY1" $NK_AXIS[COUNT1]=""
$NK_A_OFF[COUNT1]=0 $NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0 $NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1 COUNT1=COUNT1+1

Notes:

840D sl SINUMERIK Operate Page 13 A178


A178 5-axis machine with table kinematics

$NK_NAME[COUNT1]="X_AXIS" $NK_NAME[COUNT1]="Z_OFFSET"
$NK_NEXT[COUNT1]="Z_OFFSET" $NK_NEXT[COUNT1]="Z_AXIS"
$NK_PARALLEL[COUNT1]="" $NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="AXIS_LIN" $NK_TYPE[COUNT1]="OFFSET"
$NK_OFF_DIR[COUNT1,0]=1 $NK_OFF_DIR[COUNT1,0]=0
$NK_OFF_DIR[COUNT1,1]=0 $NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=0 $NK_OFF_DIR[COUNT1,2]=0
$NK_AXIS[COUNT1]="MX1" $NK_AXIS[COUNT1]=""
$NK_A_OFF[COUNT1]=0 $NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0 $NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1 COUNT1=COUNT1+1

$NK_NAME[COUNT1]="Z_AXIS" $NK_NAME[COUNT1]="SP1_OFFSET"
$NK_NEXT[COUNT1]="SP1_OFFSET" $NK_NEXT[COUNT1]="SP1_AXIS"
$NK_PARALLEL[COUNT1]="" $NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="AXIS_LIN" $NK_TYPE[COUNT1]="OFFSET"
$NK_OFF_DIR[COUNT1,0]=0 $NK_OFF_DIR[COUNT1,0]=0
$NK_OFF_DIR[COUNT1,1]=0 $NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=1 $NK_OFF_DIR[COUNT1,2]=0
$NK_AXIS[COUNT1]="MZ1" $NK_AXIS[COUNT1]=""
$NK_A_OFF[COUNT1]=0 $NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0 $NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1 COUNT1=COUNT1+1

Notes:

A178 Page 14 840D sl SINUMERIK Operate


5-axis machine with table kinematics A178

$NK_NAME[COUNT1]="SP1_AXIS" $NK_NAME[COUNT1]="END_TOOL_CHAIN"
$NK_NEXT[COUNT1]="END_TOOL_CHAIN" $NK_NEXT[COUNT1]=""
$NK_PARALLEL[COUNT1]="" $NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="AXIS_ROT" $NK_TYPE[COUNT1]="OFFSET"
$NK_OFF_DIR[COUNT1,0]=0 $NK_OFF_DIR[COUNT1,0]=0
$NK_OFF_DIR[COUNT1,1]=0 $NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=-1 $NK_OFF_DIR[COUNT1,2]=0
$NK_AXIS[COUNT1]="MSP1" $NK_AXIS[COUNT1]=""
$NK_A_OFF[COUNT1]=0 $NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0 $NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1 COUNT1=COUNT1+1

$NK_NAME[COUNT1]="A_OFFSET" $NK_NAME[COUNT1]="CORR_A_OFFSET"
$NK_NEXT[COUNT1]="CORR_A_OFFSET" $NK_NEXT[COUNT1]="A_AXIS"
$NK_PARALLEL[COUNT1]="" $NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="OFFSET" $NK_TYPE[COUNT1]="OFFSET"
$NK_OFF_DIR[COUNT1,0]=0 $NK_OFF_DIR[COUNT1,0]=0
$NK_OFF_DIR[COUNT1,1]=0 $NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=100 $NK_OFF_DIR[COUNT1,2]=0
$NK_AXIS[COUNT1]="" $NK_AXIS[COUNT1]=""
$NK_A_OFF[COUNT1]=0 $NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0 $NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1 COUNT1=COUNT1+1

Notes:

840D sl SINUMERIK Operate Page 15 A178


A178 5-axis machine with table kinematics

$NK_NAME[COUNT1]="A_AXIS" $NK_NAME[COUNT1]="C_OFFSET"
$NK_NEXT[COUNT1]="C_OFFSET" $NK_NEXT[COUNT1]="CORR_C_OFFSET"
$NK_PARALLEL[COUNT1]="" $NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="AXIS_ROT" $NK_TYPE[COUNT1]="OFFSET"
$NK_OFF_DIR[COUNT1,0]=-1 $NK_OFF_DIR[COUNT1,0]=0
$NK_OFF_DIR[COUNT1,1]=0 $NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=0 $NK_OFF_DIR[COUNT1,2]=-100
$NK_AXIS[COUNT1]="MA1" $NK_AXIS[COUNT1]=""
$NK_A_OFF[COUNT1]=0 $NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0 $NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1 COUNT1=COUNT1+1

$NK_NAME[COUNT1]="CORR_C_OFFSET" $NK_NAME[COUNT1]="C_AXIS"
$NK_NEXT[COUNT1]="C_AXIS" $NK_NEXT[COUNT1]="TABLE_OFFSET"
$NK_PARALLEL[COUNT1]="" $NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="OFFSET" $NK_TYPE[COUNT1]="AXIS_ROT"
$NK_OFF_DIR[COUNT1,0]=0 $NK_OFF_DIR[COUNT1,0]=0
$NK_OFF_DIR[COUNT1,1]=0 $NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=0 $NK_OFF_DIR[COUNT1,2]=-1
$NK_AXIS[COUNT1]="" $NK_AXIS[COUNT1]="MC1"
$NK_A_OFF[COUNT1]=0 $NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0 $NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1 COUNT1=COUNT1+1

Notes:

A178 Page 16 840D sl SINUMERIK Operate


5-axis machine with table kinematics A178

$NK_NAME[COUNT1]="TABLE_OFFSET" $NK_NAME[COUNT1]="END_PART_CHAIN"
$NK_NEXT[COUNT1]="END_PART_CHAIN" $NK_NEXT[COUNT1]=""
$NK_PARALLEL[COUNT1]="" $NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="OFFSET" $NK_TYPE[COUNT1]="OFFSET"
$NK_OFF_DIR[COUNT1,0]=0 $NK_OFF_DIR[COUNT1,0]=0
$NK_OFF_DIR[COUNT1,1]=0 $NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=0 $NK_OFF_DIR[COUNT1,2]=0
$NK_AXIS[COUNT1]="" $NK_AXIS[COUNT1]=""
$NK_A_OFF[COUNT1]=0 $NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0 $NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1 COUNT1=COUNT1+1

A178: END

Notes:

840D sl SINUMERIK Operate Page 17 A178


A178 END 5-axis machine with table kinematics

Notes:

A178 Page 18 840D sl SINUMERIK Operate


A179 5-axis machine with head kinematics
Sinumerik
Operate

Module Description:

The following chapters provide further details of the kinematic chain operating principle. In particular,
the following topics are discussed:

• Fundamentals of the "Kinematic chains" function


• Creation of machine models with kinematic chain:
- 5-axis milling machine with head kinematics

Module Objective:

The reader gains a general overview of the kinematic chains operating principle application and, in
various exercises, familiarized with the individual functions and their capabilities. After working through
all chapters, readers should be able to integrate their own machine kinematics in the system.

Content:
Sinumerik

Fundamentals of the kinematic chain

Designing the kinematic chain

NC code of the kinematic chain

840D sl SINUMERIK Operate v4.8 Page 1 This document was produced for training purposes. A179
Siemens assumes no responsibility for its contents.
A179 5-axis machine with head kinematics

A179 Page 2 840D sl SINUMERIK Operate


5-axis machine with head kinematics A179

5-axis machine with head


kinematics
START

Fundamentals
of the kinematic
chain

Design of the
kinematic chain

NC code of the
kinematic chain

5-axis machine with head


kinematics
END

Notes:

840D sl SINUMERIK Operate Page 3 A179


A179 5-axis machine with head kinematics

Fundamentals of the kinematic chain The following vectors


C (0,0,1) first head axis
Example 4: A (1,0,0) second head axis
are declared for both rotary axes.
Kinematic chain of a milling machine with two rotary axes in
the machine head. For the subsequent deployment of CYCLE9960 for the
The machine zero (MCS) lies in the center of the clamping measurement and correction of the kinematics, a separate
table on the table surface. offset element for accepting the correction values is added for
each rotary axis.

Overview of the machine geometry:

MCS / ROOT
X=0
Y=0
Z=0

Z
Y

Notes:

A179 Page 4 840D sl SINUMERIK Operate


5-axis machine with head kinematics A179

Z_AXIS

Y_AXIS X_AXIS

A_AXIS

C_AXIS

SP1_AXIS

Notes:

840D sl SINUMERIK Operate Page 5 A179


A179 5-axis machine with head kinematics

The kinematic chain of the machine has the basic structure:

ROOT

Y_OFFSET
TABLE_
OFFSET

Y_AXIS

END_
PART_CHAIN
X_OFFSET

X_AXIS

Z_OFFSET

Z_AXIS

C_OFFSET

C_AXIS

CORR_A_OFFSET

A_OFFSET

A_AXIS

CORR_SP1_OFFSET

SP1_OFFSET

END_
SP1_AXIS
TOOL_CHAIN

Notes:

A179 Page 6 840D sl SINUMERIK Operate


5-axis machine with head kinematics A179

Design of the kinematic chain The machine provides the following software limit switch-
es (they are required for checking the traversal areas):
Before the modeling begins, the machine should be positioned
via MDA to "MCS-0": X-A axis:
$MA_POS_LIMIT_MINUS[X]=-1200
TRAFOOF $MA_POS_LIMIT_PLUS[X]=1200
CYCLE800
T0 Y axis:
M6 $MA_POS_LIMIT_MINUS[Y]=-900
G0 SUPA X0 Y0 Z0 A0 C0 $MA_POS_LIMIT_PLUS[Y]=700
M30
Z axis:
$MA_POS_LIMIT_MINUS[Z]=0
The position of spin axis "A" in MCS is assumed 220 mm $MA_POS_LIMIT_PLUS[Z]=750
above the tool acceptance.
This value is considered in the A_OFF_1 and SPI_OFF ele- The machine has the following machine axis names:
ments. MD 10000[0]=„MX1“ Machine X axis
MD 10000[1]=„MY1“ Machine Y axis
To prevent a jump in the WCS display when transformations MD 10000[2]=„MZ1“ Machine Z axis
are activated, the kinematic chain is closed with an offset MD 10000[3]=„MSP1“ Machine spindle
element at the end of the workpiece and tool chains. MD 10000[4]=„MA1“ Machine A axis
As alternative, the chain can be closed automatically via the MD 10000[5]=„MC1“ Machine C axis
system tag $NT_CNTRL[n] bit 7 and bit 8 (recommended).
A axis:
$MA_POS_LIMIT_MINUS[A]=-100
$MA_POS_LIMIT_PLUS[A]=100
No modulo axis!
Keine Modulo-Achse!

C axis:
$MA_POS_LIMIT_MINUS[C]=-180 Operating sequence:
$MA_POS_LIMIT_PLUS[C]=540 Place the cursor on line "Active data".
No modulo axis! New element → Kinematic element → Offset

The name is initialized automatically with "ROOT" and does


The following steps must be performed to create the structure not need to be changed.
tree: The offset values X,Y,Z do not need to be further assigned.
• Set the manufacturer password
• Call the "Commissioning" operating area

Notes:

840D sl SINUMERIK Operate Page 7 A179


A179 5-axis machine with head kinematics

Operating sequence for the offset of the Y linear axis: Operating sequence for the Y linear axis:
Place the cursor on line "ROOT". Place the cursor on line "Y_OFFSET".
New element → Kinematic element → Offset New element → Kinematic element → Linear axis

The name of the chain element is specified as "Y_OFFSET". The name of the chain element is specified as "Y_AXIS".
The direction vector is initialized with (0,0,0). The axis references machine axis "MY1" and has vector
(0,1,0).

Operating sequence for the offset of the X linear axis: Operating sequence for the X linear axis:
Place the cursor on line "Y_AXIS". Place the cursor on line "X_OFFSET".
New element → Kinematic element → Offset New element → Kinematic element → Linear axis

The name of the chain element is specified as "X_OFFSET". The name of the chain element is specified as "X_AXIS".
The direction vector is initialized with (0,0,0). The axis references machine axis "MX1" and has vector
(1,0,0).

Notes:

A179 Page 8 840D sl SINUMERIK Operate


5-axis machine with head kinematics A179

Operating sequence for the offset of the Z linear axis: Operating sequence for the Z linear axis:
Place the cursor on line "X_AXIS". Place the cursor on line "Z_OFFSET".
New element → Kinematic element → Offset New element → Kinematic element → Linear axis

The name of the chain element is specified as "Z_OFFSET". The name of the chain element is specified as "Z_AXIS".
The direction vector is initialized with (0,0,0). The axis references machine axis "MZ1" and has vector
(0,0,1).

Operating sequence for the offset of the C axis: Operating sequence for the C rotation axis:
Place the cursor on line "Z_AXIS". Place the cursor on line "C_OFFSET".
New element → Kinematic element → Offset New element → Kinematic element → Rotation axis

The name of the chain element is specified as "C_OFFSET". The name of the chain element is specified as "C_AXIS".
This element programs the offset of the C axis to the Z axis. The axis references machine axis "MC1" and has vector
The offset vector of the C axis is initialized with (0,0,0). (0,0,1).

Notes:

840D sl SINUMERIK Operate Page 9 A179


A179 5-axis machine with head kinematics

Operating sequence for correction element Operating sequence for the coarse offset of the A axis:
"CORR_A_OFFSET": Place the cursor on line "CORR_A_OFFSET".
Place the cursor on line "C_AXIS". New element → Kinematic element → Offset
New element → Kinematic element → Offset
The name of the chain element is specified as "A_OFFSET".
The name of the chain element is specified as This element programs the coarse offset of the A axis. The
"CORR_A_OFFSET". Because this element is used later by offset in the Z direction is 220 mm, this results in offset vector
CYCLE996, the offset vector is entered with (0,0,0). (0,0,220).

Operating sequence for the A rotation axis: Operating sequence for correction element
Place the cursor on line "A_OFFSET". "CORR_SP1_OFFSET":
New element → Kinematic element → Rotation axis Place the cursor on line "A_AXIS".
New element → Kinematic element → Offset
The name of the chain element is specified as "A_AXIS".
The axis references machine axis "MA1" and has vector The name of the chain element is specified as
(1,0,0). "CORR_SP1_OFFSET". Because this element is used later
by CYCLE996, the offset vector is entered with (0,0,0).

Notes:

A179 Page 10 840D sl SINUMERIK Operate


5-axis machine with head kinematics A179

Operating sequence for the offset of the spindle: Operating sequence for the spindle:
Place the cursor on line "CORR_SP1_OFFSET". Place the cursor on line "SP1_OFFSET".
New element → Kinematic element → Offset New element → Kinematic element → Rotary axis

The name of the chain element is specified as The name of the chain element is specified as "SP1_AXIS".
"SP1_OFFSET" and has offset vector (0,0,-220). The axis references machine axis "MSP1" and has vector
(0,0,-1).
The direction "-1" in the Z component is considered for the
deployment of turning tools or the tool type "L stylus".

To define uniquely the end of the chain in the tool branch, an Operating sequence for the definition of "TABLE_OFFSET":
offset element with the name "END_TOOL_CHAIN" is Place the cursor on line "ROOT".
appended as last element of the chain. New element → Kinematic element → Parallel offset

Operating sequence: The name of the chain element is specified as


Place the cursor on line "SP1_AXIS". "TABLE_OFFSET". The offset vector is initialized with (0,0,0).
New element → Kinematic element → Offset
The name of the chain element is specified as
"END_TOOL_CHAIN". Because no offset is used currently in
the complete tool chain, the offset values for X,Y,Z can remain
at the value "0".

Notes:

840D sl SINUMERIK Operate Page 11 A179


A179 5-axis machine with head kinematics

Operating sequence for the definition of Overall view of the fully defined kinematic chain:
"END_PART_CHAIN":
Place the cursor on line "ROOT".
New element → Kinematic element → Parallel offset

The name of the chain element is specified as


"END_PART_CHAIN". The offset vector is initialized with
(0,0,0).

NC code of the kinematic chain $NK_NAME[COUNT1]="Y_OFFSET"


$NK_NEXT[COUNT1]="Y_AXIS"
Representation of the kinematic chain as NC program:
$NK_PARALLEL[COUNT1]=""
DEF INT COUNT1 $NK_TYPE[COUNT1]="OFFSET"
$NK_OFF_DIR[COUNT1,0]=0
$NK_NAME[COUNT1]="ROOT" $NK_OFF_DIR[COUNT1,1]=0
$NK_NEXT[COUNT1]="Y_OFFSET" $NK_OFF_DIR[COUNT1,2]=0
$NK_PARALLEL[COUNT1]="TABLE_OFFSET" $NK_AXIS[COUNT1]=""
$NK_TYPE[COUNT1]="OFFSET" $NK_A_OFF[COUNT1]=0
$NK_OFF_DIR[COUNT1,0]=0 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_OFF_DIR[COUNT1,1]=0 $NK_SWITCH_POS[COUNT1]=0
$NK_OFF_DIR[COUNT1,2]=0 COUNT1=COUNT1+1
$NK_AXIS[COUNT1]=""
$NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1

Notes:

A179 Page 12 840D sl SINUMERIK Operate


5-axis machine with head kinematics A179

$NK_NAME[COUNT1]="Y_AXIS" $NK_NAME[COUNT1]="X_OFFSET"
$NK_NEXT[COUNT1]="X_OFFSET" $NK_NEXT[COUNT1]="X_AXIS"
$NK_PARALLEL[COUNT1]="" $NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="AXIS_LIN" $NK_TYPE[COUNT1]="OFFSET"
$NK_OFF_DIR[COUNT1,0]=0 $NK_OFF_DIR[COUNT1,0]=0
$NK_OFF_DIR[COUNT1,1]=1 $NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=0 $NK_OFF_DIR[COUNT1,2]=0
$NK_AXIS[COUNT1]="MY1" $NK_AXIS[COUNT1]=""
$NK_A_OFF[COUNT1]=0 $NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0 $NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1 COUNT1=COUNT1+1

$NK_NAME[COUNT1]="X_AXIS" $NK_NAME[COUNT1]="Z_OFFSET"
$NK_NEXT[COUNT1]="Z_OFFSET" $NK_NEXT[COUNT1]="Z_AXIS"
$NK_PARALLEL[COUNT1]="" $NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="AXIS_LIN" $NK_TYPE[COUNT1]="OFFSET"
$NK_OFF_DIR[COUNT1,0]=1 $NK_OFF_DIR[COUNT1,0]=0
$NK_OFF_DIR[COUNT1,1]=0 $NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=0 $NK_OFF_DIR[COUNT1,2]=0
$NK_AXIS[COUNT1]="MX1" $NK_AXIS[COUNT1]=""
$NK_A_OFF[COUNT1]=0 $NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0 $NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1 COUNT1=COUNT1+1

Notes:

840D sl SINUMERIK Operate Page 13 A179


A179 5-axis machine with head kinematics

$NK_NAME[COUNT1]="Z_AXIS" $NK_NAME[COUNT1]="C_OFFSET"
$NK_NEXT[COUNT1]="C_OFFSET" $NK_NEXT[COUNT1]="C_AXIS"
$NK_PARALLEL[COUNT1]="" $NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="AXIS_LIN" $NK_TYPE[COUNT1]="OFFSET"
$NK_OFF_DIR[COUNT1,0]=0 $NK_OFF_DIR[COUNT1,0]=0
$NK_OFF_DIR[COUNT1,1]=0 $NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=1 $NK_OFF_DIR[COUNT1,2]=0
$NK_AXIS[COUNT1]="MZ1" $NK_AXIS[COUNT1]=""
$NK_A_OFF[COUNT1]=0 $NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0 $NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1 COUNT1=COUNT1+1

$NK_NAME[COUNT1]="C_AXIS" $NK_NAME[COUNT1]="CORR_A_OFFSET"
$NK_NEXT[COUNT1]="CORR_A_OFFSET" $NK_NEXT[COUNT1]="A_OFFSET"
$NK_PARALLEL[COUNT1]="" $NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="AXIS_ROT" $NK_TYPE[COUNT1]="OFFSET"
$NK_OFF_DIR[COUNT1,0]=0 $NK_OFF_DIR[COUNT1,0]=0
$NK_OFF_DIR[COUNT1,1]=0 $NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=1 $NK_OFF_DIR[COUNT1,2]=0
$NK_AXIS[COUNT1]="MC1" $NK_AXIS[COUNT1]=""
$NK_A_OFF[COUNT1]=0 $NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0 $NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1 COUNT1=COUNT1+1

Notes:

A179 Page 14 840D sl SINUMERIK Operate


5-axis machine with head kinematics A179

$NK_NAME[COUNT1]="A_OFFSET" $NK_NAME[COUNT1]="A_AXIS"
$NK_NEXT[COUNT1]="A_AXIS" $NK_NEXT[COUNT1]="CORR_SP1_OFFSET"
$NK_PARALLEL[COUNT1]="" $NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="OFFSET" $NK_TYPE[COUNT1]="AXIS_ROT"
$NK_OFF_DIR[COUNT1,0]=0 $NK_OFF_DIR[COUNT1,0]=1
$NK_OFF_DIR[COUNT1,1]=0 $NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=220 $NK_OFF_DIR[COUNT1,2]=0
$NK_AXIS[COUNT1]="" $NK_AXIS[COUNT1]="MA1"
$NK_A_OFF[COUNT1]=0 $NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0 $NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1 COUNT1=COUNT1+1

$NK_NAME[COUNT1]="CORR_SP1_OFFSET" $NK_NAME[COUNT1]="SP1_OFFSET"
$NK_NEXT[COUNT1]="SP1_OFFSET" $NK_NEXT[COUNT1]="SP1_AXIS"
$NK_PARALLEL[COUNT1]="" $NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="OFFSET" $NK_TYPE[COUNT1]="OFFSET"
$NK_OFF_DIR[COUNT1,0]=0 $NK_OFF_DIR[COUNT1,0]=0
$NK_OFF_DIR[COUNT1,1]=0 $NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=0 $NK_OFF_DIR[COUNT1,2]=-220
$NK_AXIS[COUNT1]="" $NK_AXIS[COUNT1]=""
$NK_A_OFF[COUNT1]=0 $NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0 $NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1 COUNT1=COUNT1+1

Notes:

840D sl SINUMERIK Operate Page 15 A179


A179 END 5-axis machine with head kinematics

$NK_NAME[COUNT1]="SP1_AXIS" $NK_NAME[COUNT1]="END_TOOL_CHAIN"
$NK_NEXT[COUNT1]="END_TOOL_CHAIN" $NK_NEXT[COUNT1]=""
$NK_PARALLEL[COUNT1]="" $NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="AXIS_ROT" $NK_TYPE[COUNT1]="OFFSET"
$NK_OFF_DIR[COUNT1,0]=0 $NK_OFF_DIR[COUNT1,0]=0
$NK_OFF_DIR[COUNT1,1]=0 $NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=-1 $NK_OFF_DIR[COUNT1,2]=0
$NK_AXIS[COUNT1]="MSP1" $NK_AXIS[COUNT1]=""
$NK_A_OFF[COUNT1]=0 $NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0 $NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1 COUNT1=COUNT1+1

$NK_NAME[COUNT1]="TABLE_OFFSET" $NK_NAME[COUNT1]="END_PART_CHAIN"
$NK_NEXT[COUNT1]="END_PART_CHAIN" $NK_NEXT[COUNT1]=""
$NK_PARALLEL[COUNT1]="" $NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="OFFSET" $NK_TYPE[COUNT1]="OFFSET"
$NK_OFF_DIR[COUNT1,0]=0 $NK_OFF_DIR[COUNT1,0]=0
$NK_OFF_DIR[COUNT1,1]=0 $NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=0 $NK_OFF_DIR[COUNT1,2]=0
$NK_AXIS[COUNT1]="" $NK_AXIS[COUNT1]=""
$NK_A_OFF[COUNT1]=0 $NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0 $NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1 COUNT1=COUNT1+1

A179: END

Notes:

A179 Page 16 840D sl SINUMERIK Operate


A180 5-axis machine with mixed kinematics
Sinumerik
Operate

Module Description:

The following chapters provide further details of the kinematic chain operating principle. In particular,
the following topics are discussed:

• Creation of machine models with kinematic chain:


- 5-axis milling machine with mixed kinematics

Module Objective:

The reader gains a general overview of the kinematic chains operating principle application and, in
various exercises, familiarized with the individual functions and their capabilities. After working through
all chapters, readers should be able to integrate their own machine kinematics in the system.

Content:
Sinumerik

Fundamentals of the kinematic chain

Designing the kinematic chain

NC code of the kinematic chain

840D sl SINUMERIK Operate v4.8 Page 1 This document was produced for training purposes. A180
Siemens assumes no responsibility for its contents.
A180 5-axis machine with mixed kinematics

A180 Page 2 840D sl SINUMERIK Operate


5-axis machine with mixed kinematics A180

5-axis machine with mixed


kinematics
START

Fundamentals
of the kinematic
chain

Kinematic
chain

NC code of the
kinematic chain

5-axis machine with mixed


kinematics
END

Notes:

840D sl SINUMERIK Operate Page 3 A180


A180 5-axis machine with mixed kinematics

Fundamentals of the kinematic chain

Example 5:
Kinematic chain of a milling machine with one rotary axis in
the table and one rotary axis in the head.

For the next example, a 5-axis milling machine should be


created with a C axis in the machine table and a B axis with
45° axis in the machine head.
The machine zero (MCS) lies in the center of the C axis on
the table surface (current position of the tool tip).

The following vectors


B (0,1,1) head axis
C (0,0,-1) table axis
are declared for both rotary axes.

Definition of the machine reference point and of the


axis directions:

MCS / ROOT
X=0
Y=0
Z=0
Z
Y

Notes:

A180 Page 4 840D sl SINUMERIK Operate


5-axis machine with mixed kinematics A180

Z_AXIS

B_AXIS

X_AXIS
SP1_AXIS

C_AXIS

Y_AXIS

Notes:

840D sl SINUMERIK Operate Page 5 A180


A180 5-axis machine with mixed kinematics

The kinematic chain of the machine has the basic structure:

ROOT Next parallel element for the


Next element for the "ROOT" element
"ROOT" element

X_OFFSET Y_OFFSET

X_AXIS Y_AXIS
The structure of the axes is config-
ured so that each machine axis
always consists of an offset ele-
ment and an axis element.
This method is used identically for
C_OFFSET rotary and linear axes.
Z_OFFSET This provides the capability to
adapt the chain easier for future
functions (based on the kinematic
chain).

Z_AXIS CORR_C_OFFSET

The "TABLE_OFFSET" element is


used to set the total offset on the
table surface.
B_OFFSET C_AXIS
The "END_TOOL_CHAIN" and
"END_PART_CHAIN" elements
close the associated chain branch.
The chain remains open in this
shown example. This situation must
B_AXIS TABLE_OFFSET
be considered later when a trans-
formation is deployed.

CORR_SP1_OFFSET END_PART_CHAIN

SP1_OFFSET

SP1_AXIS END_TOOL_CHAIN

Notes:

A180 Page 6 840D sl SINUMERIK Operate


5-axis machine with mixed kinematics A180

Design of the kinematic chain The machine provides the following software limit switch-
Before the modeling begins, the machine should be positioned es (they are required for checking the traversal areas):
via MDA to "MCS-0":
X axis:
TRAFOOF $MA_POS_LIMIT_MINUS[X]=-700
CYCLE800 $MA_POS_LIMIT_PLUS[X]=700
T0
M6 Y axis:
G0 SUPA X0 Y0 Z0 B0 C0 $MA_POS_LIMIT_MINUS[Y]=-100
M30 $MA_POS_LIMIT_PLUS[Y]=950

Z axis:
The rotary axes should be configured with the following offset $MA_POS_LIMIT_MINUS[Z]=0
values: $MA_POS_LIMIT_PLUS[Z]=750
Offset from ROOT to B: (0,0,-15)
Offset from ROOT to C: (0,0,0) The machine has the following machine axis names:
MD 10000[0]=„MX1“ Machine X axis
The rotary axes should be configured with the following MD 10000[1]=„MY1“ Machine Y axis
direction vectors: MD 10000[2]=„MZ1“ Machine Z axis
Vector of the B axis: (0,1,1) MD 10000[3]=„MSP1“ Machine spindle
Vector of the C axis: (0,0,-1) MD 10000[4]=„MB1“ Machine B axis
MD 10000[5]=„MC1“ Machine C axis
To prevent a jump in the WCS display when transformations
are activated, the kinematic chain is closed with an offset
element at the end of the workpiece and tool chains.
As alternative, the chain can be closed automatically via the
system tag $NT_CNTRL[n] bit 7 and bit 8 (recommended).

The following steps must be performed to create the structure Operating sequence:
tree: Place the cursor on line "Active data".
New element → Kinematic element → Offset

• Set the manufacturer password The name is initialized automatically with "ROOT" and does
• Call the "Commissioning" operating area not need to be changed.
The offset values X,Y,Z do not need to be further assigned.

Notes:

840D sl SINUMERIK Operate Page 7 A180


A180 5-axis machine with mixed kinematics

Operating sequence for the offset of the X linear axis: Operating sequence for the X linear axis:
Place the cursor on line "ROOT". Place the cursor on line "X_OFFSET".
New element → Kinematic element → Offset New element → Kinematic element → Linear axis

The name of the chain element is specified as "X_OFFSET". The name of the chain element is specified as "X_LIN".
The direction vector is defined with (0,0,0). The axis references machine axis "MX1" and has vector
(1,0,0).

Operating sequence for the offset of the Z linear axis: Operating sequence for the Z linear axis:
Place the cursor on line "X_AXIS". Place the cursor on line "Z_OFFSET".
New element → Kinematic element → Offset New element → Kinematic element → Linear axis

The name of the chain element is specified as "Z_OFFSET". The name of the chain element is specified as "Z_AXIS".
The direction vector is initialized with (0,0,0). The axis references machine axis "MZ1" and has vector
(0,0,1).

Notes:

A180 Page 8 840D sl SINUMERIK Operate


5-axis machine with mixed kinematics A180

Operating sequence for the offset of the B axis: Operating sequence for the B rotation axis:
Place the cursor on line "Z_AXIS". Place the cursor on line "B_OFFSET".
New element → Kinematic element → Offset New element → Kinematic element → Rotation axis

The name of the chain element is specified as "B_OFFSET". The name of the chain element is specified as "B_AXIS".
This element programs the offset of the B axis to the Z axis. The axis references machine axis "MB1" and has vector
The offset vector of the B axis is initialized with (0,0,-15). (0,1,1).

Operating sequence for the correction element between the B Operating sequence for the offset of the spindle:
axis and the spindle: Place the cursor on line "CORR_SP1_OFFSET".
Place the cursor on line "B_AXIS". New element → Kinematic element → Offset
New element → Kinematic element → Offset
The name of the chain element is specified as
The name of the chain element is specified as "SP1_OFFSET" and has offset vector (0,0,15).
"CORR_SP1_OFFSET". Because this element is used later
by CYCLE996, the offset vector is entered with (0,0,0).

Notes:

840D sl SINUMERIK Operate Page 9 A180


A180 5-axis machine with mixed kinematics

Operating sequence for the spindle: To define uniquely the end of the chain in the tool branch, an
Place the cursor on line "SP1_OFFSET". offset element with the name "END_TOOL_CHAIN" is ap-
New element → Kinematic element → Rotary axis pended as last element of the chain.

The name of the chain element is specified as "SP1_AXIS". Operating sequence:


The axis references machine axis "MSP1" and has vector Place the cursor on line "SP1_AXIS".
(0,0,-1). New element → Kinematic element → Offset
The direction "-1" in the Z component is considered for the The name of the chain element is specified as
deployment of turning tools or the tool type "L stylus". "END_TOOL_CHAIN". Because no offset is used currently in
the complete tool chain, the offset values for X,Y,Z can re-
main at the value "0".

Notes:

A180 Page 10 840D sl SINUMERIK Operate


5-axis machine with mixed kinematics A180

After this step, the kinematic chain in the tool branch is fully described. In the next steps, the elements in the workpiece branch
must be defined.

ROOT

X_OFFSET Y_OFFSET

Y_AXIS
X_AXIS

C_OFFSET
Z_OFFSET

CORR_C_
Z_AXIS OFFSET

B_OFFSET C_AXIS

TABLE_
B_AXIS OFFSET

CORR_SP1_ END_
OFFSET PART_CHAIN

SP1_OFFSET

END_
SP1_AXIS
TOOL_CHAIN

Notes:

840D sl SINUMERIK Operate Page 11 A180


A180 5-axis machine with mixed kinematics

Operating sequence for the offset of the Y linear axis: Operating sequence for the Y linear axis:
Place the cursor on line "ROOT". Place the cursor on line "Y_OFFSET".
New element → Kinematic element → Parallel offset New element → Kinematic element → Parallel linear axis

The name of the chain element is specified as "Y_OFFSET". The name of the chain element is specified as "Y_AXIS".
The offset vector of the Y axis is initialized with (0,0,0). The axis references machine axis "MY1" and has vector
(0,-1,0).

Operating sequence for the coarse offset of the C axis: Operating sequence for the correction element of the C axis:
Place the cursor on line "Y_AXIS". Place the cursor on line "C_OFFSET".
New element → Kinematic element → Offset New element → Kinematic element → Offset

The name of the chain element is specified as "C_OFFSET". The name of the chain element is specified as
This element programs the coarse offset of the C axis. The "CORR_C_OFFSET". Because this element is used later by
offset vector is defined with (0,0,0). CYCLE996, the offset vector is entered with (0,0,0).

Notes:

A180 Page 12 840D sl SINUMERIK Operate


5-axis machine with mixed kinematics A180

Operating sequence for the rotation component of the C axis: Operating sequence for the TABLE-OFFSET:

Place the cursor on line "CORR_C_OFFSET". Place the cursor on line "C_AXIS".
New element → Kinematic element → Rotation axis New element → Kinematic element → Offset

The name of the chain element is specified as "C_AXIS". The name of the chain element is specified as
The axis references machine axis "MC1" and has "TABLE_OFFSET".
vector (0,0,-1). The offset is defined with the vector (0,0,0) and so points to
the table surface.

Operating sequence for the "END_PART_CHAIN" element: This completes the definition of the kinematic chain that can
Place the cursor on line "TABLE_OFFSET". be used for further applications (collision avoidance, transfor-
New element → Kinematic element → Offset mations).
The following design of the machine kinematics results in the
The name of the chain element is specified as structure tree of the NC:
"END_PART_CHAIN".
Because the kinematic chain in this example is not closed, the
offset vector is initialized with (0,0,0).

Notes:

840D sl SINUMERIK Operate Page 13 A180


A180 5-axis machine with mixed kinematics

NC code of the kinematic chain $NK_NAME[COUNT1]="X_OFFSET"


Assignment of NC tags for the kinematic chain: $NK_NEXT[COUNT1]="X_AXIS"
$NK_PARALLEL[COUNT1]=""
DEF INT COUNT1 $NK_TYPE[COUNT1]="OFFSET"
$NK_OFF_DIR[COUNT1,0]=0
$NK_NAME[COUNT1]="ROOT" $NK_OFF_DIR[COUNT1,1]=0
$NK_NEXT[COUNT1]="X_OFFSET" $NK_OFF_DIR[COUNT1,2]=0
$NK_PARALLEL[COUNT1]="Y_OFFSET" $NK_AXIS[COUNT1]=""
$NK_TYPE[COUNT1]="OFFSET" $NK_A_OFF[COUNT1]=0
$NK_OFF_DIR[COUNT1,0]=0 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_OFF_DIR[COUNT1,1]=0 $NK_SWITCH_POS[COUNT1]=0
$NK_OFF_DIR[COUNT1,2]=0 COUNT1=COUNT1+1
$NK_AXIS[COUNT1]=""
$NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1

$NK_NAME[COUNT1]="X_AXIS" $NK_NAME[COUNT1]="Z_OFFSET"
$NK_NEXT[COUNT1]="Z_OFFSET" $NK_NEXT[COUNT1]="Z_AXIS"
$NK_PARALLEL[COUNT1]="" $NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="AXIS_LIN" $NK_TYPE[COUNT1]="OFFSET"
$NK_OFF_DIR[COUNT1,0]=1 $NK_OFF_DIR[COUNT1,0]=0
$NK_OFF_DIR[COUNT1,1]=0 $NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=0 $NK_OFF_DIR[COUNT1,2]=0
$NK_AXIS[COUNT1]="MX1" $NK_AXIS[COUNT1]=""
$NK_A_OFF[COUNT1]=0 $NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0 $NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1 COUNT1=COUNT1+1

Notes:

A180 Page 14 840D sl SINUMERIK Operate


5-axis machine with mixed kinematics A180

$NK_NAME[COUNT1]="Z_AXIS" $NK_NAME[COUNT1]="B_OFFSET"
$NK_NEXT[COUNT1]="B_OFFSET" $NK_NEXT[COUNT1]="B_AXIS"
$NK_PARALLEL[COUNT1]="" $NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="AXIS_LIN" $NK_TYPE[COUNT1]="OFFSET"
$NK_OFF_DIR[COUNT1,0]=0 $NK_OFF_DIR[COUNT1,0]=0
$NK_OFF_DIR[COUNT1,1]=0 $NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=1 $NK_OFF_DIR[COUNT1,2]=-15
$NK_AXIS[COUNT1]="MZ1" $NK_AXIS[COUNT1]=""
$NK_A_OFF[COUNT1]=0 $NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0 $NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1 COUNT1=COUNT1+1

$NK_NAME[COUNT1]="B_AXIS" $NK_NAME[COUNT1]="CORR_SP1_OFFSET"
$NK_NEXT[COUNT1]="CORR_SP1_OFFSET" $NK_NEXT[COUNT1]="SP1_OFFSET"
$NK_PARALLEL[COUNT1]="" $NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="AXIS_ROT" $NK_TYPE[COUNT1]="OFFSET"
$NK_OFF_DIR[COUNT1,0]=0 $NK_OFF_DIR[COUNT1,0]=0
$NK_OFF_DIR[COUNT1,1]=1 $NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=1 $NK_OFF_DIR[COUNT1,2]=0
$NK_AXIS[COUNT1]="MB1" $NK_AXIS[COUNT1]=""
$NK_A_OFF[COUNT1]=0 $NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0 $NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1 COUNT1=COUNT1+1

Notes:

840D sl SINUMERIK Operate Page 15 A180


A180 5-axis machine with mixed kinematics

$NK_NAME[COUNT1]="SP1_OFFSET" $NK_NAME[COUNT1]="SP1_AXIS"
$NK_NEXT[COUNT1]="SP1_AXIS" $NK_NEXT[COUNT1]="END_TOOL_CHAIN"
$NK_PARALLEL[COUNT1]="" $NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="OFFSET" $NK_TYPE[COUNT1]="AXIS_ROT"
$NK_OFF_DIR[COUNT1,0]=0 $NK_OFF_DIR[COUNT1,0]=0
$NK_OFF_DIR[COUNT1,1]=0 $NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=15 $NK_OFF_DIR[COUNT1,2]=-1
$NK_AXIS[COUNT1]="" $NK_AXIS[COUNT1]="MSP1"
$NK_A_OFF[COUNT1]=0 $NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0 $NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1 COUNT1=COUNT1+1

$NK_NAME[COUNT1]="END_TOOL_CHAIN" $NK_NAME[COUNT1]="Y_OFFSET"
$NK_NEXT[COUNT1]="" $NK_NEXT[COUNT1]="Y_AXIS"
$NK_PARALLEL[COUNT1]="" $NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="OFFSET" $NK_TYPE[COUNT1]="OFFSET"
$NK_OFF_DIR[COUNT1,0]=0 $NK_OFF_DIR[COUNT1,0]=0
$NK_OFF_DIR[COUNT1,1]=0 $NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=0 $NK_OFF_DIR[COUNT1,2]=0
$NK_AXIS[COUNT1]="" $NK_AXIS[COUNT1]=""
$NK_A_OFF[COUNT1]=0 $NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0 $NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1 COUNT1=COUNT1+1

Notes:

A180 Page 16 840D sl SINUMERIK Operate


5-axis machine with mixed kinematics A180

$NK_NAME[COUNT1]="Y_AXIS" $NK_NAME[COUNT1]="C_OFFSET"
$NK_NEXT[COUNT1]="C_OFFSET" $NK_NEXT[COUNT1]="CORR_C_OFFSET"
$NK_PARALLEL[COUNT1]="" $NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="AXIS_LIN" $NK_TYPE[COUNT1]="OFFSET"
$NK_OFF_DIR[COUNT1,0]=0 $NK_OFF_DIR[COUNT1,0]=0
$NK_OFF_DIR[COUNT1,1]=-1 $NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=0 $NK_OFF_DIR[COUNT1,2]=0
$NK_AXIS[COUNT1]="MY1" $NK_AXIS[COUNT1]=""
$NK_A_OFF[COUNT1]=0 $NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0 $NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1 COUNT1=COUNT1+1

$NK_NAME[COUNT1]="CORR_C_OFFSET" $NK_NAME[COUNT1]="C_AXIS"
$NK_NEXT[COUNT1]="C_AXIS" $NK_NEXT[COUNT1]="TABLE_OFFSET"
$NK_PARALLEL[COUNT1]="" $NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="OFFSET" $NK_TYPE[COUNT1]="AXIS_ROT"
$NK_OFF_DIR[COUNT1,0]=0 $NK_OFF_DIR[COUNT1,0]=0
$NK_OFF_DIR[COUNT1,1]=0 $NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=0 $NK_OFF_DIR[COUNT1,2]=-1
$NK_AXIS[COUNT1]="" $NK_AXIS[COUNT1]="MC1"
$NK_A_OFF[COUNT1]=0 $NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0 $NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1 COUNT1=COUNT1+1

Notes:

840D sl SINUMERIK Operate Page 17 A180


A180 END 5-axis machine with mixed kinematics

$NK_NAME[COUNT1]="TABLE_OFFSET" $NK_NAME[COUNT1]="END_PART_CHAIN"
$NK_NEXT[COUNT1]="END_PART_CHAIN" $NK_NEXT[COUNT1]=""
$NK_PARALLEL[COUNT1]="" $NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="OFFSET" $NK_TYPE[COUNT1]="OFFSET"
$NK_OFF_DIR[COUNT1,0]=0 $NK_OFF_DIR[COUNT1,0]=0
$NK_OFF_DIR[COUNT1,1]=0 $NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=0 $NK_OFF_DIR[COUNT1,2]=0
$NK_AXIS[COUNT1]="" $NK_AXIS[COUNT1]=""
$NK_A_OFF[COUNT1]=0 $NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0 $NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1 COUNT1=COUNT1+1

A180: END

Notes:

A180 Page 18 840D sl SINUMERIK Operate


A181 Collision avoidance, simple 3-axis machine
Sinumerik
Operate

Module Description:

The following chapters provide further details of the kinematic chain operating principle. In particular,
the following topics are discussed:

• Collision avoidance with kinematic chains


- Configuration of collision pairs for a simple 3-axis machine

Module Objective:

The reader gains a general overview of the kinematic chains operating principle application and, in
various exercises, familiarized with the individual functions and their capabilities. After working through
all chapters, readers should be able to integrate their own machine kinematics in the system.

Content:
Sinumerik

Collision avoidance for a simple 3-axis machine

840D sl SINUMERIK Operate v4.8 Page 1 This document was produced for training purposes. A181
Siemens assumes no responsibility for its contents.
A181 Collision avoidance, simple 3-axis machine

A181 Page 2 840D sl SINUMERIK Operate


Collision avoidance, simple 3-axis machine A181

Collision avoidance, simple


3-axis machine
START

Collision
avoidance,
simple
3-axis machine

Collision avoidance, simple


3-axis machine
END

Notes:

840D sl SINUMERIK Operate Page 3 A181


A181 Collision avoidance, simple 3-axis machine

Collision avoidance for a simple 3-axis machine

Fundamentals of collision avoidance

The associated license for the collision check must be considered in more detail:
• Collision avoidance
Collision check using primitive and STL model bodies, 1 channel, all operating modes
• ECO collision avoidance
Collision check using primitive model bodies, 1 channel, all operating modes, max. 34 collision bodies,
max. 17 protection areas, max. 10 collision pairs (no STL models)
• Advanced collision avoidance
Collision check using primitive and STL model bodies, 1 channel, all operating modes, dynamic material removal and
dynamically moved bodies (tool changer, etc.) can be simulated, connection to the IPC possible,
ModuleWorks package can be integrated

The maximum number of chain elements is defined independent of the selected license with the
MD 18880 $MN_MM_MAXNUM_KIN_CHAIN_ELEM.

In this section, an extension for a collision check for the previously created machine model is performed.
In the examples, the modeling is performed with the "Primitive body" provided by the system:
Frame
Box
Sphere
Cylinder
Cone / truncated cone

These primitive bodies have the advantage that they requires little main memory and consequently place only a low computing
load on the NCU.
All collision bodies connected with a rotary axis that should also be used in spindle operation are subject the supplementary
conditions listed below:
• The bodies must be rotation-symmetric (cylinder, sphere or cone / truncated cone).
• The rotation axis of the bodies must be congruent with the rotary axis center.

If necessary, a switchover to an adapted body via a switch must be made for non-rotation-symmetric bodies.

When STL files are used, where possible, all superfluous surfaces (indentations for screws or small roundings at body edges)
should be removed before conversion to STL. Curved surfaces greatly increase the data volume of the collision bodies.

Example 1: Cylinder with coarse resolution, file Example 2: The same cylinder as in Example 1,
size 40 KB. but with a finer resolution, file size 120 KB.

For a more coarse model


tolerance, the test distance
for the collision considera-
tion may need to be in-
creased!

Notes:

A181 Page 4 840D sl SINUMERIK Operate


Collision avoidance, simple 3-axis machine A181

For the graphic representation of the machine or for performing a collision check, protection areas must be defined at appropriate
locations in the kinematic chain. These protection areas can then be assigned collision bodies.
Where possible, the collision bodies for representation of the spindle nose should be assigned to the higher-level rotary or linear
axis, rather than to the spindle itself, because otherwise the bodies in spindle operation are considered to be "rotating" in the NC.

Collision bodies should be added to a spindle only in justified situations.

The associated structure has the relationship:

Element of the
kinematic chain

Protection area
All required bodies are defined within the
protection area.
1st collision body within the
protection area

2nd collision body within the


protection area

The protection areas are subdivided into two categories:

1. Machine protection area


2. Tool protection area

Application:

A machine protection area defines a collision group for bodies that should be checked for machine movements or are required for
the graphic representation.

A tool protection area defines the tool change location (namely, represents the tool reference point).
For machines with a tool spindle, just one tool protection area below the spindle is required.

Notes:

840D sl SINUMERIK Operate Page 5 A181


A181 Collision avoidance, simple 3-axis machine

Description of the machine protection area:

$NP_PROT_TYPE[n]=“MACHINE“

$NP_PROT_NAME[n]=“Z_PROT“ ;adapt

$NP_PROT_D_LEVEL[n]=0

$NP_BIT_NO[n]=-1

$NP_INIT_STAT[n]=“I“
A=Activated
P=Preactivated
I=Deactivated

Description of the tool protection area:

$NP_PROT_TYPE[n]=“TOOL_PROT“

$NP_PROT_NAME[n]=“TOOL_PROT“ ;adapt

$NP_PROT_D_LEVEL[n]=0

$NP_BIT_NO[n]=-1

$NP_INIT_STAT[n]=“I“

$NP_INDEX[n,0]=1
$NP_INDEX[n,1]=9998
$NP_INDEX[n,2]=1

Notes:

A181 Page 6 840D sl SINUMERIK Operate


Collision avoidance, simple 3-axis machine A181

The elements available for modeling are described in more detail:

Frame:
The "Frame" element does not represent any body itself, but rather defines a coordinate system for subsequent bodies.

$NP_TYPE[n]=“FRAME“

$NP_NAME[n]=“FRAME_1“ ;adapt

$NP_OFF[n,0]=0
$NP_OFF[n,1]=0
$NP_OFF[n,2]=0

$NP_DIR[n,0]=0
$NP_DIR[n,1]=0
$NP_DIR[n,2]=0

$NP_ANG[n]=0

Box

The "Box" element type describes a cuboid with a reference point in its center that serves as reference for the offset values. To
rotate the body in space, a direction vector and a rotation angle can be specified.

$NP_TYPE[n]=“BOX“

$NP_NAME[n]=“BOX_1“ ;adapt
$NP_CLOR[n]=0
$NP_D_LEVEL[n]=0
$NP_USAGE[n]=“A“

$NP_PARA[n,0]=200
$NP_PARA[n,1]=200
$NP_PARA[n,2]=200

$NP_OFF[n,0]=0
$NP_OFF[n,1]=0
$NP_OFF[n,2]=0

$NP_DIR[n,0]=0
$NP_DIR[n,1]=0
$NP_DIR[n,2]=0

$NP_ANG[n]=0

Notes:

840D sl SINUMERIK Operate Page 7 A181


A181 Collision avoidance, simple 3-axis machine

Sphere

The "Sphere" element type is defined only with the radius; the reference point for the offset values is located in the center.

$NP_TYPE[n]=“SPHERE“

$NP_NAME[n]=“SPHERE_1“ ;adapt
$NP_CLOR[n]=0
$NP_D_LEVEL[n]=0
$NP_USAGE[n]=“A“

$NP_PARA[n,0]=20
$NP_PARA[n,1]=0 ;not used

$NP_PARA[n,2]=0 ;not used

$NP_OFF[n,0]=0
$NP_OFF[n,1]=0
$NP_OFF[n,2]=0

$NP_DIR[n,0]=0
$NP_DIR[n,1]=0
$NP_DIR[n,2]=0

Cylinder

The "Cylinder" element type is defined with a height and a radius. The reference point for the offset and rotation values is located
in the center of the body.

$NP_TYPE[n]=“CYLINDER“

$NP_NAME[n]=“CYL_1“ ;adapt
$NP_CLOR[n]=0
$NP_D_LEVEL[n]=0
$NP_USAGE[n]=“A“

$NP_PARA[n,0]=200
$NP_PARA[n,1]=50
$NP_PARA[n,2]=0 ;not used

$NP_OFF[n,0]=0
$NP_OFF[n,1]=0
$NP_OFF[n,2]=0

$NP_DIR[n,0]=0
$NP_DIR[n,1]=0
$NP_DIR[n,2]=0

$NP_ANG[n]=0

Notes:

A181 Page 8 840D sl SINUMERIK Operate


Collision avoidance, simple 3-axis machine A181

Cone / truncated cone

The "Cone / truncated cone" element type describes a tapered body with a reference point in its center that serves as reference
for the offset and rotation values. The body is defined with a height as well as the upper and lower radiuses.

$NP_TYPE[n]=“CONE“

$NP_NAME[n]=“CONE_1“ ;adapt
$NP_CLOR[n]=0
$NP_D_LEVEL[n]=0
$NP_USAGE[n]=“A“

$NP_PARA[n,0]=200
$NP_PARA[n,1]=20
$NP_PARA[n,2]=50

$NP_OFF[n,0]=0
$NP_OFF[n,1]=0
$NP_OFF[n,2]=0

$NP_DIR[n,0]=0
$NP_DIR[n,1]=0
$NP_DIR[n,2]=0

$NP_ANG[n]=0

File

The "File" element accesses a file in STL format. This allows machine parts to be represented with geometries that otherwise can
be represented by standard bodies only with great effort.

$NP_TYPE[n]=“FILE“

$NP_NAME[n]=“FILE_1“ ;adapt
$NP_CLOR[n]=0
$NP_D_LEVEL[n]=0
$NP_USAGE[n]=“A“
$NP_FILENAME[n]=“TEST.STL“

$NP_OFF[n,0]=0
$NP_OFF[n,1]=0
$NP_OFF[n,2]=0

$NP_DIR[n,0]=0
$NP_DIR[n,1]=0
$NP_DIR[n,2]=0

$NP_ANG[n]=0

Notes:

840D sl SINUMERIK Operate Page 9 A181


A181 Collision avoidance, simple 3-axis machine

The reference point for the individual bodies is always in their The absolute center point of this cylinder based on the MCS
center and the offset values of each individual body always is then (0,0,10).
refer to its predecessor. The next attached body then takes this point as reference
point. The Z_CYL_2 body should be placed exactly on its
Example: predecessor. The two halves of the body dimensions (20
Arrangement of the collision bodies of the Z axis on the 5-axis mm / 2 + 80 mm / 2) result in the total offset of 50 mm, etc.
machine with table kinematics: The red control points in the lower sketch are the center
points of the bodies.

Absolut eZ: 600mm

Z_BOX_1
200 x 200 x 1000

Absolute Z: 60mm
Because in the elements of the kinematic chain, no offset
values are programmed previously starting at the root, the
first body in this example (Z_CYL_1) is clamped Z_CYL_2
symmetrically at the machine zero. H80 x R75
If it is assumed for G0 SUPA Z0 D0 that the lower edge of the
cylinder should lie exactly at MCS=0, the cylinder must be
moved by half its height in Z+ (here 10 mm). Absolute Z: 10mm

Z_CYL_1
H20 x R50 Absolute Z:

If two bodies need to attached together at one reference point, this can be implemented with the element type for parallel ele-
ments.
Tip:
If two parallel elements need to be integrated immediately below the protection area, a frame with the offset values (0,0,0) can be
added on which the desired elements can be attached in parallel:

Dummy frame forms the reference point for A_BOX_5 and


A_CYL_1

Parallel box to A_CYL_1; both use the reference point for


the A_FRAME_1 element

Parallel box to A_BOX_1; both use the reference point for


the A_CYL_1 element

Parallel cylinder to A_CYL_2; both use the reference point


for the A_BOX_1 element

Notes:

A181 Page 10 840D sl SINUMERIK Operate


Collision avoidance, simple 3-axis machine A181

Activation of the collision check:

For the activation, the following prerequisites must be fulfilled:


• The kinematic chain must represent the machine correctly
• Protection areas must be present
• Collision bodies must be present in the protection areas
• Collision pairs must have been formed
• The machine axes have been homed

The collision prevention can be selected or deselected via the NC program:

Selection: PROTS("R")
Deselection: PROTS("I")

The distance of the bodies for which a collision should be reported can be defined via the
MD10619 $MN_COLLISION_TOLERANCE
MD10622 $MN_COLLISION_SAFETY_DIST

The machine data can be activated with "NEWCONF".

Example:
The deployed bodies with their dimensions are listed sepa-
The kinematic chain of the 3-axis machine is augmented with rately below:
the collision avoidance in Chapter A176.
• Connected with the ROOT element:
For this purpose, the associated protection areas and collision - ROOT_BOX_1 X=300, Y=600, Z=1500
bodies must be augmented with the chain. - ROOT_BOX_2 X=800, Y=1000, Z=200

• Connected with the Z axis:


- Z_BOX_1 X=1200, Y=200, Z=400

• Connected with the X axis :


- X_BOX_1 X=600, Y=400, Z=150

• Connected with the Y axis :


- Y_BOX_1 X=300, Y=1000, Z=300
- Y_BOX_2 X=300, Y=50, Z=600
- Y_BOX_3 X=250, Y=250, Z=300
- Y_CYL_1 Z=600, R=150
- Y_CYL_2 Z=20, R=50

Notes:

840D sl SINUMERIK Operate Page 11 A181


A181 Collision avoidance, simple 3-axis machine

View of the complete machine:

Y axis
Spindle

X axis
Z axis

Note:
The machine position in the
Picture is MCS X0 Y0 Z150.

Representation of the individual protection areas:

ROOT_PROT X_PROT Z_PROT

Notes:

A181 Page 12 840D sl SINUMERIK Operate


Collision avoidance, simple 3-axis machine A181

Y_PROT

Firstly, the individual elements of the kinematic chain are assigned machine protection areas to which defined bodies are then
assigned.

The machine tool table, consisting of frame and base plate, is defined in step 1.
The graphic (VS2) is activated at the begin of the definition:

All three represented reference points of the axes (sphere on each axis) should be united as a single point so that only "one"
sphere is visible. This means that all axes have the MCS value "0". If this is not possible because of the machine traversal paths,
the machine axes in the MCS should be moved to a defined position.

Notes:

840D sl SINUMERIK Operate Page 13 A181


A181 Collision avoidance, simple 3-axis machine

In the structure tree of the machine, a machine protection area for the ROOT components is then defined.
The two collision bodies "frame" and "base plate" are then assigned to this protection area.
Note:
The "NEXT WINDOW" key switches between the "Tree" and "Graphic" windows. The active window receives a blue background
at the top.

The focus is placed on the ROOT element in the structure The "Collision element" (VS2) is selected from the vertical
tree, softkey bar.

Type "Machine protection area" is selected as protection area


from the "New collision element" dialog box.

and the softkey "New Element" (VS3) activated.

Notes:

A181 Page 14 840D sl SINUMERIK Operate


Collision avoidance, simple 3-axis machine A181

The machine protection area receives its name from the element of the "ROOT" structure tree with suffix "_PROT". The activation
status is written as "activated". The color can be chosen freely.

The inputs are accepted with "OK" (VS8).

The "ROOT_PROT" protection area contains


the elements:

• ROOT_BOX_1 (300 x 600 x 1500 mm)


• ROOT_BOX_2 (800 x 1000 x 200 mm)

Y500mm
Z -750mm

Machine reference point:


MCS X=0 Y=0 Z=0
ROOT_BOX_1 reference point

Z –850mm
ROOT_BOX_2 reference point

Notes:

840D sl SINUMERIK Operate Page 15 A181


A181 Collision avoidance, simple 3-axis machine

To assign a body to the protection area, actuate the "New The size and the properties of the collision body are specified
element" (VS3) softkey. as in the next screenshot:

Select "Box" in the dialog box:

The selection is accepted with "OK" (VS8).

The offset values are used to write the collision body in the
correct position. The offset values refer to the center point of
the "Box" element type.

The inputs are accepted with "OK" (VS8).

The tool table is then displayed in the "Graphic" window.


To augment the "Base plate" element, actuate the "New
element" (VS3) softkey from the vertical bar.

The selection is accepted with "OK" (VS8).

Type "parallel box" is selected from the "New collision ele-


ment" dialog box for new collision elements.

Notes:

A181 Page 16 840D sl SINUMERIK Operate


Collision avoidance, simple 3-axis machine A181

For a better differentiation between the base plate and the After accepting the data with "OK" (VS8), the tool table is dis-
frame, a different color is selected. Because the base plate is played completely in the graphic window:
placed completely outside the collision zone, the "Display"
selection is used for the "Use" selection.

In the next steps, the collision bodies are integrated within the Select the "Machine protection area" type from the dialog
kinematic chain in the workpiece direction. First, the protection window.
area for the Z axis with the associated collision body is
created. To do this, position the cursor on the "Z_AXIS"
element and actuate the "New element" (VS3) softkey:

Notes:

840D sl SINUMERIK Operate Page 17 A181


A181 Collision avoidance, simple 3-axis machine

The protection area has the following parameters: The "New element" (VS3) softkey assigns a collision body to
the defined protection area:

The "BOX" selection is used as element type.

The collision element is assigned the name "Z_BOX_1" and To complete the workpiece branch, a body must be defined for
the following parameters are set: the X axis. To do this, position the cursor on the "X_AXIS"
element.

Notes:

A181 Page 18 840D sl SINUMERIK Operate


Collision avoidance, simple 3-axis machine A181

Select the "Machine protection area" type from the dialog The protection area has the following parameters:
window.

The "New element" (VS3) softkey assigns a collision body to For the X axis (this represents the machine table), the
the defined protection area: parameters are defined as follows in the dialog box:

The "BOX" selection is used as element type.

This parameterization means "Z0" in the machine coordinate


system is exactly on the table surface.
This completes the machine definition on the "workpiece
side".

Notes:

840D sl SINUMERIK Operate Page 19 A181


A181 Collision avoidance, simple 3-axis machine

To complete the model, the tool chain must be augmented Select the "Machine protection area" type from the dialog
with protection areas and collision bodies. window.
The cursor is positioned on the "Y_AXIS" element in the
structure tree.

The protection area has the following parameters:

Notes:

A181 Page 20 840D sl SINUMERIK Operate


Collision avoidance, simple 3-axis machine A181

Structure of the protection area:

Y_CYL_1 Y –325mm
Z150mm

Y_BOX_1
Y_BOX_3

Y -625mm
Z20mm Y525mm
Z150mm

Z –160mm Y625mm
Z150mm

Y_BOX_2

Y_CYL_2

The "New element" (VS3) softkey assigns a collision body to For the Y axis, the parameters are defined as follows in the
the defined protection area: dialog box:

The "BOX" selection is used as element type.

The offset values cause the main body to be moved to the


rear so there is space for the vertical milling spindle in front of
the body.

Notes:

840D sl SINUMERIK Operate Page 21 A181


A181 Collision avoidance, simple 3-axis machine

In addition to the Y axis, a box for the drive belt and a spindle The following parameters apply:
motor is mounted. Both bodies are not relevant for the
collision check; they should only give the model a
characteristic appearance. The belt box is defined as
subordinate element for the "Y_BOX_1" collision body.

The collision element type "Cylinder" is used for the motor; The following parameters apply:
the motor is turned by 90° with a rotational vector.

Notes:

A181 Page 22 840D sl SINUMERIK Operate


Collision avoidance, simple 3-axis machine A181

Operating sequence for the "Y_BOX_3" (milling head) ele- Operating sequence for the "CYL_2" (spindle nose) element
ment Place the cursor on line "Y_BOX_3".
Place the cursor on line "Y_BOX_1". New element → Collision element → Cylinder
New element → Collision element → Parallel box
The name of the chain element is specified as "CYL_2".
The name of the chain element is specified as "Y_BOX_3". The following parameters apply:
The following parameters apply:

A protection area for the tool must then be defined. This infor- The new collision element must have type "Tool protection
mation serves as information for the position of the tool ac- area".
ceptance location in the collision model. To define this protec-
tion area, the cursor must be placed on the "SPI_AXIS" ele-
ment:

Notes:

840D sl SINUMERIK Operate Page 23 A181


A181 Collision avoidance, simple 3-axis machine

The TO unit is 1, the magazine number is 9998, the magazine This completes the machine model, except for the assignment
slot is 1. This means the tool is placed at the correct location of the collision consideration. The model function can be
after the tool call. checked by traversing the machine axis and placing a tool.

The limit switches of the three linear axes are also set. Before
defining the limit switches, check that all axes are located
within the working area!

The following values are used:


X: $MA_POS_LIMIT_MINUS[X]=-300
$MA_POS_LIMIT_PLUS[X]=300

Y: $MA_POS_LIMIT_MINUS[Y]=-380
$MA_POS_LIMIT_PLUS[Y]=0

Z: $MA_POS_LIMIT_MINUS[Z]=0
$MA_POS_LIMIT_PLUS[Z]=600

Assignment of tags for the protection areas: $NP_PROT_NAME[COUNT3]="Z_PROT"


$NP_CHAIN_ELEM[COUNT3]="Z_AXIS"
$NP_PROT_NAME[COUNT3]="ROOT_PROT"
$NP_PROT_TYPE[COUNT3]="MACHINE"
$NP_CHAIN_ELEM[COUNT3]="ROOT"
$NP_1ST_PROT[COUNT3]="Z_BOX_1"
$NP_PROT_TYPE[COUNT3]="MACHINE" $NP_PROT_COLOR[COUNT3]=-8388608
$NP_1ST_PROT[COUNT3]="ROOT_BOX_1" $NP_PROT_D_LEVEL[COUNT3]=0
$NP_PROT_COLOR[COUNT3]=-16776961 $NP_BIT_NO[COUNT3]=-1
$NP_PROT_D_LEVEL[COUNT3]=0
$NP_INIT_STAT[COUNT3]="A"
$NP_BIT_NO[COUNT3]=-1
$NP_INDEX[COUNT3,0]=0
$NP_INIT_STAT[COUNT3]="A"
$NP_INDEX[COUNT3,1]=0
$NP_INDEX[COUNT3,0]=0 $NP_INDEX[COUNT3,2]=0
$NP_INDEX[COUNT3,1]=0 ;$AN_COLL_STATE[COUNT3]=1
$NP_INDEX[COUNT3,2]=0
;$AN_COLL_STATE_COND[COUNT3]=00011011
;$AN_COLL_STATE[COUNT3]=1 COUNT3=COUNT3+1
;$AN_COLL_STATE_COND[COUNT3]=00011011
COUNT3=COUNT3+1

Notes:

A181 Page 24 840D sl SINUMERIK Operate


Collision avoidance, simple 3-axis machine A181

$NP_PROT_NAME[COUNT3]="X_PROT" $NP_PROT_NAME[COUNT3]="Y_PROT"
$NP_CHAIN_ELEM[COUNT3]="X_AXIS" $NP_CHAIN_ELEM[COUNT3]="Y_AXIS"
$NP_PROT_TYPE[COUNT3]="MACHINE" $NP_PROT_TYPE[COUNT3]="MACHINE"
$NP_1ST_PROT[COUNT3]="X_BOX_1" $NP_1ST_PROT[COUNT3]="Y_BOX_1"
$NP_PROT_COLOR[COUNT3]=-16711936 $NP_PROT_COLOR[COUNT3]=-16711936
$NP_PROT_D_LEVEL[COUNT3]=0 $NP_PROT_D_LEVEL[COUNT3]=0
$NP_BIT_NO[COUNT3]=-1 $NP_BIT_NO[COUNT3]=-1
$NP_INIT_STAT[COUNT3]="A" $NP_INIT_STAT[COUNT3]="A"
$NP_INDEX[COUNT3,0]=0 $NP_INDEX[COUNT3,0]=0
$NP_INDEX[COUNT3,1]=0 $NP_INDEX[COUNT3,1]=0
$NP_INDEX[COUNT3,2]=0 $NP_INDEX[COUNT3,2]=0
;$AN_COLL_STATE[COUNT3]=1 ;$AN_COLL_STATE[COUNT3]=1
;$AN_COLL_STATE_COND[COUNT3]=00011011 ;$AN_COLL_STATE_COND[COUNT3]=00011011
COUNT3=COUNT3+1 COUNT3=COUNT3+1

$NP_PROT_NAME[COUNT3]="TOOL_PROT"
$NP_CHAIN_ELEM[COUNT3]="SPI_AXIS"
$NP_PROT_TYPE[COUNT3]="TOOL"
$NP_1ST_PROT[COUNT3]=""
$NP_PROT_COLOR[COUNT3]=-16744448
$NP_PROT_D_LEVEL[COUNT3]=0
$NP_BIT_NO[COUNT3]=-1
$NP_INIT_STAT[COUNT3]="A"
$NP_INDEX[COUNT3,0]=1
$NP_INDEX[COUNT3,1]=9998
$NP_INDEX[COUNT3,2]=1
;$AN_COLL_STATE[COUNT3]=0
;$AN_COLL_STATE_COND[COUNT3]=00001010
COUNT3=COUNT3+1

Notes:

840D sl SINUMERIK Operate Page 25 A181


A181 Collision avoidance, simple 3-axis machine

Assignment of tags for the collision bodies: $NP_NAME[COUNT4]="ROOT_BOX_2"


$NP_NEXT[COUNT4]=""
DEF INT COUNT4 $NP_NEXTP[COUNT4]=""
$NP_ADD[COUNT4]=""
$NP_NAME[COUNT4]="ROOT_BOX_1" $NP_COLOR[COUNT4]=65280
$NP_NEXT[COUNT4]="" $NP_D_LEVEL[COUNT4]=0
$NP_NEXTP[COUNT4]="ROOT_BOX_2" $NP_USAGE[COUNT4]="V"
$NP_ADD[COUNT4]="" $NP_TYPE[COUNT4]="BOX"
$NP_COLOR[COUNT4]=0 $NP_FILENAME[COUNT4]=""
$NP_D_LEVEL[COUNT4]=0 $NP_PARA[COUNT4,0]=800
$NP_USAGE[COUNT4]="A" $NP_PARA[COUNT4,1]=1000
$NP_TYPE[COUNT4]="BOX" $NP_PARA[COUNT4,2]=200
$NP_FILENAME[COUNT4]="" $NP_OFF[COUNT4,0]=0
$NP_PARA[COUNT4,0]=300 $NP_OFF[COUNT4,1]=0
$NP_PARA[COUNT4,1]=600 $NP_OFF[COUNT4,2]=-850
$NP_PARA[COUNT4,2]=1500 $NP_DIR[COUNT4,0]=0
$NP_OFF[COUNT4,0]=0 $NP_DIR[COUNT4,1]=0
$NP_OFF[COUNT4,1]=500 $NP_DIR[COUNT4,2]=0
$NP_OFF[COUNT4,2]=-750 $NP_ANG[COUNT4]=0
$NP_DIR[COUNT4,0]=0 COUNT4=COUNT4+1
$NP_DIR[COUNT4,1]=0
$NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=0
COUNT4=COUNT4+1

$NP_NAME[COUNT4]="Z_BOX_1" $NP_NAME[COUNT4]="X_BOX_1"
$NP_NEXT[COUNT4]="" $NP_NEXT[COUNT4]=""
$NP_NEXTP[COUNT4]="" $NP_NEXTP[COUNT4]=""
$NP_ADD[COUNT4]="" $NP_ADD[COUNT4]=""
$NP_COLOR[COUNT4]=8421504 $NP_COLOR[COUNT4]=32768
$NP_D_LEVEL[COUNT4]=0 $NP_D_LEVEL[COUNT4]=0
$NP_USAGE[COUNT4]="A" $NP_USAGE[COUNT4]="A"
$NP_TYPE[COUNT4]="BOX" $NP_TYPE[COUNT4]="BOX"
$NP_FILENAME[COUNT4]="" $NP_FILENAME[COUNT4]=""
$NP_PARA[COUNT4,0]=1200 $NP_PARA[COUNT4,0]=600
$NP_PARA[COUNT4,1]=200 $NP_PARA[COUNT4,1]=400
$NP_PARA[COUNT4,2]=400 $NP_PARA[COUNT4,2]=150
$NP_OFF[COUNT4,0]=0 $NP_OFF[COUNT4,0]=0
$NP_OFF[COUNT4,1]=100 $NP_OFF[COUNT4,1]=-200
$NP_OFF[COUNT4,2]=-200 $NP_OFF[COUNT4,2]=-75
$NP_DIR[COUNT4,0]=0 $NP_DIR[COUNT4,0]=0
$NP_DIR[COUNT4,1]=0 $NP_DIR[COUNT4,1]=0
$NP_DIR[COUNT4,2]=0 $NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=0 $NP_ANG[COUNT4]=0
COUNT4=COUNT4+1 COUNT4=COUNT4+1

Notes:

A181 Page 26 840D sl SINUMERIK Operate


Collision avoidance, simple 3-axis machine A181

$NP_NAME[COUNT4]="Y_BOX_1" $NP_NAME[COUNT4]="Y_BOX_2"
$NP_NEXT[COUNT4]="Y_BOX_2" $NP_NEXT[COUNT4]="Y_CYL_1"
$NP_NEXTP[COUNT4]="Y_BOX_3" $NP_NEXTP[COUNT4]=""
$NP_ADD[COUNT4]="" $NP_ADD[COUNT4]=""
$NP_COLOR[COUNT4]=0 $NP_COLOR[COUNT4]=8421504
$NP_D_LEVEL[COUNT4]=0 $NP_D_LEVEL[COUNT4]=0
$NP_USAGE[COUNT4]="A" $NP_USAGE[COUNT4]="V"
$NP_TYPE[COUNT4]="BOX" $NP_TYPE[COUNT4]="BOX"
$NP_FILENAME[COUNT4]="" $NP_FILENAME[COUNT4]=""
$NP_PARA[COUNT4,0]=300 $NP_PARA[COUNT4,0]=300
$NP_PARA[COUNT4,1]=1000 $NP_PARA[COUNT4,1]=50
$NP_PARA[COUNT4,2]=300 $NP_PARA[COUNT4,2]=600
$NP_OFF[COUNT4,0]=0 $NP_OFF[COUNT4,0]=0
$NP_OFF[COUNT4,1]=625 $NP_OFF[COUNT4,1]=525
$NP_OFF[COUNT4,2]=150 $NP_OFF[COUNT4,2]=150
$NP_DIR[COUNT4,0]=0 $NP_DIR[COUNT4,0]=0
$NP_DIR[COUNT4,1]=0 $NP_DIR[COUNT4,1]=0
$NP_DIR[COUNT4,2]=0 $NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=0 $NP_ANG[COUNT4]=0
COUNT4=COUNT4+1 COUNT4=COUNT4+1

$NP_NAME[COUNT4]="Y_CYL_1" $NP_NAME[COUNT4]="Y_BOX_3"
$NP_NEXT[COUNT4]="" $NP_NEXT[COUNT4]="Y_CYL_2"
$NP_NEXTP[COUNT4]="" $NP_NEXTP[COUNT4]=""
$NP_ADD[COUNT4]="" $NP_ADD[COUNT4]=""
$NP_COLOR[COUNT4]=32768 $NP_COLOR[COUNT4]=8388608
$NP_D_LEVEL[COUNT4]=0 $NP_D_LEVEL[COUNT4]=0
$NP_USAGE[COUNT4]="V" $NP_USAGE[COUNT4]="A"
$NP_TYPE[COUNT4]="CYLINDER" $NP_TYPE[COUNT4]="BOX"
$NP_FILENAME[COUNT4]="" $NP_FILENAME[COUNT4]=""
$NP_PARA[COUNT4,0]=600 $NP_PARA[COUNT4,0]=250
$NP_PARA[COUNT4,1]=150 $NP_PARA[COUNT4,1]=250
$NP_PARA[COUNT4,2]=0 $NP_PARA[COUNT4,2]=300
$NP_OFF[COUNT4,0]=0 $NP_OFF[COUNT4,0]=0
$NP_OFF[COUNT4,1]=-325 $NP_OFF[COUNT4,1]=-625
$NP_OFF[COUNT4,2]=150 $NP_OFF[COUNT4,2]=20
$NP_DIR[COUNT4,0]=1 $NP_DIR[COUNT4,0]=0
$NP_DIR[COUNT4,1]=0 $NP_DIR[COUNT4,1]=0
$NP_DIR[COUNT4,2]=0 $NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=90 $NP_ANG[COUNT4]=0
COUNT4=COUNT4+1 COUNT4=COUNT4+1

Notes:

840D sl SINUMERIK Operate Page 27 A181


A181 Collision avoidance, simple 3-axis machine

$NP_NAME[COUNT4]="Y_CYL_2"
$NP_NEXT[COUNT4]=""
$NP_NEXTP[COUNT4]=""
$NP_ADD[COUNT4]=""
$NP_COLOR[COUNT4]=0
$NP_D_LEVEL[COUNT4]=0
$NP_USAGE[COUNT4]="A"
$NP_TYPE[COUNT4]="CYLINDER"
$NP_FILENAME[COUNT4]=""
$NP_PARA[COUNT4,0]=20
$NP_PARA[COUNT4,1]=40
$NP_PARA[COUNT4,2]=0
$NP_OFF[COUNT4,0]=0
$NP_OFF[COUNT4,1]=0
$NP_OFF[COUNT4,2]=-160
$NP_DIR[COUNT4,0]=0
$NP_DIR[COUNT4,1]=0
$NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=0
COUNT4=COUNT4+1

To allow the collision consideration to become active, those protection areas that must not collide with each other must be
defined.

For this machine, the combinations listed below should be checked:

TOOL_PROT → X_PROT Tool against table of the X axis


TOOL_PROT → ROOT_PROT Tool against the tool table for deployed angle heads
Y_PROT → X_PROT Spindle nose against the table, when no tool is active

To define the collision pairs, place the cursor on the "Collision groups" folder in the structure tree:

Notes:

A181 Page 28 840D sl SINUMERIK Operate


Collision avoidance, simple 3-axis machine A181

In the first declaration, the two protection areas TOOL_PROT Protection area TOOL_PROT → ROOT_PROT:
and X_PROT are checked against each other:
Operating sequence: Place the cursor on "Collision groups"
New element → Collision pair → OK

Protection area Y_PROT → X_PROT: Representation of the collision pairs as NC program:

Operating sequence: Place the cursor on "Collision groups" DEF INT COUNT5
New element → Collision pair → OK
$NP_COLL_PAIR[COUNT5,0]="TOOL_PROT"
$NP_COLL_PAIR[COUNT5,1]="ROOT_PROT"
$NP_SAFETY_DIST[COUNT5]=0
COUNT5=COUNT5+1

$NP_COLL_PAIR[COUNT5,0]="TOOL_PROT"
$NP_COLL_PAIR[COUNT5,1]="X_PROT"
$NP_SAFETY_DIST[COUNT5]=0
COUNT5=COUNT5+1

$NP_COLL_PAIR[COUNT5,0]="Y_PROT"
$NP_COLL_PAIR[COUNT5,1]="X_PROT"
$NP_SAFETY_DIST[COUNT5]=0
COUNT5=COUNT5+1

M30

Notes:

840D sl SINUMERIK Operate Page 29 A181


A181 Collision avoidance, simple 3-axis machine

Use of npp files: Presentation of the Initial Situation:

The npp File format can be used to combine several individual


Collision bodies into one Total collision body. Within the npp
file, the Definition of the individual Bodies is defined by the
Use of the respective System parameters. The Position offset Y_BOX_3
is calculated in line with how to enter via the HMI masks. Y_CYL_1
Example:
In the case of the 3x machine described in this Chapter, the
entire Y-axis, consisting of:
Y_BOX_1, Y_BOX_2, Y_BOX_3, Y_CYL_1, Y_CYL_2
is replaced by a single Collision Body YBOX.
Y_BOX_1

Y_BOX_2
Y_CYL_2

Final Body from the npp file: YBOX The file "YBOX.npp" is filled with the following Content:

;COLLISION AVOIDANCE DATA


;LOC_NP_ROOT_NAME = "YBOX"

$NP_NAME[0] = "YBOX"
$NP_COLOR[0] = 'HFF97AAAE'
$NP_USAGE[0] = "A"
$NP_TYPE[0] = "BOX"
$NP_PARA[0,0] = 300
$NP_PARA[0,1] = 1000
$NP_PARA[0,2] = 300
$NP_OFF[0,0] = 0
$NP_OFF[0,1] = 625
$NP_OFF[0,2] = 150
$NP_NEXT[0] = "Y_BOX_2"

$NP_NAME[1] = "Y_BOX_2"
For this purpose, the System data in the Directory $NP_COLOR[1] = 'HFF97AAAE'
NC data/3D collision model/mm file YBOX.npp $NP_USAGE[1] = "A"
(take care with upper and lower case!) Generated. $NP_TYPE[1] = "BOX"
$NP_PARA[1,0] = 300
$NP_PARA[1,1] = 50
$NP_PARA[1,2] = 600
$NP_OFF[1,0] = 0
$NP_OFF[1,1] = 525
$NP_OFF[1,2] = 150
$NP_NEXT[1] = "Y_CYL_1"

Notes:

A181 Page 30 840D sl SINUMERIK Operate


Collision avoidance, simple 3-axis machine A181

$NP_NAME[2] = "Y_CYL_1" $NP_NAME[4] = "Y_BOX_3"


$NP_COLOR[2] = 'HFF97AAAE' $NP_COLOR[4] = 'HFF97AAAE'
$NP_USAGE[2] = "A" $NP_USAGE[4] = "A"
$NP_TYPE[2] = "CYLINDER" $NP_TYPE[4] = "BOX"
$NP_PARA[2,0] = 600 $NP_PARA[4,0] = 250
$NP_PARA[2,1] = 150 $NP_PARA[4,1] = 250
$NP_PARA[2,2] = 0 $NP_PARA[4,2] = 300
$NP_OFF[2,0] = 0 $NP_OFF[4,0] = 0
$NP_OFF[2,1] = -325 $NP_OFF[4,1] = -825
$NP_OFF[2,2] = 150 $NP_OFF[4,2] = -280
$NP_DIR[2,0] = 1 $NP_DIR[4,0] = 0
$NP_DIR[2,1] = 0 $NP_DIR[4,1] = 0
$NP_DIR[2,2] = 0 $NP_DIR[4,2] = 0
$NP_ANG[2] = 90 $NP_ANG[4] = 0
$NP_NEXT[2] = "JUST_ROT" $NP_NEXT[4] = "Y_CYL_2"

$NP_NAME[3] = "JUST_ROT" $NP_NAME[5] = "Y_CYL_2"


$NP_COLOR[3] = 'HFF97AAAE' $NP_COLOR[5] = 'HFF97AAAE'
$NP_USAGE[3] = "A" $NP_USAGE[5] = "A"
$NP_TYPE[3] = "BOX" $NP_TYPE[5] = "CYLINDER"
$NP_PARA[3,0] = 0 $NP_PARA[5,0] = 20
$NP_PARA[3,1] = 0 $NP_PARA[5,1] = 40
$NP_PARA[3,2] = 0 $NP_PARA[5,2] = 0
$NP_OFF[3,0] = 0 $NP_OFF[5,0] = 0
$NP_OFF[3,1] = 0 $NP_OFF[5,1] = 0
$NP_OFF[3,2] = 0 $NP_OFF[5,2] = -160
$NP_DIR[3,0] = 1 $NP_DIR[5,0] = 0
$NP_DIR[3,1] = 0 $NP_DIR[5,1] = 0
$NP_DIR[3,2] = 0 $NP_DIR[5,2] = 0
$NP_ANG[3] = -90 $NP_ANG[5] = 0
$NP_NEXT[3] = "Y_BOX_3" $NP_NEXT[5] = ""

The Structural Tree is changed at the Point "Y _ PROT": The The following Settings are adopted:
existing collision bodies are deleted and a new Collision ele-
ment with the Type "File" is created in the Protection Area "Y
_ PROT."

Operator sequence:
Cursor on "Y _ PROT," Soft-key "New Element" (VS3), Soft-
key "Collision element" (VS2), "File," OK.

The Machine can then be used again as before

A181: END

Notes:

840D sl SINUMERIK Operate Page 31 A181


A181 END Collision avoidance, simple 3-axis machine

Notes:

A181 Page 32 840D sl SINUMERIK Operate


A182 Collision avoidance, 3-axis machine with dividing unit
Sinumerik
Operate

Module Description:

The following chapters provide further details of the kinematic chain operating principle. In particular,
the following topics are discussed:

• Collision avoidance with kinematic chains


- Configuration of collision pairs for a 3-axis machine with optional dividing unit

Module Objective:

The reader gains a general overview of the kinematic chains operating principle application and, in
various exercises, familiarized with the individual functions and their capabilities. After working through
all chapters, readers should be able to integrate their own machine kinematics in the system.

Content:
Sinumerik

Collision avoidance for a 3-axis machine with dividing unit

840D sl SINUMERIK Operate v4.8 Page 1 This document was produced for training purposes. A182
Siemens assumes no responsibility for its contents.
A182 Collision avoidance, 3-axis machine with dividing unit

A182 Page 2 840D sl SINUMERIK Operate


Collision avoidance, 3-axis machine with dividing unit A182

Collision avoidance, 3-axis


machine with dividing unit
START

Collision
avoidance,
3-axis machine
with
dividing unit

Collision avoidance, 3-axis


machine with dividing unit
END

Notes:

840D sl SINUMERIK Operate Page 3 A182


A182 Collision avoidance, 3-axis machine with dividing unit

Collision avoidance, 3-axis machine with dividing unit

To augment the kinematic chain of the 3-axis machine with collision check, various steps must be performed:

• Augment the kinematic chain with protection areas


• Augment the protection areas with model bodies
• Define the collision pairs

As precaution, the positions of the machine axes should be checked before starting work, because the positions affect the
representation in the graphic.

Moveable bodies should be defined for the following elements from the kinematic chain:
• ROOT
• X_AXIS
• Y_AXIS
• Z_AXIS
• A_AXIS

X_PROT

Z_PROT

Y_PROT

A_PROT

Notes:

A182 Page 4 840D sl SINUMERIK Operate


Collision avoidance, 3-axis machine with dividing unit A182

Definition of the protection areas and of the collision bodies for the "ROOT" element:

In this example, a machine protection area that contains all elements of the base frame and of the tool changer is defined for the
"ROOT" element:

The "ROOT" protection area contains the following elements:

Designation: Dimension Offset values Use Type


ROOT_BOX_1 2000 x 1800 x 250 (0,200,-645) Base plate Box
ROOT_BOX_2 50 x 1800 x 2400 (-1025,0,1075) Left side panel Box
ROOT_BOX_3 2050 x 380 x 1750 (-25,710,1000) Rear panel Box, parallel
ROOT_BOX_4 2000 x 500 x 450 (25,-440,650) Upper bar X Box
ROOT_BOX_5 1000 x 1800 x 500 (-525,0,500) Tool magazine Box

ROOT_BOX_4

ROOT_BOX_5 ROOT_BOX_3

ROOT_BOX_2

ROOT_BOX_1

Notes:

840D sl SINUMERIK Operate Page 5 A182


A182 Collision avoidance, 3-axis machine with dividing unit

Operating sequence for the creation: Operating sequence for creating the base plate:

Place the cursor on line "ROOT". Place the cursor on line "ROOT_PROT".
New element → Collision element → Machine protection area New element → Collision element → Box

The name of the chain element is specified as The name of the chain element is specified as
"ROOT_PROT"; the mode is switched to "Activated". "ROOT_BOX_1"; the use is switched to
"Display + Monitoring".

Operating sequence for creating the left side panel: Operating sequence for creating the rear panel:

Place the cursor on line "ROOT_BOX_1". Place the cursor on line "ROOT_BOX_1".
New element → Collision element → Box New element → Collision element → Parallel box

The name of the chain element is specified as The name of the chain element is specified as
"ROOT_BOX_2"; the use is switched to "ROOT_BOX_3"; the use is switched to
"Display + Monitoring". "Display + Monitoring".

Notes:

A182 Page 6 840D sl SINUMERIK Operate


Collision avoidance, 3-axis machine with dividing unit A182

Operating sequence for creating the X bar: Operating sequence for creating the tool magazine:

Place the cursor on line "ROOT_BOX_3". Place the cursor on line "ROOT_BOX_2".
New element → Collision element → Box New element → Collision element → Box
The name of the chain element is specified as
"ROOT_BOX_4"; the use is switched to The name of the chain element is specified as
"Display + Monitoring". "ROOT_BOX_5"; the use is switched to
"Display + Monitoring".

Operating sequence for creating the protection area for the Y Operating sequence for creating the machine table:
axis:
Place the cursor on line "Y_LIN_PROT".
Place the cursor on line "Y_AXIS". New element → Collision element → Box
New element → Collision element → Machine protection area
The name of the chain element is specified as "Y_BOX_1";
The name of the chain element is specified as the use is switched to "Display + Monitoring".
"Y_LIN_PROT"; the mode is switched to "Activated".

Notes:

840D sl SINUMERIK Operate Page 7 A182


A182 Collision avoidance, 3-axis machine with dividing unit

Operating sequence for creating the protection area for the A Operating sequence for creating the main body of the A axis:
axis:
Place the cursor on line "A_PROT".
Place the cursor on line "A_OFFSET". New element → Collision element → Box
New element → Collision element → Machine protection area
The name of the chain element is specified as "A_BOX_1";
The name of the chain element is specified as "A_PROT"; the the use is switched to "Display + Monitoring".
mode is switched to "Activated".

Operating sequence for creating the chuck of the A axis: Operating sequence for creating the protection area for the X
axis:
Place the cursor on line "A_BOX_1".
New element → Collision element → Cylinder Place the cursor on line "X_AXIS".
New element → Collision element → Machine protection area
The name of the chain element is specified as "A_CYL_1"; the
use is switched to "Display + Monitoring". The name of the chain element is specified as
"X_LIN_PROT"; the mode is switched to "Activated".

Notes:

A182 Page 8 840D sl SINUMERIK Operate


Collision avoidance, 3-axis machine with dividing unit A182

Operating sequence for creating the support plate for the X Operating sequence for creating the protection area for the Z
axis: axis:

Place the cursor on line "X_LIN_PROT". Place the cursor on line "Z_AXIS".
New element → Collision element → Box New element → Collision element → Machine protection area

The name of the chain element is specified as "X_BOX_1"; The name of the chain element is specified as "Z_LIN_PROT";
the use is switched to "Display + Monitoring". the mode is switched to "Activated".

Two elements are specified for the Z axis: A cylinder for the Operating sequence for creating the outer body for the Z axis:
spindle nose and a box for the outer body of the Z axis.
Operating sequence for creating the spindle nose for the Z Place the cursor on line "Z_CYL_1".
axis: New element → Collision element → Box

Place the cursor on line "Z_LIN_PROT". The name of the chain element is specified as "Z_BOX_1"; the
New element → Collision element → Cylinder use is switched to "Display + Monitoring".

The name of the chain element is specified as "Z_CYL_1"; the


use is switched to "Display + Monitoring".

Notes:

840D sl SINUMERIK Operate Page 9 A182


A182 Collision avoidance, 3-axis machine with dividing unit

Finally, the tool change location on the Z axis must be defined This completes the modeling of the complete machine; the
as tool protection area. structure tree has the design:
Operating sequence:

Place the cursor on line "SP1_AXIS".


New element → Collision element → Tool protection area

The name of the tool protection area is specified as


"TOOL_PROT"; the mode is switched to "Activated".

Assignment of tags for the protection areas: $NP_PROT_NAME[COUNT3]="ROOT_PROT"


$NP_CHAIN_ELEM[COUNT3]="ROOT"
DEF INT COUNT3 $NP_PROT_TYPE[COUNT3]="MACHINE"
$NP_PROT_NAME[COUNT3]="Y_LIN_PROT" $NP_1ST_PROT[COUNT3]="ROOT_BOX_1"
$NP_CHAIN_ELEM[COUNT3]="Y_AXIS" $NP_PROT_COLOR[COUNT3]=-16711936
$NP_PROT_TYPE[COUNT3]="MACHINE" $NP_PROT_D_LEVEL[COUNT3]=0
$NP_1ST_PROT[COUNT3]="Y_BOX_1" $NP_BIT_NO[COUNT3]=-1
$NP_PROT_COLOR[COUNT3]=-16744256 $NP_INIT_STAT[COUNT3]="A"
$NP_PROT_D_LEVEL[COUNT3]=0 $NP_INDEX[COUNT3,0]=0
$NP_BIT_NO[COUNT3]=-1 $NP_INDEX[COUNT3,1]=0
$NP_INIT_STAT[COUNT3]="A" $NP_INDEX[COUNT3,2]=0
$NP_INDEX[COUNT3,0]=0 COUNT3=COUNT3+1
$NP_INDEX[COUNT3,1]=0
$NP_INDEX[COUNT3,2]=0
COUNT3=COUNT3+1

Notes:

A182 Page 10 840D sl SINUMERIK Operate


Collision avoidance, 3-axis machine with dividing unit A182

$NP_PROT_NAME[COUNT3]="X_LIN_PROT" $NP_PROT_NAME[COUNT3]="Z_LIN_PROT"
$NP_CHAIN_ELEM[COUNT3]="X_AXIS" $NP_CHAIN_ELEM[COUNT3]="Z_AXIS"
$NP_PROT_TYPE[COUNT3]="MACHINE" $NP_PROT_TYPE[COUNT3]="MACHINE"
$NP_1ST_PROT[COUNT3]="X_BOX_1" $NP_1ST_PROT[COUNT3]="Z_CYL_1"
$NP_PROT_COLOR[COUNT3]=-8388608 $NP_PROT_COLOR[COUNT3]=-16744448
$NP_PROT_D_LEVEL[COUNT3]=0 $NP_PROT_D_LEVEL[COUNT3]=0
$NP_BIT_NO[COUNT3]=-1 $NP_BIT_NO[COUNT3]=-1
$NP_INIT_STAT[COUNT3]="A" $NP_INIT_STAT[COUNT3]="A"
$NP_INDEX[COUNT3,0]=0 $NP_INDEX[COUNT3,0]=0
$NP_INDEX[COUNT3,1]=0 $NP_INDEX[COUNT3,1]=0
$NP_INDEX[COUNT3,2]=0 $NP_INDEX[COUNT3,2]=0
COUNT3=COUNT3+1 COUNT3=COUNT3+1

$NP_PROT_NAME[COUNT3]="TOOL_PROT" $NP_PROT_NAME[COUNT3]="A_PROT"
$NP_CHAIN_ELEM[COUNT3]="SP1_AXIS" $NP_CHAIN_ELEM[COUNT3]="A_OFFSET"
$NP_PROT_TYPE[COUNT3]="TOOL" $NP_PROT_TYPE[COUNT3]="MACHINE"
$NP_1ST_PROT[COUNT3] $NP_1ST_PROT[COUNT3]="A_BOX_1"
="__TOOL_00001_09998_01_0000" $NP_PROT_COLOR[COUNT3]=-8388608
$NP_PROT_COLOR[COUNT3]=0 $NP_PROT_D_LEVEL[COUNT3]=0
$NP_PROT_D_LEVEL[COUNT3]=0 $NP_BIT_NO[COUNT3]=-1
$NP_BIT_NO[COUNT3]=-1 $NP_INIT_STAT[COUNT3]="A"
$NP_INIT_STAT[COUNT3]="A" $NP_INDEX[COUNT3,0]=0
$NP_INDEX[COUNT3,0]=1 $NP_INDEX[COUNT3,1]=0
$NP_INDEX[COUNT3,1]=9998 $NP_INDEX[COUNT3,2]=0
$NP_INDEX[COUNT3,2]=1 COUNT3=COUNT3+1
COUNT3=COUNT3+1

Notes:

840D sl SINUMERIK Operate Page 11 A182


A182 Collision avoidance, 3-axis machine with dividing unit

Assignment of tags for the collision bodies: $NP_NAME[COUNT4]="ROOT_BOX_1"


DEF INT COUNT4 $NP_NEXT[COUNT4]="ROOT_BOX_2"
$NP_NEXTP[COUNT4]="ROOT_BOX_3"
$NP_NAME[COUNT4]="Y_BOX_1" $NP_ADD[COUNT4]=""
$NP_NEXT[COUNT4]="" $NP_COLOR[COUNT4]=0
$NP_NEXTP[COUNT4]="" $NP_D_LEVEL[COUNT4]=0
$NP_ADD[COUNT4]="" $NP_USAGE[COUNT4]="A"
$NP_COLOR[COUNT4]=0 $NP_TYPE[COUNT4]="BOX"
$NP_D_LEVEL[COUNT4]=0 $NP_FILENAME[COUNT4]=""
$NP_USAGE[COUNT4]="A" $NP_PARA[COUNT4,0]=2000
$NP_TYPE[COUNT4]="BOX" $NP_PARA[COUNT4,1]=1800
$NP_FILENAME[COUNT4]="" $NP_PARA[COUNT4,2]=250
$NP_PARA[COUNT4,0]=1800 $NP_OFF[COUNT4,0]=0
$NP_PARA[COUNT4,1]=600 $NP_OFF[COUNT4,1]=200
$NP_PARA[COUNT4,2]=520 $NP_OFF[COUNT4,2]=-645
$NP_OFF[COUNT4,0]=0 $NP_DIR[COUNT4,0]=0
$NP_OFF[COUNT4,1]=0 $NP_DIR[COUNT4,1]=0
$NP_OFF[COUNT4,2]=-260 $NP_DIR[COUNT4,2]=0
$NP_DIR[COUNT4,0]=0 $NP_ANG[COUNT4]=0
$NP_DIR[COUNT4,1]=0 COUNT4=COUNT4+1
$NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=0
COUNT4=COUNT4+1

$NP_NAME[COUNT4]="ROOT_BOX_2" $NP_NAME[COUNT4]="ROOT_BOX_3"
$NP_NEXT[COUNT4]="ROOT_BOX_5" $NP_NEXT[COUNT4]="ROOT_BOX_4"
$NP_NEXTP[COUNT4]="" $NP_NEXTP[COUNT4]=""
$NP_ADD[COUNT4]="" $NP_ADD[COUNT4]=""
$NP_COLOR[COUNT4]=0 $NP_COLOR[COUNT4]=0
$NP_D_LEVEL[COUNT4]=0 $NP_D_LEVEL[COUNT4]=0
$NP_USAGE[COUNT4]="A" $NP_USAGE[COUNT4]="A"
$NP_TYPE[COUNT4]="BOX" $NP_TYPE[COUNT4]="BOX"
$NP_FILENAME[COUNT4]="" $NP_FILENAME[COUNT4]=""
$NP_PARA[COUNT4,0]=50 $NP_PARA[COUNT4,0]=2050
$NP_PARA[COUNT4,1]=1800 $NP_PARA[COUNT4,1]=380
$NP_PARA[COUNT4,2]=2400 $NP_PARA[COUNT4,2]=1750
$NP_OFF[COUNT4,0]=-1025 $NP_OFF[COUNT4,0]=-25
$NP_OFF[COUNT4,1]=0 $NP_OFF[COUNT4,1]=710
$NP_OFF[COUNT4,2]=1075 $NP_OFF[COUNT4,2]=1000
$NP_DIR[COUNT4,0]=0 $NP_DIR[COUNT4,0]=0
$NP_DIR[COUNT4,1]=0 $NP_DIR[COUNT4,1]=0
$NP_DIR[COUNT4,2]=0 $NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=0 $NP_ANG[COUNT4]=0
COUNT4=COUNT4+1 COUNT4=COUNT4+1

Notes:

A182 Page 12 840D sl SINUMERIK Operate


Collision avoidance, 3-axis machine with dividing unit A182

$NP_NAME[COUNT4]="ROOT_BOX_4" $NP_NAME[COUNT4]="X_BOX_1"
$NP_NEXT[COUNT4]="" $NP_NEXT[COUNT4]=""
$NP_NEXTP[COUNT4]="" $NP_NEXTP[COUNT4]=""
$NP_ADD[COUNT4]="" $NP_ADD[COUNT4]=""
$NP_COLOR[COUNT4]=0 $NP_COLOR[COUNT4]=0
$NP_D_LEVEL[COUNT4]=0 $NP_D_LEVEL[COUNT4]=0
$NP_USAGE[COUNT4]="A" $NP_USAGE[COUNT4]="A"
$NP_TYPE[COUNT4]="BOX" $NP_TYPE[COUNT4]="BOX"
$NP_FILENAME[COUNT4]="" $NP_FILENAME[COUNT4]=""
$NP_PARA[COUNT4,0]=2000 $NP_PARA[COUNT4,0]=380
$NP_PARA[COUNT4,1]=500 $NP_PARA[COUNT4,1]=70
$NP_PARA[COUNT4,2]=450 $NP_PARA[COUNT4,2]=460
$NP_OFF[COUNT4,0]=25 $NP_OFF[COUNT4,0]=0
$NP_OFF[COUNT4,1]=-440 $NP_OFF[COUNT4,1]=185
$NP_OFF[COUNT4,2]=650 $NP_OFF[COUNT4,2]=1005
$NP_DIR[COUNT4,0]=0 $NP_DIR[COUNT4,0]=0
$NP_DIR[COUNT4,1]=0 $NP_DIR[COUNT4,1]=0
$NP_DIR[COUNT4,2]=0 $NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=0 $NP_ANG[COUNT4]=0
COUNT4=COUNT4+1 COUNT4=COUNT4+1

$NP_NAME[COUNT4]="Z_BOX_1" $NP_NAME[COUNT4]="Z_CYL_1"
$NP_NEXT[COUNT4]="" $NP_NEXT[COUNT4]="Z_BOX_1"
$NP_NEXTP[COUNT4]="" $NP_NEXTP[COUNT4]=""
$NP_ADD[COUNT4]="" $NP_ADD[COUNT4]=""
$NP_COLOR[COUNT4]=0 $NP_COLOR[COUNT4]=0
$NP_D_LEVEL[COUNT4]=0 $NP_D_LEVEL[COUNT4]=0
$NP_USAGE[COUNT4]="A" $NP_USAGE[COUNT4]="A"
$NP_TYPE[COUNT4]="BOX" $NP_TYPE[COUNT4]="CYLINDER"
$NP_FILENAME[COUNT4]="" $NP_FILENAME[COUNT4]=""
$NP_PARA[COUNT4,0]=380 $NP_PARA[COUNT4,0]=100
$NP_PARA[COUNT4,1]=300 $NP_PARA[COUNT4,1]=90
$NP_PARA[COUNT4,2]=1200 $NP_PARA[COUNT4,2]=0
$NP_OFF[COUNT4,0]=0 $NP_OFF[COUNT4,0]=0
$NP_OFF[COUNT4,1]=0 $NP_OFF[COUNT4,1]=0
$NP_OFF[COUNT4,2]=650 $NP_OFF[COUNT4,2]=50
$NP_DIR[COUNT4,0]=0 $NP_DIR[COUNT4,0]=0
$NP_DIR[COUNT4,1]=0 $NP_DIR[COUNT4,1]=0
$NP_DIR[COUNT4,2]=0 $NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=0 $NP_ANG[COUNT4]=0
COUNT4=COUNT4+1 COUNT4=COUNT4+1

Notes:

840D sl SINUMERIK Operate Page 13 A182


A182 Collision avoidance, 3-axis machine with dividing unit

$NP_NAME[COUNT4]="ROOT_BOX_5" $NP_NAME[COUNT4]="A_BOX_1"
$NP_NEXT[COUNT4]="" $NP_NEXT[COUNT4]="A_CYL_1"
$NP_NEXTP[COUNT4]="" $NP_NEXTP[COUNT4]=""
$NP_ADD[COUNT4]="" $NP_ADD[COUNT4]=""
$NP_COLOR[COUNT4]=0 $NP_COLOR[COUNT4]=0
$NP_D_LEVEL[COUNT4]=0 $NP_D_LEVEL[COUNT4]=0
$NP_USAGE[COUNT4]="A" $NP_USAGE[COUNT4]="A"
$NP_TYPE[COUNT4]="BOX" $NP_TYPE[COUNT4]="BOX"
$NP_FILENAME[COUNT4]="" $NP_FILENAME[COUNT4]=""
$NP_PARA[COUNT4,0]=1000 $NP_PARA[COUNT4,0]=100
$NP_PARA[COUNT4,1]=1800 $NP_PARA[COUNT4,1]=200
$NP_PARA[COUNT4,2]=500 $NP_PARA[COUNT4,2]=300
$NP_OFF[COUNT4,0]=-525 $NP_OFF[COUNT4,0]=0
$NP_OFF[COUNT4,1]=0 $NP_OFF[COUNT4,1]=0
$NP_OFF[COUNT4,2]=500 $NP_OFF[COUNT4,2]=0
$NP_DIR[COUNT4,0]=0 $NP_DIR[COUNT4,0]=0
$NP_DIR[COUNT4,1]=0 $NP_DIR[COUNT4,1]=0
$NP_DIR[COUNT4,2]=0 $NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=0 $NP_ANG[COUNT4]=0
COUNT4=COUNT4+1 COUNT4=COUNT4+1

$NP_NAME[COUNT4]="A_CYL_1"
$NP_NEXT[COUNT4]=""
$NP_NEXTP[COUNT4]=""
$NP_ADD[COUNT4]=""
$NP_COLOR[COUNT4]=0
$NP_D_LEVEL[COUNT4]=0
$NP_USAGE[COUNT4]="A"
$NP_TYPE[COUNT4]="CYLINDER"
$NP_FILENAME[COUNT4]=""
$NP_PARA[COUNT4,0]=50
$NP_PARA[COUNT4,1]=80
$NP_PARA[COUNT4,2]=0
$NP_OFF[COUNT4,0]=75
$NP_OFF[COUNT4,1]=0
$NP_OFF[COUNT4,2]=0
$NP_DIR[COUNT4,0]=0
$NP_DIR[COUNT4,1]=1
$NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=90
COUNT4=COUNT4+1

Notes:

A182 Page 14 840D sl SINUMERIK Operate


Collision avoidance, 3-axis machine with dividing unit A182

To allow the collision consideration to become active, those protection areas that must not collide with each other must
be defined.

For this machine, the combinations listed below should be checked:

Z_LIN_PROT → ROOT_PROT Z axis against the basic machine


TOOL_PROT → A_PROT Tool against the dividing unit
Z_LIN_PROT → Y_LIN_PROT Spindle nose against the table, when no tool is active
Z_LIN_PROT → A_PROT Spindle nose against the dividing unit, when no tool is active

To define the collision pairs, place the cursor on the "Collision groups" folder in the structure tree:

In the first declaration, the two protection areas Z_LIN_PROT Protection area TOOL_PROT → A_PROT:
and ROOT_PROT are checked against each other:
Operating sequence: Place the cursor on "Collision groups"
New element → Collision pair → OK

Notes:

840D sl SINUMERIK Operate Page 15 A182


A182 END Collision avoidance, 3-axis machine with dividing unit

Protection area Z_LIN_PROT → Y_LIN_PROT: Protection area Z_LIN_PROT → A_PROT:

Operating sequence: Place the cursor on "Collision groups" Operating sequence: Place the cursor on "Collision groups"
New element → Collision pair → OK New element → Collision pair → OK

Representation of the collision pairs as NC program: $NP_COLL_PAIR[COUNT5,0]


="Z_LIN_PROT" ;Index COUNT5=4
DEF INT COUNT5
$NP_COLL_PAIR[COUNT5,1]="ROOT_PROT"
$NP_SAFETY_DIST[COUNT5]=0
$NP_COLL_PAIR[COUNT5,0]
COUNT5=COUNT5+1
="TOOL_PROT" ;Index COUNT5=1
$NP_COLL_PAIR[COUNT5,1]="A_PROT"
M30
$NP_SAFETY_DIST[COUNT5]=0
COUNT5=COUNT5+1

$NP_COLL_PAIR[COUNT5,0]
="Z_LIN_PROT" ;Index COUNT5=2
$NP_COLL_PAIR[COUNT5,1]="Y_LIN_PROT"
$NP_SAFETY_DIST[COUNT5]=0
COUNT5=COUNT5+1

$NP_COLL_PAIR[COUNT5,0]
="Z_LIN_PROT" ;Index COUNT5=3
$NP_COLL_PAIR[COUNT5,1]="A_PROT"
$NP_SAFETY_DIST[COUNT5]=0
COUNT5=COUNT5+1

A182: END

Notes:

A182 Page 16 840D sl SINUMERIK Operate


A183 Collision avoidance, 5-axis table kinematics
Sinumerik
Operate

Module Description:

The following chapters provide further details of the kinematic chain operating principle. In particular,
the following topics are discussed:

• Collision avoidance with kinematic chains


- Configuration of collision pairs for a 5-axis milling machine with table kinematics

Module Objective:

The reader gains a general overview of the kinematic chains operating principle application and, in
various exercises, familiarized with the individual functions and their capabilities. After working through
all chapters, readers should be able to integrate their own machine kinematics in the system.

Content:
Sinumerik

Collision avoidance for a 5-axis milling machine with table kinematics

840D sl SINUMERIK Operate v4.8 Page 1 This document was produced for training purposes. A183
Siemens assumes no responsibility for its contents.
A183 Collision avoidance, 5-axis table kinematics

A183 Page 2 840D sl SINUMERIK Operate


Collision avoidance, 5-axis table kinematics A183

Collision avoidance, 5-axis


table kinematics
START

Collision
avoidance,
5-axis table
kinematics

Collision avoidance, 5-axis


table kinematics
END

Notes:

840D sl SINUMERIK Operate Page 3 A183


A183 Collision avoidance, 5-axis table kinematics

Collision avoidance, 5-axis milling machine with table kinematics

To augment the kinematic chain of the 5-axis machine with table kinematics with collision check, various steps must be per-
formed:

• Augment the kinematic chain with protection areas


• Augment the protection areas with model bodies
• Define the collision pairs

As precaution, the positions of the machine axes should be checked before starting work, because the positions affect the repre-
sentation in the graphic.

Moveable bodies should be defined for the following elements from the kinematic chain:
• ROOT
• Y_AXIS
• Z_AXIS
• A_AXIS
• C_AXIS

Overview of the protection areas:

Z_PROT

ROOT_PROT_1
Y_PROT

A_PROT

C_PROT

Notes:

A183 Page 4 840D sl SINUMERIK Operate


Collision avoidance, 5-axis table kinematics A183

Definition of the protection areas and of the collision bodies for the "ROOT" element:

In this example, two machine protection areas are defined for the "ROOT" element:
1. Protection area for the machine frame
2. Protection area for the tool change door

The first protection area contains the following elements:

Designation: Dimension Offset values Use Type


ROOT_BOX_1 1700 x 2000 x 200 (0,500,-500) Base plate Box
ROOT_BOX_2 200 x 2000 x 900 (-750,0,550) Left side panel Box
ROOT_BOX_3 200 x 2000 x 900 (1500,0,0) Right side panel Box
ROOT_BOX_4 1700 x 200 x 1400 (0,1100,600) Rear panel Box, parallel
ROOT_BOX_5 1300 x 5 x 500 (0,850,-150) Work space partition 1 Box, parallel
ROOT_BOX_6 500 x 5 x 400 (-400,0,450) Work space partition 2 Box
ROOT_BOX_7 500 x 5 x 400 (800,0,0) Work space partition 3 Box

The second protection area contains the following elements:

Designation: Dimension Offset values Use Type


ROOT_BOX_8 320 x 5 x 405 (0,925,290) Tool change door Box

ROOT_BOX_4

ROOT_PROT_2

ROOT_BOX_7

ROOT_BOX_6

ROOT_BOX_2

ROOT_BOX_5

ROOT_BOX_3

ROOT_BOX_1

Notes:

840D sl SINUMERIK Operate Page 5 A183


A183 Collision avoidance, 5-axis table kinematics

Complete structure: Operating sequence for the creation:

Place the cursor on line "ROOT".


New element → Collision element → Machine protection area

The name of the chain element is specified as


"ROOT_PROT_1"; the mode is switched to "Activated".

Note:
The HMI display causes the "ROOT_PROT_2" protection
area to be displayed first in the structure tree, although it was
defined after the "ROOT_PROT_1" protection area.

An "empty" frame is defined initially below the "ROOT_PROT" The next installed element is the machine base plate as Box
protection area. This frame is only used later to link two element type.
parallel elements in the structure tree.
Operating sequence for the creation:
Operating sequence for the creation:
Place the cursor on line "ROOT_FRAME_1".
Place the cursor on line "ROOT_PROT_1". New element → Collision element → Box
New element → Collision element → Frame
The name of the chain element is specified as
The name of the chain element is specified as "ROOT_BOX_1".
"ROOT_FRAME_1". The complete element remains in the
initial setting.

Notes:

A183 Page 6 840D sl SINUMERIK Operate


Collision avoidance, 5-axis table kinematics A183

The "ROOT_BOX_2" element is subordinate to the base The right side panel is defined as following element to
plate; this element represents the left side panel and has ele- "ROOT_BOX_2" as Box element type.
ment type Box.
Operating sequence for the creation:
Operating sequence for the creation:
Place the cursor on line "ROOT_BOX_2".
Place the cursor on line "ROOT_BOX_1". New element → Collision element → Box
New element → Collision element → Box
The name of the chain element is specified as
The name of the chain element is specified as "ROOT_BOX_3".
"ROOT_BOX_2".

The rear panel is defined as parallel box to "ROOT_BOX_1" The work space partition is defined as parallel box to
as Box element type. "ROOT_FRAME_1" as Box element type.

Operating sequence for the creation: Operating sequence for the creation:

Place the cursor on line "ROOT_BOX_1". Place the cursor on line "ROOT_FRAME_1".
New element → Collision element → Parallel box New element → Collision element → Parallel box

The name of the chain element is specified as The name of the chain element is specified as
"ROOT_BOX_4". "ROOT_BOX_5".

Notes:

840D sl SINUMERIK Operate Page 7 A183


A183 Collision avoidance, 5-axis table kinematics

The upper part of the work space partition is divided into three
parts:
• Left part
• Right part
• Tool change door in the center

The left part is defined as box below "ROOT_BOX_5" as Box


element type.

Operating sequence for the creation:

Place the cursor on line "ROOT_BOX_5".


New element → Collision element → Box

The name of the chain element is specified as


"ROOT_BOX_6".

The right part der work space partition is defined as following The "ROOT_BOX_8" element is subordinate to the
box to "ROOT_BOX_6" as Box element type. ROOT_PROT_2; the ROOT_PROT_2 can be fixed in the
same way than the ROOT_PROT_1 element
Operating sequence for the creation:
Operating sequence for the creation:
Place the cursor on line "ROOT_BOX_6".
New element → Collision element → Box Place the cursor on line "ROOT_PROT_2".
New element → Collision element → Box
The name of the chain element is specified as
"ROOT_BOX_7". The name of the chain element is specified as
"ROOT_BOX_8".

Notes:

A183 Page 8 840D sl SINUMERIK Operate


Collision avoidance, 5-axis table kinematics A183

Operating sequence for creating the protection area


"ROOT_PROT_2": The next installed element is the tool change door as Box
element type.
Place the cursor on line "ROOT".
New element → Collision element → Machine protection area Operating sequence for the creation:

The name of the chain element is specified as Place the cursor on line "ROOT_PROT_2".
"ROOT_PROT_2"; the mode is switched to "Activated". New element → Collision element → Box

The name of the chain element is specified as


"ROOT_BOX_8".

Definition of the protection area and of the collision body for the "Y_AXIS" element:

A machine protection area and a collision body are defined for the element "Y_AXIS".

The protection area contains the element:

Designation: Dimension Offset values Use Type


Y_BOX_1 1700 x 350 x 350 (0,275,675) Cross bar of the Y axis Box

The complete structure has the following architecture:

Notes:

840D sl SINUMERIK Operate Page 9 A183


A183 Collision avoidance, 5-axis table kinematics

Operating sequence for the creation: The traverse of the Y axis of the machine is defined as box
below the "Y_PROT" protection area.
Place the cursor on line "Y_AXIS".
New element → Collision element → Machine protection area Operating sequence for the creation:

The name of the chain element is specified as "Y_PROT"; the Place the cursor on line "Y_PROT".
mode is switched to "Activated". New element → Collision element → Box

The name of the chain element is specified as "Y_BOX_1";


the use is switched to "Display + Monitoring".

The X axis of the machine is not visualized. This is located outside the collision zone, and the movement of the X axis is visual-
ized adequately by the body of the Z axis.

Definition of the protection area and of the collision body for the element.

A machine protection area and several collision bodies are defined for the element "Z_AXIS".

The protection area contains the elements:

Designation: Dimension Offset values Use Type


Z_CYL_1 H20 x R50 (0,0,10) Lower spindle ring Cylinder
Z_CYL_2 H80 x R75 (0,0,50) Upper spindle ring Cylinder
Z_BOX_1 200 x 200 x 1000 (0,0,540) Main body of the Z axis Box

The complete structure has the following architecture:

Z_CYL_2

Z_CYL_1

Z_BOX_1

Notes:

A183 Page 10 840D sl SINUMERIK Operate


Collision avoidance, 5-axis table kinematics A183

Operating sequence for the creation: As first element, the lower spindle ring is defined as cylinder
below the "Z_PROT" protection area.
Place the cursor on line "Z_AXIS".
New element → Collision element → Machine protection area Operating sequence for the creation:

The name of the chain element is specified as "Z_PROT"; the Place the cursor on line "Z_PROT".
mode is switched to "Activated". New element → Collision element → Cylinder

The name of the chain element is specified as "Z_CYL_1";


the use is switched to "Display + Monitoring".

The next, subordinate element for the lower spindle ring is the As last element of the Z axis, the main body is defined as box.
upper spindle ring, this is also defined as cylinder.
Operating sequence for the creation:
Operating sequence for the creation:
Place the cursor on line "Z_CYL_2".
Place the cursor on line "Z_CYL_1". New element → Collision element → Box
New element → Collision element → Cylinder
The name of the chain element is specified as "Z_BOX_1";
The name of the chain element is specified as "Z_CYL_2"; the the use is switched to "Display + Monitoring".
use is switched to "Display + Monitoring".

Notes:

840D sl SINUMERIK Operate Page 11 A183


A183 Collision avoidance, 5-axis table kinematics

To complete the tool branch, the tool change location is


defined as protection area.

Operating sequence for the creation:

Place the cursor on line "SP1_AXIS".


New element → Collision element → Tool protection area

The name of the protection area is specified as


"TOOL_PROT"; the mode is switched to "Activated".

The A axis and the C axis are modeled in the workpiece branch of the machine.

First, the protection area and collision bodies are defined for the A axis.

Because the A bridge should have a detailed representation, a machine protection area and several collision bodies are defined
for the element "A_ROT".

The protection area contains the elements:

Designation: Dimension Offset values Use Type


A_FRAME_1 - - Dummy element Frame
A_CYL_1 H50 x R225 (0,0,-200) C axis bearing ring Cylinder
A_BOX_1 1000 x 425 x 150 (0,0,-95) A axis main body Box
A_CYL_2 H150 x R150 (-575,0,300) Left bearing cartridge Cylinder turned by 90° at Y
A_CYL_3 H150 x R150 (0,0,1150) Right bearing cartridge Cylinder (reference for A_CYL_2)
A_CYL_4 H450 x R75 (-450,0,50) Left bridge cylinder Prallel cylinder, turned by 90° at X
A_CYL_5 H450 x R75 (900,0,0) Right bridge cylinder Cylinder
A_BOX_2 100 x 275 x 300 (500,0,100) 1st Right flange body Parallel Box turned by 20° at Y
A_BOX_3 100 x 100 x 325 (0,-125,0) 2nd Right flange body Box turned by -15° at X
A_BOX_4 100 x 100 x 325 (0,125,0) 3rd Right flange body Parallel box turned by 15° at X
A_BOX_5 100 x 275 x 300 (-500,0,-100) 1st Left flange body Parallel box turned by -20° at Y
A_BOX_6 100 x 100 x 325 (0,-125,0) 2nd Left flange body Box turned by -15° at X
A_BOX_7 100 x 100 x 325 (0,125,0) 3rd Left flange body Parallel box turned by 15° at X

Notes:

A183 Page 12 840D sl SINUMERIK Operate


Collision avoidance, 5-axis table kinematics A183

This results in the following design in the structure tree:

An overview diagram shows which elements are arranged parallel to each other. This makes it easier to understand the number-
ing order.

A_FRAME

A_CYL_1 A_BOX_5

A_BOX_1 A_BOX_2 A_BOX_6 A_BOX_7

A_CYL_2 A_CYL_4 A_BOX_3 A_BOX_3

A_CYL_3 A_CYL_5

Notes:

840D sl SINUMERIK Operate Page 13 A183


A183 Collision avoidance, 5-axis table kinematics

A_CYL_2

A_CYL_4

A_BOX_7 A_BOX_2
A_CYL_1

A_BOX_5 A_CYL_3
A_BOX_3

A_BOX_6
A_BOX_4

A_BOX_1

A_CYL_5

Operating sequence for the creation: As first element, the frame is defined as dummy element for
the first branch below the "A_PROT" protection area.
Place the cursor on line "A_AXIS".
New element → Collision element → Machine protection area Operating sequence for the creation:

The name of the chain element is specified as "A_PROT"; the Place the cursor on line "A_PROT".
mode is switched to "Activated". New element → Collision element → Frame

The name of the chain element is specified as "A_FRAME_1".


All the offset values remain as "0".

Notes:

A183 Page 14 840D sl SINUMERIK Operate


Collision avoidance, 5-axis table kinematics A183

As first element after the frame, the bearing housing of the C Below the bearing housing of the C axis, the A main body is
axis is defined as cylinder. defined as box.

Operating sequence for the creation: Operating sequence for the creation:

Place the cursor on line "A_FRAME_1". Place the cursor on line "A_CYL_1".
New element → Collision element → Cylinder New element → Collision element → Box

The name of the chain element is specified as "A_CYL_1". The name of the chain element is specified as "A_BOX_1".

The left bearing cartridge is attached as cylinder below the A The right bearing cartridge is attached as cylinder below the
axis main body. left bearing cartridge.

Operating sequence for the creation: Operating sequence for the creation:

Place the cursor on line "A_BOX_1". Place the cursor on line "A_CYL_2".
New element → Collision element → Cylinder New element → Collision element → Cylinder

The name of the chain element is specified as "A_CYL_2". The name of the chain element is specified as "A_CYL_3".

Notes:

840D sl SINUMERIK Operate Page 15 A183


A183 Collision avoidance, 5-axis table kinematics

The left bridge cylinder is attached as cylinder parallel below The right bridge cylinder is attached as cylinder below the
the A_BOX_1. element A_CYL_4.

Operating sequence for the creation: Operating sequence for the creation:

Place the cursor on line "A_BOX_1". Place the cursor on line "A_CYL_4".
New element → Collision element → Parallel cylinder New element → Collision element → Cylinder

The name of the chain element is specified as "A_CYL_4". The name of the chain element is specified as "A_CYL_5".

The complete right side flange is defined parallel below the The 2nd body of the right flange is defined as box below ele-
A_CYL_1. ment "A_BOX_2".

Operating sequence for the creation: Operating sequence for the creation:

Place the cursor on line "A_CYL_1". Place the cursor on line "A_BOX_2".
New element → Collision element → Parallel box New element → Collision element → Box

The name of the chain element is specified as "A_BOX_2". The name of the chain element is specified as "A_BOX_3".

Notes:

A183 Page 16 840D sl SINUMERIK Operate


Collision avoidance, 5-axis table kinematics A183

The 3rd body of the right flange is defined as parallel box be- Similar to the right side flange, the left side flange is also de-
low element "A_BOX_2". fined as three individual bodies.

Operating sequence for the creation: Operating sequence for the creation:

Place the cursor on line "A_BOX_2". Place the cursor on line "A_FRAME_1".
New element → Collision element → Parallel box New element → Collision element → Parallel box

The name of the chain element is specified as "A_BOX_4". The name of the chain element is specified as "A_BOX_5".

The 2nd body of the left flange is defined as box below ele- The last body of the A axis flange is defined as parallel box
ment "A_BOX_5". below element "A_BOX_5".

Operating sequence for the creation: Operating sequence for the creation:

Place the cursor on line "A_BOX_5". Place the cursor on line "A_BOX_5".
New element → Collision element → Box New element → Collision element → Parallel box

The name of the chain element is specified as "A_BOX_6". The name of the chain element is specified as "A_BOX_7".

Notes:

840D sl SINUMERIK Operate Page 17 A183


A183 Collision avoidance, 5-axis table kinematics

To complete the machine modeling, a machine protection area and a collision body are required for the C axis.

The protection area contains the element:

Designation: Dimension Offset values Use Type


C_CYL_1 H80 x R250 (0,0,-40) C axis clamping table Cylinder

The complete structure has the following architecture:

Operating sequence for the creation: The clamping table of the C axis is defined as cylinder below
the "C_PROT" protection area.
Place the cursor on line "C_AXIS".
New element → Collision element → Machine protection area Operating sequence for the creation:

The name of the chain element is specified as "C_PROT"; the Place the cursor on line "C_PROT".
mode is switched to "Activated". New element → Collision element → Cylinder

The name of the chain element is specified as "C_CYL_1".

Notes:

A183 Page 18 840D sl SINUMERIK Operate


Collision avoidance, 5-axis table kinematics A183

Assignment of tags for the protection areas: $NP_PROT_NAME[COUNT3]="ROOT_PROT_2"


$NP_CHAIN_ELEM[COUNT3]="ROOT"
DEF INT COUNT3 $NP_PROT_TYPE[COUNT3]="MACHINE"
$NP_PROT_NAME[COUNT3]="ROOT_PROT_1" $NP_1ST_PROT[COUNT3]="ROOT_BOX_8"
$NP_CHAIN_ELEM[COUNT3]="ROOT" $NP_PROT_COLOR[COUNT3]=-4144960
$NP_PROT_TYPE[COUNT3]="MACHINE" $NP_PROT_D_LEVEL[COUNT3]=0
$NP_1ST_PROT[COUNT3]="ROOT_FRAME_1" $NP_BIT_NO[COUNT3]=-1
$NP_PROT_COLOR[COUNT3]=-1 $NP_INIT_STAT[COUNT3]="A"
$NP_PROT_D_LEVEL[COUNT3]=0 $NP_INDEX[COUNT3,0]=0
$NP_BIT_NO[COUNT3]=-1 $NP_INDEX[COUNT3,1]=0
$NP_INIT_STAT[COUNT3]="A" $NP_INDEX[COUNT3,2]=0
$NP_INDEX[COUNT3,0]=0 COUNT3=COUNT3+1
$NP_INDEX[COUNT3,1]=0
$NP_INDEX[COUNT3,2]=0
COUNT3=COUNT3+1

$NP_PROT_NAME[COUNT3]="Y_PROT" $NP_PROT_NAME[COUNT3]="Z_PROT"
$NP_CHAIN_ELEM[COUNT3]="Y_AXIS" $NP_CHAIN_ELEM[COUNT3]="Z_AXIS"
$NP_PROT_TYPE[COUNT3]="MACHINE" $NP_PROT_TYPE[COUNT3]="MACHINE"
$NP_1ST_PROT[COUNT3]="Y_BOX_1" $NP_1ST_PROT[COUNT3]="Z_CYL_1"
$NP_PROT_COLOR[COUNT3]=-4144960 $NP_PROT_COLOR[COUNT3]=0
$NP_PROT_D_LEVEL[COUNT3]=0 $NP_PROT_D_LEVEL[COUNT3]=0
$NP_BIT_NO[COUNT3]=-1 $NP_BIT_NO[COUNT3]=-1
$NP_INIT_STAT[COUNT3]="A" $NP_INIT_STAT[COUNT3]="A"
$NP_INDEX[COUNT3,0]=0 $NP_INDEX[COUNT3,0]=0
$NP_INDEX[COUNT3,1]=0 $NP_INDEX[COUNT3,1]=0
$NP_INDEX[COUNT3,2]=0 $NP_INDEX[COUNT3,2]=0
COUNT3=COUNT3+1 COUNT3=COUNT3+1

Notes:

840D sl SINUMERIK Operate Page 19 A183


A183 Collision avoidance, 5-axis table kinematics

$NP_PROT_NAME[COUNT3]="TOOL_PROT" $NP_PROT_NAME[COUNT3]="A_PROT"
$NP_CHAIN_ELEM[COUNT3]="SP1_AXIS" $NP_CHAIN_ELEM[COUNT3]="A_AXIS"
$NP_PROT_TYPE[COUNT3]="TOOL" $NP_PROT_TYPE[COUNT3]="MACHINE"
$NP_1ST_PROT[COUNT3] $NP_1ST_PROT[COUNT3]="A_FRAME_1"
="__TOOL_00001_09998_01_0000" $NP_PROT_COLOR[COUNT3]=-6250332
$NP_PROT_COLOR[COUNT3]=0 $NP_PROT_D_LEVEL[COUNT3]=0
$NP_PROT_D_LEVEL[COUNT3]=0 $NP_BIT_NO[COUNT3]=-1
$NP_BIT_NO[COUNT3]=-1 $NP_INIT_STAT[COUNT3]="A"
$NP_INIT_STAT[COUNT3]="A" $NP_INDEX[COUNT3,0]=0
$NP_INDEX[COUNT3,0]=1 $NP_INDEX[COUNT3,1]=0
$NP_INDEX[COUNT3,1]=9998 $NP_INDEX[COUNT3,2]=0
$NP_INDEX[COUNT3,2]=1 COUNT3=COUNT3+1
COUNT3=COUNT3+1

$NP_PROT_NAME[COUNT3]="C_PROT" Assignment of tags for the collision bodies:


$NP_CHAIN_ELEM[COUNT3]="C_AXIS"
DEF INT COUNT4
$NP_PROT_TYPE[COUNT3]="MACHINE"
$NP_1ST_PROT[COUNT3]="C_CYL_1"
$NP_NAME[COUNT4]="ROOT_FRAME_1"
$NP_PROT_COLOR[COUNT3]=0
$NP_NEXT[COUNT4]="ROOT_BOX_1"
$NP_PROT_D_LEVEL[COUNT3]=0
$NP_NEXTP[COUNT4]="ROOT_BOX_5"
$NP_BIT_NO[COUNT3]=-1
$NP_ADD[COUNT4]=""
$NP_INIT_STAT[COUNT3]="A"
$NP_COLOR[COUNT4]=0
$NP_INDEX[COUNT3,0]=0
$NP_D_LEVEL[COUNT4]=0
$NP_INDEX[COUNT3,1]=0
$NP_USAGE[COUNT4]="A"
$NP_INDEX[COUNT3,2]=0
$NP_TYPE[COUNT4]="FRAME"
COUNT3=COUNT3+1
$NP_FILENAME[COUNT4]=""
$NP_PARA[COUNT4,0]=0
$NP_PARA[COUNT4,1]=0
$NP_PARA[COUNT4,2]=0
$NP_OFF[COUNT4,0]=0
$NP_OFF[COUNT4,1]=0
$NP_OFF[COUNT4,2]=0
$NP_DIR[COUNT4,0]=0
$NP_DIR[COUNT4,1]=0
$NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=0
COUNT4=COUNT4+1

Notes:

A183 Page 20 840D sl SINUMERIK Operate


Collision avoidance, 5-axis table kinematics A183

$NP_NAME[COUNT4]="ROOT_BOX_5" $NP_NAME[COUNT4]="ROOT_BOX_6"
$NP_NEXT[COUNT4]="ROOT_BOX_6" $NP_NEXT[COUNT4]="ROOT_BOX_7"
$NP_NEXTP[COUNT4]="" $NP_NEXTP[COUNT4]=""
$NP_ADD[COUNT4]="" $NP_ADD[COUNT4]=""
$NP_COLOR[COUNT4]=8421504 $NP_COLOR[COUNT4]=8421504
$NP_D_LEVEL[COUNT4]=0 $NP_D_LEVEL[COUNT4]=0
$NP_USAGE[COUNT4]="A" $NP_USAGE[COUNT4]="A"
$NP_TYPE[COUNT4]="BOX" $NP_TYPE[COUNT4]="BOX"
$NP_FILENAME[COUNT4]="" $NP_FILENAME[COUNT4]=""
$NP_PARA[COUNT4,0]=1300 $NP_PARA[COUNT4,0]=500
$NP_PARA[COUNT4,1]=5 $NP_PARA[COUNT4,1]=5
$NP_PARA[COUNT4,2]=500 $NP_PARA[COUNT4,2]=400
$NP_OFF[COUNT4,0]=0 $NP_OFF[COUNT4,0]=-400
$NP_OFF[COUNT4,1]=850 $NP_OFF[COUNT4,1]=0
$NP_OFF[COUNT4,2]=-150 $NP_OFF[COUNT4,2]=450
$NP_DIR[COUNT4,0]=1 $NP_DIR[COUNT4,0]=0
$NP_DIR[COUNT4,1]=0 $NP_DIR[COUNT4,1]=0
$NP_DIR[COUNT4,2]=0 $NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=-10 $NP_ANG[COUNT4]=0
COUNT4=COUNT4+1 COUNT4=COUNT4+1

$NP_NAME[COUNT4]="ROOT_BOX_7" $NP_NAME[COUNT4]="ROOT_BOX_1"
$NP_NEXT[COUNT4]="" $NP_NEXT[COUNT4]="ROOT_BOX_2"
$NP_NEXTP[COUNT4]="" $NP_NEXTP[COUNT4]="ROOT_BOX_4"
$NP_ADD[COUNT4]="" $NP_ADD[COUNT4]=""
$NP_COLOR[COUNT4]=8421504 $NP_COLOR[COUNT4]=0
$NP_D_LEVEL[COUNT4]=0 $NP_D_LEVEL[COUNT4]=0
$NP_USAGE[COUNT4]="A" $NP_USAGE[COUNT4]="A"
$NP_TYPE[COUNT4]="BOX" $NP_TYPE[COUNT4]="BOX"
$NP_FILENAME[COUNT4]="" $NP_FILENAME[COUNT4]=""
$NP_PARA[COUNT4,0]=500 $NP_PARA[COUNT4,0]=1700
$NP_PARA[COUNT4,1]=5 $NP_PARA[COUNT4,1]=2000
$NP_PARA[COUNT4,2]=400 $NP_PARA[COUNT4,2]=200
$NP_OFF[COUNT4,0]=800 $NP_OFF[COUNT4,0]=0
$NP_OFF[COUNT4,1]=0 $NP_OFF[COUNT4,1]=500
$NP_OFF[COUNT4,2]=0 $NP_OFF[COUNT4,2]=-500
$NP_DIR[COUNT4,0]=0 $NP_DIR[COUNT4,0]=0
$NP_DIR[COUNT4,1]=0 $NP_DIR[COUNT4,1]=0
$NP_DIR[COUNT4,2]=0 $NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=0 $NP_ANG[COUNT4]=0
COUNT4=COUNT4+1 COUNT4=COUNT4+1

Notes:

840D sl SINUMERIK Operate Page 21 A183


A183 Collision avoidance, 5-axis table kinematics

$NP_NAME[COUNT4]="ROOT_BOX_4" $NP_NAME[COUNT4]="ROOT_BOX_2"
$NP_NEXT[COUNT4]="" $NP_NEXT[COUNT4]="ROOT_BOX_3"
$NP_NEXTP[COUNT4]="" $NP_NEXTP[COUNT4]=""
$NP_ADD[COUNT4]="" $NP_ADD[COUNT4]=""
$NP_COLOR[COUNT4]=0 $NP_COLOR[COUNT4]=0
$NP_D_LEVEL[COUNT4]=0 $NP_D_LEVEL[COUNT4]=0
$NP_USAGE[COUNT4]="A" $NP_USAGE[COUNT4]="A"
$NP_TYPE[COUNT4]="BOX" $NP_TYPE[COUNT4]="BOX"
$NP_FILENAME[COUNT4]="" $NP_FILENAME[COUNT4]=""
$NP_PARA[COUNT4,0]=1700 $NP_PARA[COUNT4,0]=200
$NP_PARA[COUNT4,1]=200 $NP_PARA[COUNT4,1]=2000
$NP_PARA[COUNT4,2]=1400 $NP_PARA[COUNT4,2]=900
$NP_OFF[COUNT4,0]=0 $NP_OFF[COUNT4,0]=-750
$NP_OFF[COUNT4,1]=1100 $NP_OFF[COUNT4,1]=0
$NP_OFF[COUNT4,2]=600 $NP_OFF[COUNT4,2]=550
$NP_DIR[COUNT4,0]=0 $NP_DIR[COUNT4,0]=0
$NP_DIR[COUNT4,1]=0 $NP_DIR[COUNT4,1]=0
$NP_DIR[COUNT4,2]=0 $NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=0 $NP_ANG[COUNT4]=0
COUNT4=COUNT4+1 COUNT4=COUNT4+1

$NP_NAME[COUNT4]="ROOT_BOX_3" $NP_NAME[COUNT4]="ROOT_BOX_8"
$NP_NEXT[COUNT4]="" $NP_NEXT[COUNT4]=""
$NP_NEXTP[COUNT4]="" $NP_NEXTP[COUNT4]=""
$NP_ADD[COUNT4]="" $NP_ADD[COUNT4]=""
$NP_COLOR[COUNT4]=0 $NP_COLOR[COUNT4]=0
$NP_D_LEVEL[COUNT4]=0 $NP_D_LEVEL[COUNT4]=0
$NP_USAGE[COUNT4]="A" $NP_USAGE[COUNT4]="A"
$NP_TYPE[COUNT4]="BOX" $NP_TYPE[COUNT4]="BOX"
$NP_FILENAME[COUNT4]="" $NP_FILENAME[COUNT4]=""
$NP_PARA[COUNT4,0]=200 $NP_PARA[COUNT4,0]=320
$NP_PARA[COUNT4,1]=2000 $NP_PARA[COUNT4,1]=5
$NP_PARA[COUNT4,2]=900 $NP_PARA[COUNT4,2]=405
$NP_OFF[COUNT4,0]=1500 $NP_OFF[COUNT4,0]=0
$NP_OFF[COUNT4,1]=0 $NP_OFF[COUNT4,1]=925
$NP_OFF[COUNT4,2]=0 $NP_OFF[COUNT4,2]=290
$NP_DIR[COUNT4,0]=0 $NP_DIR[COUNT4,0]=1
$NP_DIR[COUNT4,1]=0 $NP_DIR[COUNT4,1]=0
$NP_DIR[COUNT4,2]=0 $NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=0 $NP_ANG[COUNT4]=-10
COUNT4=COUNT4+1 COUNT4=COUNT4+1

Notes:

A183 Page 22 840D sl SINUMERIK Operate


Collision avoidance, 5-axis table kinematics A183

$NP_NAME[COUNT4]="Y_BOX_1" $NP_NAME[COUNT4]="Z_CYL_1"
$NP_NEXT[COUNT4]="" $NP_NEXT[COUNT4]="Z_CYL_2"
$NP_NEXTP[COUNT4]="" $NP_NEXTP[COUNT4]=""
$NP_ADD[COUNT4]="" $NP_ADD[COUNT4]=""
$NP_COLOR[COUNT4]=0 $NP_COLOR[COUNT4]=-6710887
$NP_D_LEVEL[COUNT4]=0 $NP_D_LEVEL[COUNT4]=0
$NP_USAGE[COUNT4]="A" $NP_USAGE[COUNT4]="A"
$NP_TYPE[COUNT4]="BOX" $NP_TYPE[COUNT4]="CYLINDER"
$NP_FILENAME[COUNT4]="" $NP_FILENAME[COUNT4]=""
$NP_PARA[COUNT4,0]=1700 $NP_PARA[COUNT4,0]=20
$NP_PARA[COUNT4,1]=350 $NP_PARA[COUNT4,1]=50
$NP_PARA[COUNT4,2]=350 $NP_PARA[COUNT4,2]=0
$NP_OFF[COUNT4,0]=0 $NP_OFF[COUNT4,0]=0
$NP_OFF[COUNT4,1]=275 $NP_OFF[COUNT4,1]=0
$NP_OFF[COUNT4,2]=675 $NP_OFF[COUNT4,2]=10
$NP_DIR[COUNT4,0]=0 $NP_DIR[COUNT4,0]=0
$NP_DIR[COUNT4,1]=0 $NP_DIR[COUNT4,1]=0
$NP_DIR[COUNT4,2]=0 $NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=0 $NP_ANG[COUNT4]=0
COUNT4=COUNT4+1 COUNT4=COUNT4+1

$NP_NAME[COUNT4]="Z_CYL_2" $NP_NAME[COUNT4]="Z_BOX_1"
$NP_NEXT[COUNT4]="Z_BOX_1" $NP_NEXT[COUNT4]=""
$NP_NEXTP[COUNT4]="" $NP_NEXTP[COUNT4]=""
$NP_ADD[COUNT4]="" $NP_ADD[COUNT4]=""
$NP_COLOR[COUNT4]=12632256 $NP_COLOR[COUNT4]=0
$NP_D_LEVEL[COUNT4]=0 $NP_D_LEVEL[COUNT4]=0
$NP_USAGE[COUNT4]="A" $NP_USAGE[COUNT4]="A"
$NP_TYPE[COUNT4]="CYLINDER" $NP_TYPE[COUNT4]="BOX"
$NP_FILENAME[COUNT4]="" $NP_FILENAME[COUNT4]=""
$NP_PARA[COUNT4,0]=80 $NP_PARA[COUNT4,0]=200
$NP_PARA[COUNT4,1]=75 $NP_PARA[COUNT4,1]=200
$NP_PARA[COUNT4,2]=0 $NP_PARA[COUNT4,2]=1000
$NP_OFF[COUNT4,0]=0 $NP_OFF[COUNT4,0]=0
$NP_OFF[COUNT4,1]=0 $NP_OFF[COUNT4,1]=0
$NP_OFF[COUNT4,2]=50 $NP_OFF[COUNT4,2]=540
$NP_DIR[COUNT4,0]=0 $NP_DIR[COUNT4,0]=0
$NP_DIR[COUNT4,1]=0 $NP_DIR[COUNT4,1]=0
$NP_DIR[COUNT4,2]=0 $NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=0 $NP_ANG[COUNT4]=0
COUNT4=COUNT4+1 COUNT4=COUNT4+1

Notes:

840D sl SINUMERIK Operate Page 23 A183


A183 Collision avoidance, 5-axis table kinematics

$NP_NAME[COUNT4]="A_FRAME_1" $NP_NAME[COUNT4]="A_BOX_5"
$NP_NEXT[COUNT4]="A_CYL_1" $NP_NEXT[COUNT4]="A_BOX_6"
$NP_NEXTP[COUNT4]="A_BOX_5" $NP_NEXTP[COUNT4]="A_BOX_7"
$NP_ADD[COUNT4]="" $NP_ADD[COUNT4]=""
$NP_COLOR[COUNT4]=0 $NP_COLOR[COUNT4]=0
$NP_D_LEVEL[COUNT4]=0 $NP_D_LEVEL[COUNT4]=0
$NP_USAGE[COUNT4]="A" $NP_USAGE[COUNT4]="A"
$NP_TYPE[COUNT4]="FRAME" $NP_TYPE[COUNT4]="BOX"
$NP_FILENAME[COUNT4]="" $NP_FILENAME[COUNT4]=""
$NP_PARA[COUNT4,0]=0 $NP_PARA[COUNT4,0]=100
$NP_PARA[COUNT4,1]=0 $NP_PARA[COUNT4,1]=275
$NP_PARA[COUNT4,2]=0 $NP_PARA[COUNT4,2]=300
$NP_OFF[COUNT4,0]=0 $NP_OFF[COUNT4,0]=-500
$NP_OFF[COUNT4,1]=0 $NP_OFF[COUNT4,1]=0
$NP_OFF[COUNT4,2]=0 $NP_OFF[COUNT4,2]=-100
$NP_DIR[COUNT4,0]=0 $NP_DIR[COUNT4,0]=0
$NP_DIR[COUNT4,1]=0 $NP_DIR[COUNT4,1]=1
$NP_DIR[COUNT4,2]=0 $NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=0 $NP_ANG[COUNT4]=-20
COUNT4=COUNT4+1 COUNT4=COUNT4+1

$NP_NAME[COUNT4]="A_BOX_7" $NP_NAME[COUNT4]="A_BOX_6"
$NP_NEXT[COUNT4]="" $NP_NEXT[COUNT4]=""
$NP_NEXTP[COUNT4]="" $NP_NEXTP[COUNT4]=""
$NP_ADD[COUNT4]="" $NP_ADD[COUNT4]=""
$NP_COLOR[COUNT4]=0 $NP_COLOR[COUNT4]=0
$NP_D_LEVEL[COUNT4]=0 $NP_D_LEVEL[COUNT4]=0
$NP_USAGE[COUNT4]="A" $NP_USAGE[COUNT4]="A"
$NP_TYPE[COUNT4]="BOX" $NP_TYPE[COUNT4]="BOX"
$NP_FILENAME[COUNT4]="" $NP_FILENAME[COUNT4]=""
$NP_PARA[COUNT4,0]=100 $NP_PARA[COUNT4,0]=100
$NP_PARA[COUNT4,1]=100 $NP_PARA[COUNT4,1]=100
$NP_PARA[COUNT4,2]=325 $NP_PARA[COUNT4,2]=325
$NP_OFF[COUNT4,0]=0 $NP_OFF[COUNT4,0]=0
$NP_OFF[COUNT4,1]=125 $NP_OFF[COUNT4,1]=-125
$NP_OFF[COUNT4,2]=0 $NP_OFF[COUNT4,2]=0
$NP_DIR[COUNT4,0]=1 $NP_DIR[COUNT4,0]=1
$NP_DIR[COUNT4,1]=0 $NP_DIR[COUNT4,1]=0
$NP_DIR[COUNT4,2]=0 $NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=15 $NP_ANG[COUNT4]=-15
COUNT4=COUNT4+1 COUNT4=COUNT4+1

Notes:

A183 Page 24 840D sl SINUMERIK Operate


Collision avoidance, 5-axis table kinematics A183

$NP_NAME[COUNT4]="A_CYL_1" $NP_NAME[COUNT4]="A_BOX_2"
$NP_NEXT[COUNT4]="A_BOX_1" $NP_NEXT[COUNT4]="A_BOX_3"
$NP_NEXTP[COUNT4]="A_BOX_2" $NP_NEXTP[COUNT4]="A_BOX_4"
$NP_ADD[COUNT4]="" $NP_ADD[COUNT4]=""
$NP_COLOR[COUNT4]=0 $NP_COLOR[COUNT4]=0
$NP_D_LEVEL[COUNT4]=0 $NP_D_LEVEL[COUNT4]=0
$NP_USAGE[COUNT4]="A" $NP_USAGE[COUNT4]="A"
$NP_TYPE[COUNT4]="CYLINDER" $NP_TYPE[COUNT4]="BOX"
$NP_FILENAME[COUNT4]="" $NP_FILENAME[COUNT4]=""
$NP_PARA[COUNT4,0]=50 $NP_PARA[COUNT4,0]=100
$NP_PARA[COUNT4,1]=225 $NP_PARA[COUNT4,1]=275
$NP_PARA[COUNT4,2]=0 $NP_PARA[COUNT4,2]=300
$NP_OFF[COUNT4,0]=0 $NP_OFF[COUNT4,0]=500
$NP_OFF[COUNT4,1]=0 $NP_OFF[COUNT4,1]=0
$NP_OFF[COUNT4,2]=-200 $NP_OFF[COUNT4,2]=100
$NP_DIR[COUNT4,0]=0 $NP_DIR[COUNT4,0]=0
$NP_DIR[COUNT4,1]=0 $NP_DIR[COUNT4,1]=1
$NP_DIR[COUNT4,2]=0 $NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=0 $NP_ANG[COUNT4]=20
COUNT4=COUNT4+1 COUNT4=COUNT4+1

$NP_NAME[COUNT4]="A_BOX_4" $NP_NAME[COUNT4]="A_BOX_3"
$NP_NEXT[COUNT4]="" $NP_NEXT[COUNT4]=""
$NP_NEXTP[COUNT4]="" $NP_NEXTP[COUNT4]=""
$NP_ADD[COUNT4]="" $NP_ADD[COUNT4]=""
$NP_COLOR[COUNT4]=0 $NP_COLOR[COUNT4]=0
$NP_D_LEVEL[COUNT4]=0 $NP_D_LEVEL[COUNT4]=0
$NP_USAGE[COUNT4]="A" $NP_USAGE[COUNT4]="A"
$NP_TYPE[COUNT4]="BOX" $NP_TYPE[COUNT4]="BOX"
$NP_FILENAME[COUNT4]="" $NP_FILENAME[COUNT4]=""
$NP_PARA[COUNT4,0]=100 $NP_PARA[COUNT4,0]=100
$NP_PARA[COUNT4,1]=100 $NP_PARA[COUNT4,1]=100
$NP_PARA[COUNT4,2]=325 $NP_PARA[COUNT4,2]=325
$NP_OFF[COUNT4,0]=0 $NP_OFF[COUNT4,0]=0
$NP_OFF[COUNT4,1]=125 $NP_OFF[COUNT4,1]=-125
$NP_OFF[COUNT4,2]=0 $NP_OFF[COUNT4,2]=0
$NP_DIR[COUNT4,0]=1 $NP_DIR[COUNT4,0]=1
$NP_DIR[COUNT4,1]=0 $NP_DIR[COUNT4,1]=0
$NP_DIR[COUNT4,2]=0 $NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=15 $NP_ANG[COUNT4]=-15
COUNT4=COUNT4+1 COUNT4=COUNT4+1

Notes:

840D sl SINUMERIK Operate Page 25 A183


A183 Collision avoidance, 5-axis table kinematics

$NP_NAME[COUNT4]="A_BOX_1" $NP_NAME[COUNT4]="A_CYL_2"
$NP_NEXT[COUNT4]="A_CYL_2" $NP_NEXT[COUNT4]="A_CYL_3"
$NP_NEXTP[COUNT4]="A_CYL_4" $NP_NEXTP[COUNT4]=""
$NP_ADD[COUNT4]="" $NP_ADD[COUNT4]=""
$NP_COLOR[COUNT4]=0 $NP_COLOR[COUNT4]=0
$NP_D_LEVEL[COUNT4]=0 $NP_D_LEVEL[COUNT4]=0
$NP_USAGE[COUNT4]="A" $NP_USAGE[COUNT4]="A"
$NP_TYPE[COUNT4]="BOX" $NP_TYPE[COUNT4]="CYLINDER"
$NP_FILENAME[COUNT4]="" $NP_FILENAME[COUNT4]=""
$NP_PARA[COUNT4,0]=1000 $NP_PARA[COUNT4,0]=150
$NP_PARA[COUNT4,1]=425 $NP_PARA[COUNT4,1]=150
$NP_PARA[COUNT4,2]=150 $NP_PARA[COUNT4,2]=0
$NP_OFF[COUNT4,0]=0 $NP_OFF[COUNT4,0]=-575
$NP_OFF[COUNT4,1]=0 $NP_OFF[COUNT4,1]=0
$NP_OFF[COUNT4,2]=-95 $NP_OFF[COUNT4,2]=300
$NP_DIR[COUNT4,0]=0 $NP_DIR[COUNT4,0]=0
$NP_DIR[COUNT4,1]=0 $NP_DIR[COUNT4,1]=1
$NP_DIR[COUNT4,2]=0 $NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=0 $NP_ANG[COUNT4]=90
COUNT4=COUNT4+1 COUNT4=COUNT4+1

$NP_NAME[COUNT4]="A_CYL_3" $NP_NAME[COUNT4]="A_CYL_4"
$NP_NEXT[COUNT4]="" $NP_NEXT[COUNT4]="A_CYL_5"
$NP_NEXTP[COUNT4]="" $NP_NEXTP[COUNT4]=""
$NP_ADD[COUNT4]="" $NP_ADD[COUNT4]=""
$NP_COLOR[COUNT4]=0 $NP_COLOR[COUNT4]=8421504
$NP_D_LEVEL[COUNT4]=0 $NP_D_LEVEL[COUNT4]=0
$NP_USAGE[COUNT4]="A" $NP_USAGE[COUNT4]="A"
$NP_TYPE[COUNT4]="CYLINDER" $NP_TYPE[COUNT4]="CYLINDER"
$NP_FILENAME[COUNT4]="" $NP_FILENAME[COUNT4]=""
$NP_PARA[COUNT4,0]=150 $NP_PARA[COUNT4,0]=450
$NP_PARA[COUNT4,1]=150 $NP_PARA[COUNT4,1]=75
$NP_PARA[COUNT4,2]=0 $NP_PARA[COUNT4,2]=0
$NP_OFF[COUNT4,0]=0 $NP_OFF[COUNT4,0]=-450
$NP_OFF[COUNT4,1]=0 $NP_OFF[COUNT4,1]=0
$NP_OFF[COUNT4,2]=1150 $NP_OFF[COUNT4,2]=50
$NP_DIR[COUNT4,0]=0 $NP_DIR[COUNT4,0]=1
$NP_DIR[COUNT4,1]=0 $NP_DIR[COUNT4,1]=0
$NP_DIR[COUNT4,2]=0 $NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=0 $NP_ANG[COUNT4]=90
COUNT4=COUNT4+1 COUNT4=COUNT4+1

Notes:

A183 Page 26 840D sl SINUMERIK Operate


Collision avoidance, 5-axis table kinematics A183

$NP_NAME[COUNT4]="A_CYL_5" $NP_NAME[COUNT4]="C_CYL_1"
$NP_NEXT[COUNT4]="" $NP_NEXT[COUNT4]=""
$NP_NEXTP[COUNT4]="" $NP_NEXTP[COUNT4]=""
$NP_ADD[COUNT4]="" $NP_ADD[COUNT4]=""
$NP_COLOR[COUNT4]=8421504 $NP_COLOR[COUNT4]=-13421773
$NP_D_LEVEL[COUNT4]=0 $NP_D_LEVEL[COUNT4]=0
$NP_USAGE[COUNT4]="A" $NP_USAGE[COUNT4]="A"
$NP_TYPE[COUNT4]="CYLINDER" $NP_TYPE[COUNT4]="CYLINDER"
$NP_FILENAME[COUNT4]="" $NP_FILENAME[COUNT4]=""
$NP_PARA[COUNT4,0]=450 $NP_PARA[COUNT4,0]=80
$NP_PARA[COUNT4,1]=75 $NP_PARA[COUNT4,1]=250
$NP_PARA[COUNT4,2]=0 $NP_PARA[COUNT4,2]=0
$NP_OFF[COUNT4,0]=900 $NP_OFF[COUNT4,0]=0
$NP_OFF[COUNT4,1]=0 $NP_OFF[COUNT4,1]=0
$NP_OFF[COUNT4,2]=0 $NP_OFF[COUNT4,2]=-40
$NP_DIR[COUNT4,0]=0 $NP_DIR[COUNT4,0]=0
$NP_DIR[COUNT4,1]=0 $NP_DIR[COUNT4,1]=0
$NP_DIR[COUNT4,2]=0 $NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=0 $NP_ANG[COUNT4]=0
COUNT4=COUNT4+1 COUNT4=COUNT4+1

Notes:

840D sl SINUMERIK Operate Page 27 A183


A183 Collision avoidance, 5-axis table kinematics

To allow the collision consideration to become active, those protection areas that must not collide with each other must be
defined.

For this machine, the combinations listed below should be checked:

Z_PROT → C_PROT Z axis against the C axis, when no tool is active


Z_PROT → A_PROT Z axis against the A axis, when no tool is active
Z_PROT → ROOT_PROT_1 Z axis against the base frame, when no tool is active
Z_PROT → ROOT_PROT_2 Z axis against the tool change flap, when no tool is active
TOOL_PROT → C_PROT Tool against the C axis
TOOL_PROT → A_PROT Tool against the A axis
TOOL_PROT → ROOT_PROT_1 Tool against base frame
TOOL_PROT → ROOT_PROT_2 Tool against the tool change flap

In the first declaration, the two protection areas Z_PROT and Protection area Z_PROT → A_PROT:
C_PROT are checked against each other:
Operating sequence: Place the cursor on "Collision groups"
Operating sequence: Place the cursor on "Collision groups" New element → Collision pair → OK
New element → Collision pair → OK

Notes:

A183 Page 28 840D sl SINUMERIK Operate


Collision avoidance, 5-axis table kinematics A183

Protection area Z_PROT → ROOT_PROT_1: Protection area Z_PROT → ROOT_PROT_2:

Operating sequence: Place the cursor on "Collision groups" Operating sequence: Place the cursor on "Collision groups"
New element → Collision pair → OK New element → Collision pair → OK

Protection area TOOL_PROT → C_PROT: Protection area TOOL_PROT → A_PROT:

Operating sequence: Place the cursor on "Collision groups" Operating sequence: Place the cursor on "Collision groups"
New element → Collision pair → OK New element → Collision pair → OK

Notes:

840D sl SINUMERIK Operate Page 29 A183


A183 Collision avoidance, 5-axis table kinematics

Protection area TOOL_PROT → ROOT_PROT_1: Protection area TOOL_PROT → ROOT_PROT_2:

Operating sequence: Place the cursor on "Collision groups" Operating sequence: Place the cursor on "Collision groups"
New element → Collision pair → OK New element → Collision pair → OK

Representation of the collision pairs as NC program: $NP_COLL_PAIR[COUNT5,0]="TOOL_PROT"


$NP_COLL_PAIR[COUNT5,1]="C_PROT"
DEF INT COUNT5
$NP_SAFETY_DIST[COUNT5]=5
$NP_COLL_PAIR[COUNT5,0]="Z_PROT" COUNT5=COUNT5+1
$NP_COLL_PAIR[COUNT5,1]="C_PROT"
$NP_SAFETY_DIST[COUNT5]=5 $NP_COLL_PAIR[COUNT5,0]="TOOL_PROT"
COUNT5=COUNT5+1 $NP_COLL_PAIR[COUNT5,1]="A_PROT"
$NP_SAFETY_DIST[COUNT5]=5
$NP_COLL_PAIR[COUNT5,0]="Z_PROT" COUNT5=COUNT5+1
$NP_COLL_PAIR[COUNT5,1]="A_PROT"
$NP_SAFETY_DIST[COUNT5]=5 $NP_COLL_PAIR[COUNT5,0]="TOOL_PROT"
COUNT5=COUNT5+1 $NP_COLL_PAIR[COUNT5,1]="ROOT_PROT_1"
$NP_SAFETY_DIST[COUNT5]=5
$NP_COLL_PAIR[COUNT5,0]="Z_PROT" COUNT5=COUNT5+1
$NP_COLL_PAIR[COUNT5,1]="ROOT_PROT_1"
$NP_SAFETY_DIST[COUNT5]=5 $NP_COLL_PAIR[COUNT5,0]="TOOL_PROT"
COUNT5=COUNT5+1 $NP_COLL_PAIR[COUNT5,1]="ROOT_PROT_2"
$NP_SAFETY_DIST[COUNT5]=5
$NP_COLL_PAIR[COUNT5,0]="Z_PROT" COUNT5=COUNT5+1
$NP_COLL_PAIR[COUNT5,1]="ROOT_PROT_2"
$NP_SAFETY_DIST[COUNT5]=5
COUNT5=COUNT5+1

Notes:

A183 Page 30 840D sl SINUMERIK Operate


Collision avoidance, 5-axis table kinematics A183

Complementing a Switching function for the Tool Change Integration of the TOOL _ FLAP _ SWITCH switch:
Door:
Operator sequence:
The Tool Change Door is to be deactivated as a Collision Put Cursor on Line "A _ OFFSET."
element when Changing tools and reactivated after the Tool New Element → Kinematics Element → Paralleler Switch
change has taken place. The Name of the Chain Element is given as "TOOL _ FLAP _
SWITCH."
For this purpose, a Switch (SWITCH) is supplemented in the The following Settings are used:
kinematic Chain, which can interrupt the Connection of the
protection Area with the Tool Changing Door to the ROOT
element.

• This requires the following Steps:


• Integration of the TOOL _ FLAP _ SWITCH switch.
• Integration of an Offset TOOL _ FLAP _ OFFFSET..
• Integration of a Protected Area
• TOOL _ FLAP _ PROT (Machine Protection area).
• The Element ROOT_BOX_8 (Tool Changing Door)
• The protection Area ROOT_PROT_2 to the Protection
area TOOL _ FLAP _ PROT must be converted.
• The Protection Area ROOT_PROT_2 must be deleted.
• The Collision Groups that use the Protection Area
ROOT_PROT_2 must be adapted to the Protection
Area name TOOL _ FLAP _ PROT.
• The Tool Change cycle needs to be adjusted.

Integration of the Offset TOOL _ FLAP _ OFFSET: Integration of a Protected Area TOOL _ FLAP _ PROT:
The Offset element serves only as a Placeholder, as the Pro- Operator sequence:
tection Area cannot be attached directly to the SWITCH. Put Cursor on Line "TOOL _ FLAP _ OFFSET."
New Element → collision element → Machine protection Area
Operator sequence: The Name of the Protection Area is given as "TOOL _ FLAP
Put Cursor on Line "TOOL _ FLAP _ SWITCH." _ PROT."
New Element → Kinematics Element → Offset The following Settings are used:
The Name of the Chain Element is given as "TOOL _ FLAP _
OFFSET."
The following Settings are used:

Notes:

840D sl SINUMERIK Operate Page 31 A183


A183 Collision avoidance, 5-axis table kinematics

Implementing the Element ROOT_BOX_8: Adjusting the Collision groups:


Operator sequence: The two Collision Agreements:
Put Cursor on Line "ROOT_BOX_8." Z _ PROT — ROOT_PROT_2
And press The Soft-key "Cut out." TOOL _ PROT — ROOT_PROT_2
Put Cursor on Line "TOOL _ FLAP _ PROT."
Press The Soft-key "Insert." Need to be adjusted:
Z _ PROT — TOOL _ FLAP _ PROT
TOOL _ PROT — TOOL _ FLAP _ PROT

The entire Newly created section is shown below in the


Deleting the Protection Area ROOT_PROT_2: Screenshot:
Operator sequence:
Put Cursor on Line "ROOT_PROT_2."
And press The Soft-key "Delete Element."

Adjusting the Collision groups:

The Switching function can be via a Command


Be reviewed from an NC program:$NK _SWICH [0]=0;
Switch Position open"Screenshot shown:

$NK _SWICH[0]=1; Switch Position "closed"

N1000 PROC L6 SAVE DISPLOF

N1010 DEF INT _WZ_IN_SP,_WZ_VOR,_VVAR1


N1020 DEF REAL _WWPZ=400, _WWPX=0, _WWPY=999
N1050 IF(NOT $P_SEARCH)
N1060 _WZ_IN_SP=$TC_MPP6[9998,1]
N1070 GETSELT(_WZ_VOR)
N1080 IF(_WZ_IN_SP<>_WZ_VOR)
N1090 IF ($PC_TRAFO_TYPE_NAME=="TRAORI_STAT")
N1100 IF($NT_IDENT[($P_TRAFO_PARSET MOD 1000),0] _DEC5)>=2)
N1110 CYCLE800()
N1120 ENDIF
N1130 ENDIF
N1140 SPOS=0
N1170 _VVAR1=NAMETOINT("$NP_PROT_NAME","TOOL_FLAP_PROT",TRUE)
N1180 IF _VVAR1<>(-1)
N1190 $NK_SWITCH[0]=0
N1200 PROTA("R")
N1210 STOPRE
N1150 SUPA D0 G0 G90 G40 G60 Z=_WWPZ
N1160 SUPA D0 G0 G90 G40 G60 X=_WWPX Y=_WWPY-250
N1220 SUPA D0 G0 G90 G40 G60 Y=_WWPY
N1230 M206
N1240 SUPA D0 G0 G90 G40 G60 Y=_WWPY-250
N1250 STOPRE
N1260 $NK_SWITCH[0]=1
N1270 PROTA("R")
N1280 ELSE
N1150 SUPA D0 G0 G90 G40 G60 Z=_WWPZ
N1160 SUPA D0 G0 G90 G40 G60 X=_WWPX Y=_WWPY-250
N1290 M206
N1300 ENDIF
N1310 ENDIF
N1320 ELSE
N1330 M5
N1340 M206
N1350 ENDIF
N1360 IF $TC_MPP6[9998,1]<>0
N1370 D1
N1380 ENDIF
N1390 M17

Notes:

A183 Page 32 840D sl SINUMERIK Operate


Collision avoidance, 5-axis table kinematics A183

As An alternative to Controlling via a SWITCH element, the


PLC may also use an Activation Bit.
There are preassigned Addresses in the PLC:
840D: DB10.DBB234
828D: DB2600.DBB4

For this purpose, only an Adjustment of the Scope Of protec-


tion Is ROOT_PROT_2 carried out.

Based on the Basic Structure:

In this Example, DB10. DBX234.0 (Bit 0). The Activation pa-


rameter is set to the Pre-activated selection.
In The Training Simulator, the H0=80 and H0=81 functions
can be used:
The Scope Of PROTECTION ROOT_PROT_2 changed to H0 = 80 Flap is monitored
activation by the PLC: H0 = 81 Flap Is not monitored
After using the Respective Commands,
Activation PROTA ("R") programmed.

Proposal for a Tool Change Programme:

N1000 PROC L6 SAVE DISPLOF

N1010 DEF INT _WZ_IN_SP,_WZ_VOR,_VVAR1


N1020 DEF REAL _WWPZ=400
N1030 DEF REAL _WWPX=0
N1040 DEF REAL _WWPY=999
N1050 IF(NOT $P_SEARCH)
N1060 _WZ_IN_SP=$TC_MPP6[9998,1]
N1070 GETSELT(_WZ_VOR)
N1080 IF(_WZ_IN_SP<>_WZ_VOR)
N1090 IF ($PC_TRAFO_TYPE_NAME=="TRAORI_STAT")
N1100 IF($NT_IDENT[($P_TRAFO_PARSET MOD 1000),0] _DEC5)>=2)
N1110 CYCLE800()
N1120 ENDIF
N1130 ENDIF
N1140 SPOS=0
N1150 H0=81
N1160 PROTA("R")
N1170 STOPRE
N1180 SUPA D0 G0 G90 G40 G60 Z=_WWPZ
N1190 SUPA D0 G0 G90 G40 G60 X=_WWPX Y=_WWPY-250
N1200 SUPA D0 G0 G90 G40 G60 Y=_WWPY
N1210 M206
N1220 SUPA D0 G0 G90 G40 G60 Y=_WWPY-250
N1230 STOPRE
N1240 H0=80
N1250 PROTA("R")
N1260 ELSE
N1270 SUPA D0 G0 G90 G40 G60 Z=_WWPZ
N1280 SUPA D0 G0 G90 G40 G60 X=_WWPX Y=_WWPY-250
N1290 M206
N1300 ENDIF
N1310 ENDIF
N1320 ELSE
N1330 M5
N1340 M206
N1350 ENDIF
N1360 IF $TC_MPP6[9998,1]<>0
N1370 D1
N1380 ENDIF A183: END
N1390 M17

Notes:

840D sl SINUMERIK Operate Page 33 A183


A183 END Collision avoidance, 5-axis table kinematics

Notes:

A183 Page 34 840D sl SINUMERIK Operate


A184 5x head kinematics collision avoidance
Sinumerik
Operate

Module Description:

The following chapters provide further details of the kinematic chain operating principle. In particular,
the following topics are discussed:

• Collision avoidance with kinematic chains


- Configuration of collision pairs for a 5-axis machine with head kinematics

Module Objective:

The reader gains a general overview of the kinematic chains operating principle application and, in
various exercises, familiarized with the individual functions and their capabilities. After working through
all chapters, readers should be able to integrate their own machine kinematics in the system.

Content:
Sinumerik

Collision avoidance for a 5-axis machine with head kinematics

840D sl SINUMERIK Operate v4.8 Page 1 This document was produced for training purposes. A184
Siemens assumes no responsibility for its contents.
A184 5x head kinematics collision avoidance

A184 Page 2 840D sl SINUMERIK Operate


5x head kinematics collision avoidance A184

5x head kinematics collision


avoidance
START

Collision
avoidance
T

5x head kinematics collision


avoidance
END

Notes:

840D sl SINUMERIK Operate Page 3 A184


A184 5x head kinematics collision avoidance

List of the body dimensions:

• Table: 2000 x 1600 x 860


• Base plate: 3800 x 2800 x 150
• Y guide rail: 200 x 2800 x 300
• Y guide shoe: 400 x 460 x 300
• Column on Y shoe: 200 x 300 x 1800
• Upper bar: 3750 x 300 x 300
• XZ intermediate part: 460 x 560 x 460
• Z slide: 300 x 300 x 1500
• Plate 1 head: 300 x 300 x 90
• Plate 2+3 head: 75 x 300 x 90
• Cylinder head: H75 x R150
• A body: 150 x 150 x 300
• Spindle ring: H25 x R55

Dimensions of interest:
Internal width of the Y guides: 3350mm
Half width to the Y guide center: 1775mm
Total head length: 400mm

To augment the kinematic chain with the collision check, several steps must be performed:

• Augment the kinematic chain with protection areas


• Augment the protection areas with model bodies
• Define the collision pairs

As precaution, the positions of the machine axes should be checked before starting work, because the positions affect the
representation in the graphic.

Moveable bodies should be defined for the following elements from the kinematic chain:
• ROOT
• Y_AXIS
• X_AXIS
• Z_AXIS
• C_AXIS
• A_AXIS

Notes:

A184 Page 4 840D sl SINUMERIK Operate


5x head kinematics collision avoidance A184

Assignment of the protection areas:

Z_PROT

Y_PROT X_PROT

A_PROT

C_PROT

ROOT_PROT

Notes:

840D sl SINUMERIK Operate Page 5 A184


A184 5x head kinematics collision avoidance

Definition of the protection area and of the collision bodies for the "ROOT" element:

The "ROOT" element contains the machine frame that consists of four individual parts within the "ROOT_PROT" protection area:

Designation: Dimension Offset values Use Type


ROOT_BOX_1 2000 x 1600 x 860 (0,0,-430) Clamping table Box
ROOT_BOX_2 3800 x 2800 x 150 (0,0,-505) Base plate Box
ROOT_BOX_3 200 x 2800 x 300 (-1775,0,225) Y guide left Box
ROOT_BOX_4 200 x 2800 x 300 (1775,0,225) Y guide right Box, parallel ROOT_BOX_2

The complete structure has the following architecture:

Note:

The sequence "ROOT_BOX_4" before


"ROOT_BOX_3" results from the HMI
tool. "ROOT_BOX_4" is a parallel box
to "ROOT_BOX_2".

ROOT_BOX_3
ROOT_BOX_1

ROOT_BOX_4

ROOT_BOX_2

Notes:

A184 Page 6 840D sl SINUMERIK Operate


5x head kinematics collision avoidance A184

Operating sequence for the creation:

Place the cursor on line "ROOT".


New element → Collision element → Machine protection area

The name of the chain element is specified as


"ROOT_PROT"; the mode is switched to "Activated".

Notes:

840D sl SINUMERIK Operate Page 7 A184


A184 5x head kinematics collision avoidance

The collision bodies are defined within the machine protection area. The machine table is defined as first element so that the body
surface is congruent with the machine zero.

Operating sequence for the creation:

Place the cursor on line "ROOT_PROT".


New element → Collision element → Box

The name of the chain element is specified as "ROOT_BOX_1";


the use is switched to "Display + Monitoring".

If no offset value is defined, the center point of the box is placed


exactly on the machine zero. To make the box surface congruent
with the machine zero, the body must be displaced by half its
height (860/2) in the Z–minus direction.

Caution:
All other bodies linked to this box refer in their spatial
arrangement to the center point of the current box.

The base plate of the machine is mounted at the bottom on


the machine clamping table. The specified offset values refer
to the center point of the prefixed box.

Operating sequence for the creation:

Place the cursor on line "ROOT_BOX_1".


New element → Collision element → Box
The name of the chain element is specified as
"ROOT_BOX_2"; the use is switched to
"Display + Monitoring".

Notes:

A184 Page 8 840D sl SINUMERIK Operate


5x head kinematics collision avoidance A184

The linear guide in Y on the left side is attached below the The linear guide in Y on the right side is attached as "Parallel
base plate (ROOT_BOX_2): box" element type below the base plate (ROOT_BOX_2):

Operating sequence for the creation: Operating sequence for the creation:
Place the cursor on line "ROOT_BOX_2".
Place the cursor on line "ROOT_BOX_2". New element → Collision element → Parallel box
New element → Collision element → Box The name of the chain element is specified as
The name of the chain element is specified as "ROOT_BOX_4"; the use is switched to
"ROOT_BOX_3"; the use is switched to "Display + Monitor- "Display + Monitoring".
ing".

The next protection area with its associated collision bodies is created for the Y axis.

The machine portal that consists of four individual parts within the "Y_PROT" protection area belongs to the "Y_AXIS" element:

Designation: Dimension Offset values Use Type


Y_BOX_1 400 x 460 x 300 (1775,350,-550) Y follower right Box
Y_BOX_2 200 x 300 x 1800 (0,0,1050) Y bar right Box
Y_BOX_3 400 x 460 x 300 (-3550,0,0) Y follower left Box, parallel
Y_BOX_4 200 x 300 x 1800 (0,0,1050) Y bar left Box
Y_BOX_5 3750 x 300 x 300 (-1775,0,1050) Y bar top Box

The complete structure has the following architecture:

Notes:

840D sl SINUMERIK Operate Page 9 A184


A184 5x head kinematics collision avoidance

Assignment of the collision bodies:

Y_BOX_5
Y_BOX_4

Y_BOX_2

Y_BOX_3

Y_BOX_1

Notes:

A184 Page 10 840D sl SINUMERIK Operate


5x head kinematics collision avoidance A184

Notes:

840D sl SINUMERIK Operate Page 11 A184


A184 5x head kinematics collision avoidance

Operating sequence for the creation: Place the cursor on line "Y_PROT".
New element → Collision element → Box
Place the cursor on line "Y_AXIS". The name of the chain element is specified as "Y_BOX_1";
New element → Collision element → Machine protection area the use is switched to "Display + Monitoring".
The name of the chain element is specified as "Y_PROT"; the
mode is switched to "Activated".

The collision bodies are defined within the machine protection Note:
area. Initially, the right follower of the Y axis is defined. The Y offset is required so that the Z body can be displaced to
Y-MCS=0 in the Y direction. Consequently, the complete portal
Operating sequence for the creation: must be moved by 350 mm in the Y direction.

The right Y bar is defined below "Y_BOX_1"; because the The left Y follower is also defined as parallel box below
reference point is taken from the right follower, an offset is "Y_BOX_1".
programmed only in the Z direction. Operating sequence for the creation:

Operating sequence for the creation: Place the cursor on line "Y_BOX_1".
New element → Collision element → Parallel box
Place the cursor on line "Y_BOX_1". The name of the chain element is specified as "Y_BOX_3";
New element → Collision element → Box the use is switched to "Display + Monitoring".
Based on the center point of the right follower, the left follower
The name of the chain element is specified as "Y_BOX_2"; is displaced in the X direction.
the use is switched to "Display + Monitoring".

Notes:

A184 Page 12 840D sl SINUMERIK Operate


5x head kinematics collision avoidance A184

The left Y bar is defined as box below "Y_BOX_3". Finally, the upper bar of the portal is defined as "Y_BOX_5".
Operating sequence for the creation: In this example, the box is created as subordinate element for
"Y_BOX_2". Alternatively, the body can also be attached to
Place the cursor on line "Y_BOX_3". "Y_BOX_4".
New element → Collision element → Box
Operating sequence for the creation:
The name of the chain element is specified as "Y_BOX_4";
the use is switched to "Display + Monitoring". Place the cursor on line "Y_BOX_2".
New element → Collision element → Box

The name of the chain element is specified as "Y_BOX_5";


the use is switched to "Display + Monitoring".

The protection area for the X axis consists only of a collision body, the connection element between the upper part of the traverse
and the Z axis.

Consequently, only a single body belongs to the "X_AXIS" element:

Designation: Dimension Offset values Use Type


X_BOX_1 460 x 560 x 460 (0,250,1550) X slide Box

The complete structure has the following architecture:

Notes:

840D sl SINUMERIK Operate Page 13 A184


A184 5x head kinematics collision avoidance

Operating sequence for the creation: The X axis is defined as box below the "X_PROT" protection
area.
Place the cursor on line "X_AXIS". Operating sequence for the creation:
New element → Collision element → Machine protection area
Place the cursor on line "X_PROT".
The name of the chain element is specified as "X_PROT"; the New element → Collision element → Box
mode is switched to "Activated".
The name of the chain element is specified as "X_BOX_1";
the use is switched to "Display + Monitoring".

The protection area for the Z axis consists only of a collision body, the Z axis itself.

Consequently, only a single body belongs to the "Z_AXIS" element:

Designation: Dimension Offset values Use Type


Z_BOX_1 300 x 300 x 1500 (0,0,1150) Z slide Box

The complete structure has the following architecture:

Notes:

A184 Page 14 840D sl SINUMERIK Operate


5x head kinematics collision avoidance A184

Operating sequence for the creation: The Z axis is defined as box below the "Z_PROT" protection
area.
Place the cursor on line "Z_AXIS".
New element → Collision element → Machine protection area Operating sequence for the creation:

The name of the chain element is specified as "Z_PROT"; the Place the cursor on line "Z_PROT".
mode is switched to "Activated". New element → Collision element → Box

The name of the chain element is specified as "Z_BOX_1";


the use is switched to "Display + Monitoring".

Note:
The offset values are defined so that the lower edge for MCS XYZ=0 is 400 mm from the table upper edge.

The protection area for which the C axis consists, includes the body of the "fork head" that is formed from several individual parts:

Designation: Dimension Offset values Use Type


C_BOX_1 300 x 300 x 90 (0,0,355) Fork head base plate Box
C_BOX_2 75 x 300 x 90 (-112.5,0,-90) Fork head left flange Box
C_BOX_3 75 x 300 x 90 (112.5,0,-90) Fork head right flange Parallele Box
C_CYL_1 H75 x R150 (0,0,-45), Rot(0,1,0) 90° Fork head right flange Cylinder
C_CYL_2 H75 x R150 (0,0,-45), Rot(0,1,0) 90° Fork head left flange Cylinder

The complete structure has the following architecture:

Notes:

840D sl SINUMERIK Operate Page 15 A184


A184 5x head kinematics collision avoidance

Assignment of the collision bodies:

C_BOX_1
C_BOX_2

C_BOX_3

C_CYL_1
C_CYL2

Notes:

A184 Page 16 840D sl SINUMERIK Operate


5x head kinematics collision avoidance A184

Notes:

840D sl SINUMERIK Operate Page 17 A184


A184 5x head kinematics collision avoidance

Operating sequence for the creation: The cover plate of the C axis is defined as box below the
"C_PROT" protection area.
Place the cursor on line "C_AXIS".
New element → Collision element → Machine protection area Operating sequence for the creation:

The name of the chain element is specified as "C_PROT"; the Place the cursor on line "C_PROT".
mode is switched to "Activated". New element → Collision element → Box

The name of the chain element is specified as "C_BOX_1";


the use is switched to "Display + Monitoring".

Note:
The offset values are defined so that the upper edge of the
box has contact with the lower edge of the Z axis.

As next body, the left side flange is connected as box with the
"C_BOX_1" element.

Operating sequence for the creation:

Place the cursor on line "C_BOX_1".


New element → Collision element → Box

The name of the chain element is specified as "C_BOX_2";


the use is switched to "Display + Monitoring".

Notes:

A184 Page 18 840D sl SINUMERIK Operate


5x head kinematics collision avoidance A184

Parallel to the left side flange, the right side flange is connect- Each of the two side flanges is augmented with a cylinder.
ed as box with the "C_BOX_1" element. The cylinder is turned by 90° at a spin axis (0,1,0).

Operating sequence for the creation: Operating sequence for the creation:
Place the cursor on line "C_BOX_1".
New element → Collision element → Parallel box Place the cursor on line "C_BOX_3".
The name of the chain element is specified as "C_BOX_3"; New element → Collision element → Parallel box
the use is switched to "Display + Monitoring".
The name of the chain element is specified as "C_CYL_1";
the use is switched to "Display + Monitoring".

In the same manner, another cylinder is connected with the


"C_BOX_2" element.

Operating sequence for the creation:


Place the cursor on line "C_BOX_2".
New element → Collision element → Parallel box
The name of the chain element is specified as "C_CYL_2";
the use is switched to "Display + Monitoring".

Notes:

840D sl SINUMERIK Operate Page 19 A184


A184 5x head kinematics collision avoidance

The protection area for the A axis consists only of one collision body as "Box" element type. The lower spindle ring is linked later
directly to the spindle.

Designation: Dimension Offset values Use Type


A_BOX_1 150 x 150 x 300 (0,0,-45) A axxis Box
A_CYL_1 H25 x R55 (0,0,-162.5) Spindle nose Cylinder

The complete structure has the following architecture:

Operating sequence for the creation: The cover plate of the A axis is defined as box below the
"A_PROT" protection area.
Place the cursor on line "A_AXIS".
New element → Collision element → Machine protection area Operating sequence for the creation:

The name of the chain element is specified as "A_PROT"; the Place the cursor on line "A_PROT".
mode is switched to "Activated". New element → Collision element → Box

The name of the chain element is specified as "A_BOX_1";


the use is switched to "Display + Monitoring".

Notes:

A184 Page 20 840D sl SINUMERIK Operate


5x head kinematics collision avoidance A184

Note: The protection area for the spindle consists only of one area:
The "A_OFF_1" element moves the offset in Z by 220 mm.
• Tool protection area for definition of the tool change location
The A_BOX_1 is installed so that 25 mm space for the spindle
nose remains between the A_BOX lower edge and the table
surface.
The complete structure has the following architecture:
Operating sequence for creating the spindle nose:
Place the cursor on line "A_BOX_1".

New element → Collision element → Cylinder


The name of the chain element is specified as "A_CYL_1";
the use is switched to "Display + Monitoring".

The tool protection area for definition of the tool change loca-
tion still needs to be defined below the "SP1_AXIS" element.

Operating sequence for the creation:

Place the cursor on line "SP1_AXIS".


New element → Collision element → Tool protection area

The name of the chain element is specified as "TOOL"; the


mode is switched to "Activated".

Notes:

840D sl SINUMERIK Operate Page 21 A184


A184 5x head kinematics collision avoidance

The machine is so prepared completely for representation in the graphic and the function can be checked by a traversal in JOG or
with an NC program.

When a tool is called and no further zero offset is active, for G0 X0 Y0 Z0, the tool must be positioned in the center of the table
and on its upper edge.

The rotary axes function can also be checked by moving the appropriate axes.

Representation of the
completed machine for
position:
G0 G500 X0 Y0 Z200 D0

Notes:

A184 Page 22 840D sl SINUMERIK Operate


5x head kinematics collision avoidance A184

Representation of the protection areas as NC program: $NP_PROT_NAME[COUNT3]="Y_PROT"


$NP_CHAIN_ELEM[COUNT3]="Y_AXIS"
DEF INT COUNT3 $NP_PROT_TYPE[COUNT3]="MACHINE"
$NP_PROT_NAME[COUNT3]="ROOT_PROT" $NP_1ST_PROT[COUNT3]="Y_BOX_1"
$NP_CHAIN_ELEM[COUNT3]="ROOT" $NP_PROT_COLOR[COUNT3]=0
$NP_PROT_TYPE[COUNT3]="MACHINE" $NP_PROT_D_LEVEL[COUNT3]=0
$NP_1ST_PROT[COUNT3]="ROOT_BOX_1" $NP_BIT_NO[COUNT3]=-1
$NP_PROT_COLOR[COUNT3]=-16744256 $NP_INIT_STAT[COUNT3]="A"
$NP_PROT_D_LEVEL[COUNT3]=0 $NP_INDEX[COUNT3,0]=0
$NP_BIT_NO[COUNT3]=-1 $NP_INDEX[COUNT3,1]=0
$NP_INIT_STAT[COUNT3]="A" $NP_INDEX[COUNT3,2]=0
$NP_INDEX[COUNT3,0]=0 COUNT3=COUNT3+1
$NP_INDEX[COUNT3,1]=0
$NP_INDEX[COUNT3,2]=0
COUNT3=COUNT3+1

$NP_PROT_NAME[COUNT3]="X_PROT" $NP_PROT_NAME[COUNT3]="Z_PROT"
$NP_CHAIN_ELEM[COUNT3]="X_AXIS" $NP_CHAIN_ELEM[COUNT3]="Z_AXIS"
$NP_PROT_TYPE[COUNT3]="MACHINE" $NP_PROT_TYPE[COUNT3]="MACHINE"
$NP_1ST_PROT[COUNT3]="X_BOX_1" $NP_1ST_PROT[COUNT3]="Z_BOX_1"
$NP_PROT_COLOR[COUNT3]=-16711681 $NP_PROT_COLOR[COUNT3]=-16744448
$NP_PROT_D_LEVEL[COUNT3]=0 $NP_PROT_D_LEVEL[COUNT3]=0
$NP_BIT_NO[COUNT3]=-1 $NP_BIT_NO[COUNT3]=-1
$NP_INIT_STAT[COUNT3]="A" $NP_INIT_STAT[COUNT3]="A"
$NP_INDEX[COUNT3,0]=0 $NP_INDEX[COUNT3,0]=0
$NP_INDEX[COUNT3,1]=0 $NP_INDEX[COUNT3,1]=0
$NP_INDEX[COUNT3,2]=0 $NP_INDEX[COUNT3,2]=0
COUNT3=COUNT3+1 COUNT3=COUNT3+1

Notes:

840D sl SINUMERIK Operate Page 23 A184


A184 5x head kinematics collision avoidance

$NP_PROT_NAME[COUNT3]="C_PROT" $NP_PROT_NAME[COUNT3]="A_PROT"
$NP_CHAIN_ELEM[COUNT3]="C_AXIS" $NP_CHAIN_ELEM[COUNT3]="A_AXIS"
$NP_PROT_TYPE[COUNT3]="MACHINE" $NP_PROT_TYPE[COUNT3]="MACHINE"
$NP_1ST_PROT[COUNT3]="C_BOX_1" $NP_1ST_PROT[COUNT3]="A_BOX_1"
$NP_PROT_COLOR[COUNT3]=-6250332 $NP_PROT_COLOR[COUNT3]=-16711681
$NP_PROT_D_LEVEL[COUNT3]=0 $NP_PROT_D_LEVEL[COUNT3]=0
$NP_BIT_NO[COUNT3]=-1 $NP_BIT_NO[COUNT3]=-1
$NP_INIT_STAT[COUNT3]="A" $NP_INIT_STAT[COUNT3]="A"
$NP_INDEX[COUNT3,0]=0 $NP_INDEX[COUNT3,0]=0
$NP_INDEX[COUNT3,1]=0 $NP_INDEX[COUNT3,1]=0
$NP_INDEX[COUNT3,2]=0 $NP_INDEX[COUNT3,2]=0
COUNT3=COUNT3+1 COUNT3=COUNT3+1

$NP_PROT_NAME[COUNT3]="TOOL" Representation of the collision bodies as NC program:


$NP_CHAIN_ELEM[COUNT3]="SP1_AXIS"
$NP_PROT_TYPE[COUNT3]="TOOL" DEF INT COUNT3
$NP_1ST_PROT[COUNT3]
="__TOOL_00001_09998_01_0000" $NP_NAME[COUNT4]="ROOT_BOX_1"
$NP_PROT_COLOR[COUNT3]=-16744448 $NP_NEXT[COUNT4]="ROOT_BOX_2"
$NP_PROT_D_LEVEL[COUNT3]=0 $NP_NEXTP[COUNT4]=""
$NP_BIT_NO[COUNT3]=-1 $NP_ADD[COUNT4]=""
$NP_INIT_STAT[COUNT3]="A" $NP_COLOR[COUNT4]=0
$NP_INDEX[COUNT3,0]=1 $NP_D_LEVEL[COUNT4]=0
$NP_INDEX[COUNT3,1]=9998 $NP_USAGE[COUNT4]="A"
$NP_INDEX[COUNT3,2]=1 $NP_TYPE[COUNT4]="BOX"
COUNT3=COUNT3+1 $NP_FILENAME[COUNT4]=""
$NP_PARA[COUNT4,0]=2000
$NP_PARA[COUNT4,1]=1600
$NP_PARA[COUNT4,2]=860
$NP_OFF[COUNT4,0]=0
$NP_OFF[COUNT4,1]=0
$NP_OFF[COUNT4,2]=-430
$NP_DIR[COUNT4,0]=0
$NP_DIR[COUNT4,1]=0
$NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=0
COUNT4=COUNT4+1

Notes:

A184 Page 24 840D sl SINUMERIK Operate


5x head kinematics collision avoidance A184

$NP_NAME[COUNT4]="ROOT_BOX_2" $NP_NAME[COUNT4]="ROOT_BOX_3"
$NP_NEXT[COUNT4]="ROOT_BOX_3" $NP_NEXT[COUNT4]=""
$NP_NEXTP[COUNT4]="ROOT_BOX_4" $NP_NEXTP[COUNT4]=""
$NP_ADD[COUNT4]="" $NP_ADD[COUNT4]=""
$NP_COLOR[COUNT4]=0 $NP_COLOR[COUNT4]=0
$NP_D_LEVEL[COUNT4]=0 $NP_D_LEVEL[COUNT4]=0
$NP_USAGE[COUNT4]="A" $NP_USAGE[COUNT4]="A"
$NP_TYPE[COUNT4]="BOX" $NP_TYPE[COUNT4]="BOX"
$NP_FILENAME[COUNT4]="" $NP_FILENAME[COUNT4]=""
$NP_PARA[COUNT4,0]=3800 $NP_PARA[COUNT4,0]=200
$NP_PARA[COUNT4,1]=2800 $NP_PARA[COUNT4,1]=2800
$NP_PARA[COUNT4,2]=150 $NP_PARA[COUNT4,2]=300
$NP_OFF[COUNT4,0]=0 $NP_OFF[COUNT4,0]=-1775
$NP_OFF[COUNT4,1]=0 $NP_OFF[COUNT4,1]=0
$NP_OFF[COUNT4,2]=-505 $NP_OFF[COUNT4,2]=225
$NP_DIR[COUNT4,0]=0 $NP_DIR[COUNT4,0]=0
$NP_DIR[COUNT4,1]=0 $NP_DIR[COUNT4,1]=0
$NP_DIR[COUNT4,2]=0 $NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=0 $NP_ANG[COUNT4]=0
COUNT4=COUNT4+1 COUNT4=COUNT4+1

$NP_NAME[COUNT4]="ROOT_BOX_4" $NP_NAME[COUNT4]="Y_BOX_1"
$NP_NEXT[COUNT4]="" $NP_NEXT[COUNT4]="Y_BOX_2"
$NP_NEXTP[COUNT4]="" $NP_NEXTP[COUNT4]="Y_BOX_3"
$NP_ADD[COUNT4]="" $NP_ADD[COUNT4]=""
$NP_COLOR[COUNT4]=0 $NP_COLOR[COUNT4]=65280
$NP_D_LEVEL[COUNT4]=0 $NP_D_LEVEL[COUNT4]=0
$NP_USAGE[COUNT4]="A" $NP_USAGE[COUNT4]="A"
$NP_TYPE[COUNT4]="BOX" $NP_TYPE[COUNT4]="BOX"
$NP_FILENAME[COUNT4]="" $NP_FILENAME[COUNT4]=""
$NP_PARA[COUNT4,0]=200 $NP_PARA[COUNT4,0]=400
$NP_PARA[COUNT4,1]=2800 $NP_PARA[COUNT4,1]=460
$NP_PARA[COUNT4,2]=300 $NP_PARA[COUNT4,2]=300
$NP_OFF[COUNT4,0]=1775 $NP_OFF[COUNT4,0]=1775
$NP_OFF[COUNT4,1]=0 $NP_OFF[COUNT4,1]=350
$NP_OFF[COUNT4,2]=225 $NP_OFF[COUNT4,2]=-550
$NP_DIR[COUNT4,0]=0 $NP_DIR[COUNT4,0]=0
$NP_DIR[COUNT4,1]=0 $NP_DIR[COUNT4,1]=0
$NP_DIR[COUNT4,2]=0 $NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=0 $NP_ANG[COUNT4]=0
COUNT4=COUNT4+1 COUNT4=COUNT4+1

Notes:

840D sl SINUMERIK Operate Page 25 A184


A184 5x head kinematics collision avoidance

$NP_NAME[COUNT4]="Y_BOX_2" $NP_NAME[COUNT4]="Y_BOX_3"
$NP_NEXT[COUNT4]="Y_BOX_5" $NP_NEXT[COUNT4]="Y_BOX_4"
$NP_NEXTP[COUNT4]="" $NP_NEXTP[COUNT4]=""
$NP_ADD[COUNT4]="" $NP_ADD[COUNT4]=""
$NP_COLOR[COUNT4]=65280 $NP_COLOR[COUNT4]=65280
$NP_D_LEVEL[COUNT4]=0 $NP_D_LEVEL[COUNT4]=0
$NP_USAGE[COUNT4]="A" $NP_USAGE[COUNT4]="A"
$NP_TYPE[COUNT4]="BOX" $NP_TYPE[COUNT4]="BOX"
$NP_FILENAME[COUNT4]="" $NP_FILENAME[COUNT4]=""
$NP_PARA[COUNT4,0]=200 $NP_PARA[COUNT4,0]=400
$NP_PARA[COUNT4,1]=300 $NP_PARA[COUNT4,1]=460
$NP_PARA[COUNT4,2]=1800 $NP_PARA[COUNT4,2]=300
$NP_OFF[COUNT4,0]=0 $NP_OFF[COUNT4,0]=-3550
$NP_OFF[COUNT4,1]=0 $NP_OFF[COUNT4,1]=0
$NP_OFF[COUNT4,2]=1050 $NP_OFF[COUNT4,2]=0
$NP_DIR[COUNT4,0]=0 $NP_DIR[COUNT4,0]=0
$NP_DIR[COUNT4,1]=0 $NP_DIR[COUNT4,1]=0
$NP_DIR[COUNT4,2]=0 $NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=0 $NP_ANG[COUNT4]=0
COUNT4=COUNT4+1 COUNT4=COUNT4+1

$NP_NAME[COUNT4]="Y_BOX_5" $NP_NAME[COUNT4]="X_BOX_1"
$NP_NEXT[COUNT4]="" $NP_NEXT[COUNT4]=""
$NP_NEXTP[COUNT4]="" $NP_NEXTP[COUNT4]=""
$NP_ADD[COUNT4]="" $NP_ADD[COUNT4]=""
$NP_COLOR[COUNT4]=65280 $NP_COLOR[COUNT4]=0
$NP_D_LEVEL[COUNT4]=0 $NP_D_LEVEL[COUNT4]=0
$NP_USAGE[COUNT4]="A" $NP_USAGE[COUNT4]="A"
$NP_TYPE[COUNT4]="BOX" $NP_TYPE[COUNT4]="BOX"
$NP_FILENAME[COUNT4]="" $NP_FILENAME[COUNT4]=""
$NP_PARA[COUNT4,0]=3750 $NP_PARA[COUNT4,0]=460
$NP_PARA[COUNT4,1]=300 $NP_PARA[COUNT4,1]=560
$NP_PARA[COUNT4,2]=300 $NP_PARA[COUNT4,2]=460
$NP_OFF[COUNT4,0]=-1775 $NP_OFF[COUNT4,0]=0
$NP_OFF[COUNT4,1]=0 $NP_OFF[COUNT4,1]=250
$NP_OFF[COUNT4,2]=1050 $NP_OFF[COUNT4,2]=1550
$NP_DIR[COUNT4,0]=0 $NP_DIR[COUNT4,0]=0
$NP_DIR[COUNT4,1]=0 $NP_DIR[COUNT4,1]=0
$NP_DIR[COUNT4,2]=0 $NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=0 $NP_ANG[COUNT4]=0
COUNT4=COUNT4+1 COUNT4=COUNT4+1

Notes:

A184 Page 26 840D sl SINUMERIK Operate


5x head kinematics collision avoidance A184

$NP_NAME[COUNT4]="Z_BOX_1" $NP_NAME[COUNT4]="C_BOX_1"
$NP_NEXT[COUNT4]="" $NP_NEXT[COUNT4]="C_BOX_2"
$NP_NEXTP[COUNT4]="" $NP_NEXTP[COUNT4]="C_BOX_3"
$NP_ADD[COUNT4]="" $NP_ADD[COUNT4]=""
$NP_COLOR[COUNT4]=0 $NP_COLOR[COUNT4]=8421504
$NP_D_LEVEL[COUNT4]=0 $NP_D_LEVEL[COUNT4]=0
$NP_USAGE[COUNT4]="A" $NP_USAGE[COUNT4]="A"
$NP_TYPE[COUNT4]="BOX" $NP_TYPE[COUNT4]="BOX"
$NP_FILENAME[COUNT4]="" $NP_FILENAME[COUNT4]=""
$NP_PARA[COUNT4,0]=300 $NP_PARA[COUNT4,0]=300
$NP_PARA[COUNT4,1]=300 $NP_PARA[COUNT4,1]=300
$NP_PARA[COUNT4,2]=1500 $NP_PARA[COUNT4,2]=90
$NP_OFF[COUNT4,0]=0 $NP_OFF[COUNT4,0]=0
$NP_OFF[COUNT4,1]=0 $NP_OFF[COUNT4,1]=0
$NP_OFF[COUNT4,2]=1150 $NP_OFF[COUNT4,2]=355
$NP_DIR[COUNT4,0]=0 $NP_DIR[COUNT4,0]=0
$NP_DIR[COUNT4,1]=0 $NP_DIR[COUNT4,1]=0
$NP_DIR[COUNT4,2]=0 $NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=0 $NP_ANG[COUNT4]=0
COUNT4=COUNT4+1 COUNT4=COUNT4+1

$NP_NAME[COUNT4]="C_BOX_2" $NP_NAME[COUNT4]="C_BOX_3"
$NP_NEXT[COUNT4]="C_CYL_2" $NP_NEXT[COUNT4]="C_CYL_1"
$NP_NEXTP[COUNT4]="" $NP_NEXTP[COUNT4]=""
$NP_ADD[COUNT4]="" $NP_ADD[COUNT4]=""
$NP_COLOR[COUNT4]=0 $NP_COLOR[COUNT4]=0
$NP_D_LEVEL[COUNT4]=0 $NP_D_LEVEL[COUNT4]=0
$NP_USAGE[COUNT4]="A" $NP_USAGE[COUNT4]="A"
$NP_TYPE[COUNT4]="BOX" $NP_TYPE[COUNT4]="BOX"
$NP_FILENAME[COUNT4]="" $NP_FILENAME[COUNT4]=""
$NP_PARA[COUNT4,0]=75 $NP_PARA[COUNT4,0]=75
$NP_PARA[COUNT4,1]=300 $NP_PARA[COUNT4,1]=300
$NP_PARA[COUNT4,2]=90 $NP_PARA[COUNT4,2]=90
$NP_OFF[COUNT4,0]=-112.5 $NP_OFF[COUNT4,0]=112.5
$NP_OFF[COUNT4,1]=0 $NP_OFF[COUNT4,1]=0
$NP_OFF[COUNT4,2]=-90 $NP_OFF[COUNT4,2]=-90
$NP_DIR[COUNT4,0]=0 $NP_DIR[COUNT4,0]=0
$NP_DIR[COUNT4,1]=0 $NP_DIR[COUNT4,1]=0
$NP_DIR[COUNT4,2]=0 $NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=0 $NP_ANG[COUNT4]=0
COUNT4=COUNT4+1 COUNT4=COUNT4+1

Notes:

840D sl SINUMERIK Operate Page 27 A184


A184 5x head kinematics collision avoidance

$NP_NAME[COUNT4]="C_CYL_1" $NP_NAME[COUNT4]="C_CYL_2"
$NP_NEXT[COUNT4]="" $NP_NEXT[COUNT4]=""
$NP_NEXTP[COUNT4]="" $NP_NEXTP[COUNT4]=""
$NP_ADD[COUNT4]="" $NP_ADD[COUNT4]=""
$NP_COLOR[COUNT4]=0 $NP_COLOR[COUNT4]=0
$NP_D_LEVEL[COUNT4]=0 $NP_D_LEVEL[COUNT4]=0
$NP_USAGE[COUNT4]="A" $NP_USAGE[COUNT4]="A"
$NP_TYPE[COUNT4]="CYLINDER" $NP_TYPE[COUNT4]="CYLINDER"
$NP_FILENAME[COUNT4]="" $NP_FILENAME[COUNT4]=""
$NP_PARA[COUNT4,0]=75 $NP_PARA[COUNT4,0]=75
$NP_PARA[COUNT4,1]=150 $NP_PARA[COUNT4,1]=150
$NP_PARA[COUNT4,2]=0 $NP_PARA[COUNT4,2]=0
$NP_OFF[COUNT4,0]=0 $NP_OFF[COUNT4,0]=0
$NP_OFF[COUNT4,1]=0 $NP_OFF[COUNT4,1]=0
$NP_OFF[COUNT4,2]=-45 $NP_OFF[COUNT4,2]=-45
$NP_DIR[COUNT4,0]=0 $NP_DIR[COUNT4,0]=0
$NP_DIR[COUNT4,1]=1 $NP_DIR[COUNT4,1]=1
$NP_DIR[COUNT4,2]=0 $NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=90 $NP_ANG[COUNT4]=90
COUNT4=COUNT4+1 COUNT4=COUNT4+1

$NP_NAME[COUNT4]="A_BOX_1" $NP_NAME[COUNT4]="A_CYL_1"
$NP_NEXT[COUNT4]="A_CYL_1" $NP_NEXT[COUNT4]=""
$NP_NEXTP[COUNT4]="" $NP_NEXTP[COUNT4]=""
$NP_ADD[COUNT4]="" $NP_ADD[COUNT4]=""
$NP_COLOR[COUNT4]=0 $NP_COLOR[COUNT4]=0
$NP_D_LEVEL[COUNT4]=0 $NP_D_LEVEL[COUNT4]=0
$NP_USAGE[COUNT4]="A" $NP_USAGE[COUNT4]="A"
$NP_TYPE[COUNT4]="BOX" $NP_TYPE[COUNT4]="CYLINDER"
$NP_FILENAME[COUNT4]="" $NP_FILENAME[COUNT4]=""
$NP_PARA[COUNT4,0]=150 $NP_PARA[COUNT4,0]=25
$NP_PARA[COUNT4,1]=150 $NP_PARA[COUNT4,1]=55
$NP_PARA[COUNT4,2]=300 $NP_PARA[COUNT4,2]=0
$NP_OFF[COUNT4,0]=0 $NP_OFF[COUNT4,0]=0
$NP_OFF[COUNT4,1]=0 $NP_OFF[COUNT4,1]=0
$NP_OFF[COUNT4,2]=-45 $NP_OFF[COUNT4,2]=-162.5
$NP_DIR[COUNT4,0]=0 $NP_DIR[COUNT4,0]=0
$NP_DIR[COUNT4,1]=0 $NP_DIR[COUNT4,1]=0
$NP_DIR[COUNT4,2]=0 $NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=0 $NP_ANG[COUNT4]=0
COUNT4=COUNT4+1 COUNT4=COUNT4+1

Notes:

A184 Page 28 840D sl SINUMERIK Operate


5x head kinematics collision avoidance A184

$NP_NAME[COUNT4]="Y_BOX_4"
$NP_NEXT[COUNT4]=""
$NP_NEXTP[COUNT4]=""
$NP_ADD[COUNT4]=""
$NP_COLOR[COUNT4]=65280
$NP_D_LEVEL[COUNT4]=0
$NP_USAGE[COUNT4]="A"
$NP_TYPE[COUNT4]="BOX"
$NP_FILENAME[COUNT4]=""
$NP_PARA[COUNT4,0]=200
$NP_PARA[COUNT4,1]=300
$NP_PARA[COUNT4,2]=1800
$NP_OFF[COUNT4,0]=0
$NP_OFF[COUNT4,1]=0
$NP_OFF[COUNT4,2]=1050
$NP_DIR[COUNT4,0]=0
$NP_DIR[COUNT4,1]=0
$NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=0
COUNT4=COUNT4+1

Notes:

840D sl SINUMERIK Operate Page 29 A184


A184 5x head kinematics collision avoidance

To allow the collision consideration to become active, those protection areas that must not collide with each other must be de-
fined.

For this machine, the combinations listed below should be checked:

ROOT_PROT → TOOL Table against tool


ROOT_PROT → A_PROT Table against A axis / spindle
ROOT_PROT → C_PROT Table against C axis

To define the collision pairs, place the cursor on the "Collision groups" folder in the structure tree:

In the first declaration, the two protection areas ROOT_PROT Protection area ROOT_PROT → A_PROT:
and TOOL are checked against each other:
Operating sequence: Place the cursor on "Collision groups"
New element → Collision pair → OK

Notes:

A184 Page 30 840D sl SINUMERIK Operate


5x head kinematics collision avoidance A184

Protection area ROOT_PROT → C_PROT: Representation of the collision pairs as NC program:

Operating sequence: Place the cursor on "Collision groups" DEF INT COUNT5
New element → Collision pair → OK
$NP_COLL_PAIR[COUNT5,0]="ROOT_PROT"
$NP_COLL_PAIR[COUNT5,1]="TOOL"
$NP_SAFETY_DIST[COUNT5]=0
COUNT5=COUNT5+1

$NP_COLL_PAIR[COUNT5,0]="ROOT_PROT"
$NP_COLL_PAIR[COUNT5,1]="A_PROT"
$NP_SAFETY_DIST[COUNT5]=0
COUNT5=COUNT5+1

$NP_COLL_PAIR[COUNT5,0]="ROOT_PROT"
$NP_COLL_PAIR[COUNT5,1]="C_PROT"
$NP_SAFETY_DIST[COUNT5]=0
COUNT5=COUNT5+1

A184: END

Notes:

840D sl SINUMERIK Operate Page 31 A184


A184 END 5x head kinematics collision avoidance

Notes:

A184 Page 32 840D sl SINUMERIK Operate


A185 Collision avoidance for 5x mixed kinematics
Sinumerik
Operate

Module Description:

The following chapters provide further details of the kinematic chain operating principle. In particular,
the following topics are discussed:

• Collision avoidance with kinematic chains


- Configuration of collision pairs for a machine with mixed kinematics

Module Objective:

The reader gains a general overview of the kinematic chains operating principle application and, in
various exercises, familiarized with the individual functions and their capabilities. After working through
all chapters, readers should be able to integrate their own machine kinematics in the system.

Content:
Sinumerik

Collision avoidance for a 5-axis milling machine with mixed kinematics

840D sl SINUMERIK Operate v4.8 Page 1 This document was produced for training purposes. A185
Siemens assumes no responsibility for its contents.
A185 Collision avoidance for 5x mixed kinematics

A185 Page 2 840D sl SINUMERIK Operate


Collision avoidance for 5x mixed kinematics A185

Collision avoidance
for 5x mixed kinematics
START

Collision
avoidance
for 5x mixed
kinematics

Collision avoidance
for 5x mixed kinematics
END

Notes:

840D sl SINUMERIK Operate Page 3 A185


A185 Collision avoidance for 5x mixed kinematics

To augment the kinematic chain with the collision check, several steps must be performed:

• Augment the kinematic chain with protection areas


• Augment the protection areas with model bodies
• Define the collision pairs

As precaution, the positions of the machine axes should be checked before starting work, because the positions affect the
representation in the graphic.

Moveable bodies should be defined for the following elements from the kinematic chain:
• ROOT
• X_AXIS
• Y_AXIS
• Z_AXIS
• B_AXIS
• C_AXIS
• SP1_AXIS

Assignment of the protection areas:

Z_PROT

B_PROT

SP1_PROT X_PROT

C_PROT
Y_PROT

ROOT_PROT

Notes:

A185 Page 4 840D sl SINUMERIK Operate


Collision avoidance for 5x mixed kinematics A185

Notes:

840D sl SINUMERIK Operate Page 5 A185


A185 Collision avoidance for 5x mixed kinematics

Definition of the protection area and of the collision bodies for


the element

The "ROOT" element contains the machine frame that con-


sists of two individual parts within the "ROOT_PROT" protec-
tion area:

Designation: Dimension Offset values


Use Type
ROOT_BOX_1 1800 x 3000 x 300 (0,-350,-1010)
Base plate Box
ROOT_BOX_2 3500 x 300 x 3000 (0,1650,1350)
Head plate Box

The complete structure has the following architecture:

Notes:

A185 Page 6 840D sl SINUMERIK Operate


Collision avoidance for 5x mixed kinematics A185

Operating sequence for the creation: The base plate of the machine is defined as box below the
"ROOT_PROT" protection area.
Place the cursor on line "ROOT".
New element → Collision element → Machine protection area Operating sequence for the creation:

The name of the chain element is specified as Place the cursor on line "ROOT_PROT".
"ROOT_PROT"; the mode is switched to "Activated". New element → Collision element → Box

The name of the chain element is specified as


"ROOT_BOX_1"; the use is switched to
"Display + Monitoring".

As second plate of the machine base frame, the head plate of


the machine is defined as box.

Operating sequence for the creation:

Place the cursor on line "ROOT_BOX_1".


New element → Collision element → Box

The name of the chain element is specified as


"ROOT_BOX_2"; the use is switched to
"Display + Monitoring".

Note:
The offset value of the Y axis results because the traversal
path of the machine is not symmetric.
The limit switches of the Y axis are at Y-100, Y+950

Notes:

840D sl SINUMERIK Operate Page 7 A185


A185 Collision avoidance for 5x mixed kinematics

Definition of the protection area and of the collision bodies for the "X_AXIS" element:

The "X_AXIS" element contains only a machine protection area and a collision body that should represent the X axis.

Designation: Dimension Offset values Use Type


X_BOX_1 700 x 300 x 2200 (0,1000,500) X axis Box

The complete structure has the following architecture:

Operating sequence for the creation:

Place the cursor on line "X_AXIS".


New element → Collision element → Machine protection area

The name of the chain element is specified as "X_PROT"; the


mode is switched to "Activated".

Notes:

A185 Page 8 840D sl SINUMERIK Operate


Collision avoidance for 5x mixed kinematics A185

The X axis of the machine is defined as box below the


"X_PROT" protection area.

Operating sequence for the creation:

Place the cursor on line "X_PROT".


New element → Collision element → Box

The name of the chain element is specified as "X_BOX_1";


the use is switched to "Display + Monitoring".

Definition of the protection area and of the collision bodies for the "Z_AXIS" element:

The "Z_AXIS" element contains only a machine protection area and a collision body that should represent the Z axis.

Designation: Dimension Offset values Use Type


Z_BOX_1 500 x 500 x 500 (0,600,580) Z axis Box

The complete structure has the following architecture:

Notes:

840D sl SINUMERIK Operate Page 9 A185


A185 Collision avoidance for 5x mixed kinematics

Operating sequence for the creation: The Z axis of the machine is defined as box below the
"Z_PROT" protection area.
Place the cursor on line "Z_AXIS".
New element → Collision element → Machine protection area Operating sequence for the creation:

The name of the chain element is specified as "Z_PROT"; the Place the cursor on line "Z_PROT".
mode is switched to "Activated". New element → Collision element → Box
The name of the chain element is specified as "Z_BOX_1";
the use is switched to "Display + Monitoring".

Definition of the protection area and of the collision bodies for the "B_ROT" element:

The "B_ROT" element contains a machine protection area with various collision bodies that should represent the B axis.
Depending on the need, the head at the edges can be further defined with various inclined box elements.

Designation: Dimension Offset values Use Type


B_BOX_1 300 x 300 x 640 (0,0,390) B axis main body Box
B_BOX_2 300 x 500 x 280 (0,100,-180) B axis lower body Box
B_CONE_1 H=80, RU=170, RO=220 (0,300,-90) B axis bearing housing Parallel truncated cone,
rotated –45° at X
B_CYL_1 H=30, R=220 (0,0,55) B axis bearings Cylinder
B_CONE_2 H=200, RU=220, RO=180 (0,0,115) B axis Z connection Truncated cone

The complete structure has the following architecture:

Notes:

A185 Page 10 840D sl SINUMERIK Operate


Collision avoidance for 5x mixed kinematics A185

Assignment of the bodies to the model:

B_CYL_1 B_CONE_2

B_BOX_1

B_BOX_2

B_CONE_1

Operating sequence for the creation: Initially, the main body of the B axis is defined as box below
the "B_PROT" protection area.
Place the cursor on line "B_AXIS".
New element → Collision element → Machine protection area Operating sequence for the creation:

The name of the chain element is specified as "B_PROT"; the Place the cursor on line "B_PROT".
mode is switched to "Activated". New element → Collision element → Box

The name of the chain element is specified as "B_BOX_1";


the use is switched to "Display + Monitoring".

Notes:

840D sl SINUMERIK Operate Page 11 A185


A185 Collision avoidance for 5x mixed kinematics

The rear part of the B axis is defined as 2nd box below the In parallel, the bearing housing of the B axis is defined as
"B_BOX_1" body. parallel truncated cone below the "B_BOX_1" body.

Operating sequence for the creation: Operating sequence for the creation:

Place the cursor on line "B_BOX_1". Place the cursor on line "B_BOX_1".
New element → Collision element → Box New element → Collision element → Parallel truncated cone

The name of the chain element is specified as "B_BOX_2"; The name of the chain element is specified as "B_CONE_1";
the use is switched to "Display + Monitoring". the use is switched to "Display + Monitoring".

Note for the "B_CONE_1" cone / truncated cone element:


Because the body is aligned along the B axis directed at 45°
angle, the body is turned by -45° at spin axis (1,0,0).

Notes:

A185 Page 12 840D sl SINUMERIK Operate


Collision avoidance for 5x mixed kinematics A185

The bearing cartridge of the B axis is defined as cylinder below the "B_CONE_1" body.

Operating sequence for the creation:

Place the cursor on line "B_CONE_1".


New element → Collision element → Cylinder

The name of the chain element is specified as "B_CYL_1"; the use is switched to "Display + Monitoring".

Note:
The rotation of the coordinate system by -45° at
the X axis is taken from the preceding element
and does not need to be programmed again here.

For the connection of the complete B body with the Z axis, a further body is defined as truncated cone at the "B_CYL_1" bearing
cartridge.

Operating sequence for the creation:

Place the cursor on line "B_CYL_1".


New element → Collision element → Box

The name of the chain element is specified as "B_CONE_2"; the use is switched to "Display + Monitoring".

Notes:

840D sl SINUMERIK Operate Page 13 A185


A185 Collision avoidance for 5x mixed kinematics

Definition of the protection area and of the collision bodies for the "SP1_AXIS" element:

The "SP1_AXIS" element contains a machine protection area with two cylinders that represent the spindle nose as well as a tool
protection area that defines the change position of the tool.

Designation: Dimension Offset values Use Type


SP1_CYL_1 H=15, R=80 (0,0,7.5) Lower spindle ring Cylinder
SP1_CYL_2 H=40, R=110 (0,0,27.5) Upper spindle ring Cylinder

The complete structure has the following architecture:

Operating sequence for the creation: Initially, the lower spindle ring is defined as cylinder below the
"SP1_PROT" protection area.
Place the cursor on line "SP1_AXIS".
New element → Collision element → Machine protection area Operating sequence for the creation:

The name of the chain element is specified as "SP1_PROT"; Place the cursor on line "SP1_PROT".
the mode is switched to "Activated". New element → Collision element → Box

The name of the chain element is specified as "SP1_CYL_1";


the use is switched to "Display + Monitoring".

Notes:

A185 Page 14 840D sl SINUMERIK Operate


Collision avoidance for 5x mixed kinematics A185

The upper "SP1_CYL_2" spindle ring is defined as cylinder. Finally, the tool protection area must be defined as change
position for the tool.
Operating sequence for the creation:
Operating sequence for the creation:
Place the cursor on line "SP1_CYL_1".
New element → Collision element → Box Place the cursor on line "SP1".
New element → Collision element → Tool protection area
The name of the chain element is specified as "SP1_CYL_2";
the use is switched to "Display + Monitoring". The name of the protection area is specified as
"TOOL_PROT"; the use is switched to "Activated".

Definition of the protection area and of the collision bodies for the "Y_AXIS" element:

A machine protection area and six collision bodies are defined for the "Y_AXIS" element.

Designation: Dimension Offset values Use Type


Y_CYL_1 R500 x H120 (0,0,-180) Upper table bearing Cylinder
Y_BOX_1 1100 x 870 x 250 (0,0,-185) Upper body Box
Y_BOX_2 500 x 1400 x 370 (0,0,-245) Center body Box, parallel
Y_BOX_3 1550 x 1400 x 250 (0,0,-310) Lower body Box
Y_BOX_4 643 x 1400 x 300 (425,0,-183) Right side body Box
Y_BOX_5 643 x 1400 x 300 (-425,0,-183) Left side body Box, parallel

The complete structure has the following architecture:

Notes:

840D sl SINUMERIK Operate Page 15 A185


A185 Collision avoidance for 5x mixed kinematics

Assignment of the bodies to the model:

Y_CYL_1 Y_BOX_4

Y_BOX_1

Y_BOX_5

Y_BOX_2 Y_BOX_3

Operating sequence for the creation: Operating sequence for creating the "Y_CYL_1" collision body:

Place the cursor on line "Y_AXIS". Place the cursor on line "Y_PROT".
New element → Collision element → Machine protection area New element → Collision element → Cylinder

The name of the chain element is specified as "Y_PROT"; the The name of the chain element is specified as "Y_CYL_1"; the
mode is switched to "Activated". use is switched to "Display + Monitoring".

Notes:

A185 Page 16 840D sl SINUMERIK Operate


Collision avoidance for 5x mixed kinematics A185

Operating sequence for creating the "Y_BOX_1" collision Operating sequence for creating the "Y_BOX_2" collision
body: body:

Place the cursor on line "Y_CYL_1". Place the cursor on line "Y_CYL_1".
New element → Collision element → Box New element → Collision element → Parallel box

The name of the chain element is specified as "Y_BOX_1"; The name of the chain element is specified as "Y_BOX_2"; the
the use is switched to "Display + Monitoring". use is switched to "Display + Monitoring".

Operating sequence for creating the "Y_BOX_3" collision Operating sequence for creating the "Y_BOX_4" collision
body: body:

Place the cursor on line "Y_BOX_2". Place the cursor on line "Y_BOX_1".
New element → Collision element → Box New element → Collision element → Box

The name of the chain element is specified as "Y_BOX_3"; The name of the chain element is specified as "Y_BOX_4"; the
the use is switched to "Display + Monitoring". use is switched to "Display + Monitoring".

Notes:

840D sl SINUMERIK Operate Page 17 A185


A185 Collision avoidance for 5x mixed kinematics

Operating sequence for creating the "Y_BOX_5" collision


body:

Place the cursor on line "Y_BOX_1".


New element → Collision element → Parallel box
The name of the chain element is specified as "Y_BOX_5";
the use is switched to "Display + Monitoring".

Definition of the protection area and of the collision bodies for the "C_AXIS" element:

A machine protection area and a collision body are defined for the "C_AXIS" element.

Designation: Dimension Offset values Use Type


C_CYL_1 R625 x H120 (0,0,-60) Table Cylinder

The complete structure has the following architecture:

Notes:

A185 Page 18 840D sl SINUMERIK Operate


Collision avoidance for 5x mixed kinematics A185

Operating sequence for the creation: Operating sequence for creating the "C_CYL_1" collision body:

Place the cursor on line "C_AXIS". Place the cursor on line "C_PROT".
New element → Collision element → Machine protection area New element → Collision element → Cylinder

The name of the chain element is specified as "C_PROT"; the The name of the chain element is specified as "C_CYL_1"; the
mode is switched to "Activated". use is switched to "Display + Monitoring".

Notes:

840D sl SINUMERIK Operate Page 19 A185


A185 Collision avoidance for 5x mixed kinematics

Assignment of NC tags for the protection areas: $NP_PROT_NAME[COUNT3]="C_PROT"


$NP_CHAIN_ELEM[COUNT3]="C_AXIS"
DEF INT COUNT3 $NP_PROT_TYPE[COUNT3]="MACHINE"
$NP_1ST_PROT[COUNT3]="C_CYL_1"
$NP_PROT_NAME[COUNT3]="Y_PROT" $NP_PROT_COLOR[COUNT3]=-16711936
$NP_CHAIN_ELEM[COUNT3]="Y_AXIS" $NP_PROT_D_LEVEL[COUNT3]=0
$NP_PROT_TYPE[COUNT3]="MACHINE" $NP_BIT_NO[COUNT3]=-1
$NP_1ST_PROT[COUNT3]="Y_CYL_1" $NP_INIT_STAT[COUNT3]="A"
$NP_PROT_COLOR[COUNT3]=-16777216 $NP_INDEX[COUNT3,0]=0
$NP_PROT_D_LEVEL[COUNT3]=0 $NP_INDEX[COUNT3,1]=0
$NP_BIT_NO[COUNT3]=-1 $NP_INDEX[COUNT3,2]=0
$NP_INIT_STAT[COUNT3]="A" COUNT3=COUNT3+1
$NP_INDEX[COUNT3,0]=0
$NP_INDEX[COUNT3,1]=0
$NP_INDEX[COUNT3,2]=0
COUNT3=COUNT3+1

$NP_PROT_NAME[COUNT3]="ROOT_PROT" $NP_PROT_NAME[COUNT3]="X_PROT"
$NP_CHAIN_ELEM[COUNT3]="ROOT" $NP_CHAIN_ELEM[COUNT3]="X_AXIS"
$NP_PROT_TYPE[COUNT3]="MACHINE" $NP_PROT_TYPE[COUNT3]="MACHINE"
$NP_1ST_PROT[COUNT3]="ROOT_BOX_1" $NP_1ST_PROT[COUNT3]="X_BOX_1"
$NP_PROT_COLOR[COUNT3]=-16744256 $NP_PROT_COLOR[COUNT3]=-16744448
$NP_PROT_D_LEVEL[COUNT3]=0 $NP_PROT_D_LEVEL[COUNT3]=0
$NP_BIT_NO[COUNT3]=-1 $NP_BIT_NO[COUNT3]=-1
$NP_INIT_STAT[COUNT3]="A" $NP_INIT_STAT[COUNT3]="A"
$NP_INDEX[COUNT3,0]=0 $NP_INDEX[COUNT3,0]=0
$NP_INDEX[COUNT3,1]=0 $NP_INDEX[COUNT3,1]=0
$NP_INDEX[COUNT3,2]=0 $NP_INDEX[COUNT3,2]=0
COUNT3=COUNT3+1 COUNT3=COUNT3+1

Notes:

A185 Page 20 840D sl SINUMERIK Operate


Collision avoidance for 5x mixed kinematics A185

$NP_PROT_NAME[COUNT3]="TOOL_PROT" $NP_PROT_NAME[COUNT3]="SP1_PROT"
$NP_CHAIN_ELEM[COUNT3]="SP1_AXIS" $NP_CHAIN_ELEM[COUNT3]="SP1_AXIS"
$NP_PROT_TYPE[COUNT3]="TOOL" $NP_PROT_TYPE[COUNT3]="MACHINE"
$NP_1ST_PROT[COUNT3] $NP_1ST_PROT[COUNT3]="SP1_CYL_1"
="__TOOL_00001_09998_01_0000" $NP_PROT_COLOR[COUNT3]=-16776961
$NP_PROT_COLOR[COUNT3]=0 $NP_PROT_D_LEVEL[COUNT3]=0
$NP_PROT_D_LEVEL[COUNT3]=0 $NP_BIT_NO[COUNT3]=-1
$NP_BIT_NO[COUNT3]=-1 $NP_INIT_STAT[COUNT3]="A"
$NP_INIT_STAT[COUNT3]="A" $NP_INDEX[COUNT3,0]=0
$NP_INDEX[COUNT3,0]=1 $NP_INDEX[COUNT3,1]=0
$NP_INDEX[COUNT3,1]=9998 $NP_INDEX[COUNT3,2]=0
$NP_INDEX[COUNT3,2]=1 COUNT3=COUNT3+1
COUNT3=COUNT3+1

$NP_PROT_NAME[COUNT3]="B_PROT" $NP_PROT_NAME[COUNT3]="Z_PROT"
$NP_CHAIN_ELEM[COUNT3]="B_AXIS" $NP_CHAIN_ELEM[COUNT3]="Z_AXIS"
$NP_PROT_TYPE[COUNT3]="MACHINE" $NP_PROT_TYPE[COUNT3]="MACHINE"
$NP_1ST_PROT[COUNT3]="B_BOX_1" $NP_1ST_PROT[COUNT3]="Z_BOX_1"
$NP_PROT_COLOR[COUNT3]=-16777088 $NP_PROT_COLOR[COUNT3]=-8388608
$NP_PROT_D_LEVEL[COUNT3]=0 $NP_PROT_D_LEVEL[COUNT3]=0
$NP_BIT_NO[COUNT3]=-1 $NP_BIT_NO[COUNT3]=-1
$NP_INIT_STAT[COUNT3]="A" $NP_INIT_STAT[COUNT3]="A"
$NP_INDEX[COUNT3,0]=0 $NP_INDEX[COUNT3,0]=0
$NP_INDEX[COUNT3,1]=0 $NP_INDEX[COUNT3,1]=0
$NP_INDEX[COUNT3,2]=0 $NP_INDEX[COUNT3,2]=0
COUNT3=COUNT3+1 COUNT3=COUNT3+1

Notes:

840D sl SINUMERIK Operate Page 21 A185


A185 Collision avoidance for 5x mixed kinematics

Assignment of NC tags for the collision bodies: $NP_NAME[COUNT4]="Y_CYL_1"


$NP_NEXT[COUNT4]="Y_BOX_1"
DEF INT COUNT4 $NP_NEXTP[COUNT4]="Y_BOX_2"
$NP_ADD[COUNT4]=""
$NP_NAME[COUNT4]="C_CYL_1" $NP_COLOR[COUNT4]=0
$NP_NEXT[COUNT4]="" $NP_D_LEVEL[COUNT4]=0
$NP_NEXTP[COUNT4]="" $NP_USAGE[COUNT4]="A"
$NP_ADD[COUNT4]="" $NP_TYPE[COUNT4]="CYLINDER"
$NP_COLOR[COUNT4]=0 $NP_FILENAME[COUNT4]=""
$NP_D_LEVEL[COUNT4]=0 $NP_PARA[COUNT4,0]=120
$NP_USAGE[COUNT4]="A" $NP_PARA[COUNT4,1]=500
$NP_TYPE[COUNT4]="CYLINDER" $NP_PARA[COUNT4,2]=0
$NP_FILENAME[COUNT4]="" $NP_OFF[COUNT4,0]=0
$NP_PARA[COUNT4,0]=120 $NP_OFF[COUNT4,1]=0
$NP_PARA[COUNT4,1]=625 $NP_OFF[COUNT4,2]=-180
$NP_PARA[COUNT4,2]=0 $NP_DIR[COUNT4,0]=0
$NP_OFF[COUNT4,0]=0 $NP_DIR[COUNT4,1]=0
$NP_OFF[COUNT4,1]=0 $NP_DIR[COUNT4,2]=0
$NP_OFF[COUNT4,2]=-60 $NP_ANG[COUNT4]=0
$NP_DIR[COUNT4,0]=0 COUNT4=COUNT4+1
$NP_DIR[COUNT4,1]=0
$NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=0
COUNT4=COUNT4+1

$NP_NAME[COUNT4]="Y_BOX_1" $NP_NAME[COUNT4]="Y_BOX_2"
$NP_NEXT[COUNT4]="Y_BOX_4" $NP_NEXT[COUNT4]="Y_BOX_3"
$NP_NEXTP[COUNT4]="Y_BOX_5" $NP_NEXTP[COUNT4]=""
$NP_ADD[COUNT4]="" $NP_ADD[COUNT4]=""
$NP_COLOR[COUNT4]=0 $NP_COLOR[COUNT4]=0
$NP_D_LEVEL[COUNT4]=0 $NP_D_LEVEL[COUNT4]=0
$NP_USAGE[COUNT4]="A" $NP_USAGE[COUNT4]="A"
$NP_TYPE[COUNT4]="BOX" $NP_TYPE[COUNT4]="BOX"
$NP_FILENAME[COUNT4]="" $NP_FILENAME[COUNT4]=""
$NP_PARA[COUNT4,0]=1100 $NP_PARA[COUNT4,0]=500
$NP_PARA[COUNT4,1]=870 $NP_PARA[COUNT4,1]=1400
$NP_PARA[COUNT4,2]=250 $NP_PARA[COUNT4,2]=370
$NP_OFF[COUNT4,0]=0 $NP_OFF[COUNT4,0]=0
$NP_OFF[COUNT4,1]=0 $NP_OFF[COUNT4,1]=0
$NP_OFF[COUNT4,2]=-185 $NP_OFF[COUNT4,2]=-245
$NP_DIR[COUNT4,0]=0 $NP_DIR[COUNT4,0]=0
$NP_DIR[COUNT4,1]=0 $NP_DIR[COUNT4,1]=0
$NP_DIR[COUNT4,2]=0 $NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=0 $NP_ANG[COUNT4]=0
COUNT4=COUNT4+1 COUNT4=COUNT4+1

Notes:

A185 Page 22 840D sl SINUMERIK Operate


Collision avoidance for 5x mixed kinematics A185

$NP_NAME[COUNT4]="Y_BOX_3" $NP_NAME[COUNT4]="Y_BOX_4"
$NP_NEXT[COUNT4]="" $NP_NEXT[COUNT4]=""
$NP_NEXTP[COUNT4]="" $NP_NEXTP[COUNT4]=""
$NP_ADD[COUNT4]="" $NP_ADD[COUNT4]=""
$NP_COLOR[COUNT4]=0 $NP_COLOR[COUNT4]=0
$NP_D_LEVEL[COUNT4]=0 $NP_D_LEVEL[COUNT4]=0
$NP_USAGE[COUNT4]="A" $NP_USAGE[COUNT4]="A"
$NP_TYPE[COUNT4]="BOX" $NP_TYPE[COUNT4]="BOX"
$NP_FILENAME[COUNT4]="" $NP_FILENAME[COUNT4]=""
$NP_PARA[COUNT4,0]=1550 $NP_PARA[COUNT4,0]=643
$NP_PARA[COUNT4,1]=1400 $NP_PARA[COUNT4,1]=1400
$NP_PARA[COUNT4,2]=250 $NP_PARA[COUNT4,2]=300
$NP_OFF[COUNT4,0]=0 $NP_OFF[COUNT4,0]=425
$NP_OFF[COUNT4,1]=0 $NP_OFF[COUNT4,1]=0
$NP_OFF[COUNT4,2]=-310 $NP_OFF[COUNT4,2]=-183
$NP_DIR[COUNT4,0]=0 $NP_DIR[COUNT4,0]=0
$NP_DIR[COUNT4,1]=0 $NP_DIR[COUNT4,1]=1
$NP_DIR[COUNT4,2]=0 $NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=0 $NP_ANG[COUNT4]=35.17
COUNT4=COUNT4+1 COUNT4=COUNT4+1

$NP_NAME[COUNT4]="Y_BOX_5" $NP_NAME[COUNT4]="ROOT_BOX_1"
$NP_NEXT[COUNT4]="" $NP_NEXT[COUNT4]="ROOT_BOX_2"
$NP_NEXTP[COUNT4]="" $NP_NEXTP[COUNT4]=""
$NP_ADD[COUNT4]="" $NP_ADD[COUNT4]=""
$NP_COLOR[COUNT4]=0 $NP_COLOR[COUNT4]=0
$NP_D_LEVEL[COUNT4]=0 $NP_D_LEVEL[COUNT4]=0
$NP_USAGE[COUNT4]="A" $NP_USAGE[COUNT4]="A"
$NP_TYPE[COUNT4]="BOX" $NP_TYPE[COUNT4]="BOX"
$NP_FILENAME[COUNT4]="" $NP_FILENAME[COUNT4]=""
$NP_PARA[COUNT4,0]=643 $NP_PARA[COUNT4,0]=1800
$NP_PARA[COUNT4,1]=1400 $NP_PARA[COUNT4,1]=3000
$NP_PARA[COUNT4,2]=300 $NP_PARA[COUNT4,2]=300
$NP_OFF[COUNT4,0]=-425 $NP_OFF[COUNT4,0]=0
$NP_OFF[COUNT4,1]=0 $NP_OFF[COUNT4,1]=-350
$NP_OFF[COUNT4,2]=-183 $NP_OFF[COUNT4,2]=-1010
$NP_DIR[COUNT4,0]=0 $NP_DIR[COUNT4,0]=0
$NP_DIR[COUNT4,1]=1 $NP_DIR[COUNT4,1]=0
$NP_DIR[COUNT4,2]=0 $NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=-35.17 $NP_ANG[COUNT4]=0
COUNT4=COUNT4+1 COUNT4=COUNT4+1

Notes:

840D sl SINUMERIK Operate Page 23 A185


A185 Collision avoidance for 5x mixed kinematics

$NP_NAME[COUNT4]="ROOT_BOX_2" $NP_NAME[COUNT4]="X_BOX_1"
$NP_NEXT[COUNT4]="" $NP_NEXT[COUNT4]=""
$NP_NEXTP[COUNT4]="" $NP_NEXTP[COUNT4]=""
$NP_ADD[COUNT4]="" $NP_ADD[COUNT4]=""
$NP_COLOR[COUNT4]=0 $NP_COLOR[COUNT4]=0
$NP_D_LEVEL[COUNT4]=0 $NP_D_LEVEL[COUNT4]=0
$NP_USAGE[COUNT4]="A" $NP_USAGE[COUNT4]="A"
$NP_TYPE[COUNT4]="BOX" $NP_TYPE[COUNT4]="BOX"
$NP_FILENAME[COUNT4]="" $NP_FILENAME[COUNT4]=""
$NP_PARA[COUNT4,0]=3500 $NP_PARA[COUNT4,0]=700
$NP_PARA[COUNT4,1]=300 $NP_PARA[COUNT4,1]=300
$NP_PARA[COUNT4,2]=3000 $NP_PARA[COUNT4,2]=2200
$NP_OFF[COUNT4,0]=0 $NP_OFF[COUNT4,0]=0
$NP_OFF[COUNT4,1]=1650 $NP_OFF[COUNT4,1]=1000
$NP_OFF[COUNT4,2]=1350 $NP_OFF[COUNT4,2]=500
$NP_DIR[COUNT4,0]=0 $NP_DIR[COUNT4,0]=0
$NP_DIR[COUNT4,1]=0 $NP_DIR[COUNT4,1]=0
$NP_DIR[COUNT4,2]=0 $NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=0 $NP_ANG[COUNT4]=0
COUNT4=COUNT4+1 COUNT4=COUNT4+1

$NP_NAME[COUNT4]="SP1_CYL_1" $NP_NAME[COUNT4]="SPI_CYL_2"
$NP_NEXT[COUNT4]="SPI_CYL_2" $NP_NEXT[COUNT4]=""
$NP_NEXTP[COUNT4]="" $NP_NEXTP[COUNT4]=""
$NP_ADD[COUNT4]="" $NP_ADD[COUNT4]=""
$NP_COLOR[COUNT4]=0 $NP_COLOR[COUNT4]=0
$NP_D_LEVEL[COUNT4]=0 $NP_D_LEVEL[COUNT4]=0
$NP_USAGE[COUNT4]="A" $NP_USAGE[COUNT4]="A"
$NP_TYPE[COUNT4]="CYLINDER" $NP_TYPE[COUNT4]="CYLINDER"
$NP_FILENAME[COUNT4]="" $NP_FILENAME[COUNT4]=""
$NP_PARA[COUNT4,0]=15 $NP_PARA[COUNT4,0]=40
$NP_PARA[COUNT4,1]=80 $NP_PARA[COUNT4,1]=110
$NP_PARA[COUNT4,2]=0 $NP_PARA[COUNT4,2]=0
$NP_OFF[COUNT4,0]=0 $NP_OFF[COUNT4,0]=0
$NP_OFF[COUNT4,1]=0 $NP_OFF[COUNT4,1]=0
$NP_OFF[COUNT4,2]=7.5 $NP_OFF[COUNT4,2]=27.5
$NP_DIR[COUNT4,0]=0 $NP_DIR[COUNT4,0]=0
$NP_DIR[COUNT4,1]=0 $NP_DIR[COUNT4,1]=0
$NP_DIR[COUNT4,2]=0 $NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=0 $NP_ANG[COUNT4]=0
COUNT4=COUNT4+1 COUNT4=COUNT4+1

Notes:

A185 Page 24 840D sl SINUMERIK Operate


Collision avoidance for 5x mixed kinematics A185

$NP_NAME[COUNT4]="B_BOX_1" $NP_NAME[COUNT4]="B_BOX_2"
$NP_NEXT[COUNT4]="B_BOX_2" $NP_NEXT[COUNT4]=""
$NP_NEXTP[COUNT4]="B_CONE_1" $NP_NEXTP[COUNT4]=""
$NP_ADD[COUNT4]="" $NP_ADD[COUNT4]=""
$NP_COLOR[COUNT4]=0 $NP_COLOR[COUNT4]=0
$NP_D_LEVEL[COUNT4]=0 $NP_D_LEVEL[COUNT4]=0
$NP_USAGE[COUNT4]="A" $NP_USAGE[COUNT4]="A"
$NP_TYPE[COUNT4]="BOX" $NP_TYPE[COUNT4]="BOX"
$NP_FILENAME[COUNT4]="" $NP_FILENAME[COUNT4]=""
$NP_PARA[COUNT4,0]=300 $NP_PARA[COUNT4,0]=300
$NP_PARA[COUNT4,1]=300 $NP_PARA[COUNT4,1]=500
$NP_PARA[COUNT4,2]=640 $NP_PARA[COUNT4,2]=280
$NP_OFF[COUNT4,0]=0 $NP_OFF[COUNT4,0]=0
$NP_OFF[COUNT4,1]=0 $NP_OFF[COUNT4,1]=100
$NP_OFF[COUNT4,2]=390 $NP_OFF[COUNT4,2]=-180
$NP_DIR[COUNT4,0]=0 $NP_DIR[COUNT4,0]=0
$NP_DIR[COUNT4,1]=0 $NP_DIR[COUNT4,1]=0
$NP_DIR[COUNT4,2]=0 $NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=0 $NP_ANG[COUNT4]=0
COUNT4=COUNT4+1 COUNT4=COUNT4+1

$NP_NAME[COUNT4]="B_CONE_1" $NP_NAME[COUNT4]="B_CYL_1"
$NP_NEXT[COUNT4]="B_CYL_1" $NP_NEXT[COUNT4]="B_CONE_2"
$NP_NEXTP[COUNT4]="" $NP_NEXTP[COUNT4]=""
$NP_ADD[COUNT4]="" $NP_ADD[COUNT4]=""
$NP_COLOR[COUNT4]=0 $NP_COLOR[COUNT4]=0
$NP_D_LEVEL[COUNT4]=0 $NP_D_LEVEL[COUNT4]=0
$NP_USAGE[COUNT4]="A" $NP_USAGE[COUNT4]="A"
$NP_TYPE[COUNT4]="CONE" $NP_TYPE[COUNT4]="CYLINDER"
$NP_FILENAME[COUNT4]="" $NP_FILENAME[COUNT4]=""
$NP_PARA[COUNT4,0]=80 $NP_PARA[COUNT4,0]=30
$NP_PARA[COUNT4,1]=170 $NP_PARA[COUNT4,1]=220
$NP_PARA[COUNT4,2]=220 $NP_PARA[COUNT4,2]=0
$NP_OFF[COUNT4,0]=0 $NP_OFF[COUNT4,0]=0
$NP_OFF[COUNT4,1]=300 $NP_OFF[COUNT4,1]=0
$NP_OFF[COUNT4,2]=-90 $NP_OFF[COUNT4,2]=55
$NP_DIR[COUNT4,0]=1 $NP_DIR[COUNT4,0]=0
$NP_DIR[COUNT4,1]=0 $NP_DIR[COUNT4,1]=0
$NP_DIR[COUNT4,2]=0 $NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=-45 $NP_ANG[COUNT4]=0
COUNT4=COUNT4+1 COUNT4=COUNT4+1

Notes:

840D sl SINUMERIK Operate Page 25 A185


A185 Collision avoidance for 5x mixed kinematics

$NP_NAME[COUNT4]="Z_BOX_1" $NP_NAME[COUNT4]="B_CONE_2"
$NP_NEXT[COUNT4]="" $NP_NEXT[COUNT4]=""
$NP_NEXTP[COUNT4]="" $NP_NEXTP[COUNT4]=""
$NP_ADD[COUNT4]="" $NP_ADD[COUNT4]=""
$NP_COLOR[COUNT4]=0 $NP_COLOR[COUNT4]=0
$NP_D_LEVEL[COUNT4]=0 $NP_D_LEVEL[COUNT4]=0
$NP_USAGE[COUNT4]="A" $NP_USAGE[COUNT4]="A"
$NP_TYPE[COUNT4]="BOX" $NP_TYPE[COUNT4]="CONE"
$NP_FILENAME[COUNT4]="" $NP_FILENAME[COUNT4]=""
$NP_PARA[COUNT4,0]=500 $NP_PARA[COUNT4,0]=200
$NP_PARA[COUNT4,1]=500 $NP_PARA[COUNT4,1]=220
$NP_PARA[COUNT4,2]=500 $NP_PARA[COUNT4,2]=180
$NP_OFF[COUNT4,0]=0 $NP_OFF[COUNT4,0]=0
$NP_OFF[COUNT4,1]=600 $NP_OFF[COUNT4,1]=0
$NP_OFF[COUNT4,2]=580 $NP_OFF[COUNT4,2]=115
$NP_DIR[COUNT4,0]=0 $NP_DIR[COUNT4,0]=0
$NP_DIR[COUNT4,1]=0 $NP_DIR[COUNT4,1]=0
$NP_DIR[COUNT4,2]=0 $NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=0 $NP_ANG[COUNT4]=0
COUNT4=COUNT4+1 COUNT4=COUNT4+1

To allow the collision consideration to become active, those protection areas that must not collide with each other must be de-
fined.

For this machine, the combinations listed below should be checked:

C_PROT → TOOL_PROT Tool against table of the X axis


C_PROT → SP1_PROT Tool against the tool table for deployed angle heads
C_PROT → B_PROT Spindle nose against the table, when no tool is active
X_PROT → Y_PROT

To define the collision pairs, place the cursor on the "Collision groups" folder in the structure tree:

Notes:

A185 Page 26 840D sl SINUMERIK Operate


Collision avoidance for 5x mixed kinematics A185

In the first declaration, the two protection areas C_PROT and Protection area C_PROT → SP1_PROT:
TOOL_PROT are checked against each other:
Operating sequence: Place the cursor on "Collision groups"
New element → Collision pair → OK

Protection area C_PROT → B_PROT: Protection area X_PROT → Y_PROT:

Operating sequence: Place the cursor on "Collision groups" Operating sequence: Place the cursor on "Collision groups"
New element → Collision pair → OK New element → Collision pair → OK

Notes:

840D sl SINUMERIK Operate Page 27 A185


A185 END Collision avoidance for 5x mixed kinematics

Assignment of the NC tags:

DEF INT COUNT5

$NP_COLL_PAIR[COUNT5,0]="C_PROT"
$NP_COLL_PAIR[COUNT5,1]="TOOL_PROT"
$NP_SAFETY_DIST[COUNT5]=0
COUNT5=COUNT5+1

$NP_COLL_PAIR[COUNT5,0]="C_PROT"
$NP_COLL_PAIR[COUNT5,1]="SP1_PROT"
$NP_SAFETY_DIST[COUNT5]=0
COUNT5=COUNT5+1

$NP_COLL_PAIR[COUNT5,0]="C_PROT"
$NP_COLL_PAIR[COUNT5,1]="B_PROT"
$NP_SAFETY_DIST[COUNT5]=0
COUNT5=COUNT5+1

$NP_COLL_PAIR[COUNT5,0]="X_PROT"
$NP_COLL_PAIR[COUNT5,1]="Y_PROT"
$NP_SAFETY_DIST[COUNT5]=0
COUNT5=COUNT5+1

A185: END

Notes:

A185 Page 28 840D sl SINUMERIK Operate


A186 Transformations
Sinumerik
Operate

Module Description:

The following chapters provide further details of the kinematic chain operating principle. In particular,
the following topics are discussed:

• Creation of transformations based on kinematic chains

Module Objective:

The reader gains a general overview of the kinematic chains operating principle application and, in
various exercises, familiarized with the individual functions and their capabilities. After working through
all chapters, readers should be able to integrate their own machine kinematics in the system.

Content:
Sinumerik

Fundamentals for "transformations with a kinematic chain":

Kinematic transformations for the 5-axis machine with table kinematics

Kinematic transformations for the 5-axis machine with mixed kinematics

Kinematic transformations for the 5-axis machine with head kinematics

Transformation TRANSMIT with excentric C axis

Appendix

840D sl SINUMERIK Operate v4.8 Page 1 This document was produced for training purposes. A186
Siemens assumes no responsibility for its contents.
A186 Transformations

A186 Page 2 840D sl SINUMERIK Operate


Transformations A186

Transformation
START

Fundamentals for
"transformations
with a kinematic
chain":

Kinematic
transformations
for the 5x machine
with P

Kinematic
transformations for
the 5x machine with
mixed kinematics

Kinematic
transformations
for the 5x machine
with head
kinematics

Example:
TRANSMIT
excentric

Appendix

Transformation
END

Notes:

840D sl SINUMERIK Operate Page 3 A186


A186 Transformations

Fundamentals for "transformations with a kinematic chain"

The kinematic chain can be used to define transformation Example:


declarations in the NC. Calling the transformation TRAORI_DYN_AC:

Possible are:
TRAORI_DYN
TRAORI_STAT
TRANSMIT_K
TRACYL_K
TRAANG_K

Except for the "TRAORI_STAT" transformation, the transfor- TRAFOON(“TRAORI_DYN_AC“)


mations can also be defined classically via the MD24100, etc. M0
in conjunction with the channel MD starting at 24500. TRAFOOF
M30
All classically defined transformations can be retained in
parallel to transformations with a kinematic chain.
The active transformation is displayed in the T,F,S window:
If a transformation is redefined via the kinematic chain, the
transformation can be parameterized so that it replaces an
existing classic transformation.

Otherwise, each transformation can be activated with the


TRAFOON("NAME_OF_THE_TRAFO") command and
deactivated with the "TRAFOOF" command.

If an "alternative call" with the transformation number is The maximum possible number of transformations that can be
parameterized during the commissioning, the transformation defined via the kinematic chain is parameterized with
can also be called with this number. MD18866 $MN_MM_NUM_KIN_TRAFOS.

The number of definable tool carriers is specified with


Example 1 for the TRAORI_DYN of the head kinematics: MD18088 $MN_MM_NUM_TOOL_CARRIER.

The machine operating company must ensure that the


kinematic chain represents the exact machine geometry.
This applies particularly to the spatial position of the rotary
axes.

TRAORI(1) All parameterized transformations are represented in the NC


M0 with the system tags that begin with $NT_.
TRAFOOF
M30

Example 2 for the TRAORI_DYN of the head kinematics:

TRAORI(7)
M0
TRAFOOF
M30

Notes:

A186 Page 4 840D sl SINUMERIK Operate


Transformations A186

For the parameterization of transformations with several rotary axes in a chain branch (tool or workpiece branch), the following
sequence governs the specification of rotary axis names:
• Sequence in the "End of part chain" to "End of tool chain" direction. The rotary axis nearer the "End of part chain" is specified
first in the screen and stored first in the $NT_ROT_AX_NAME[n,0] NC tag.

Similarly:
If correction elements should be used for CYCLE9960, they must lie behind the associated rotary axes in the "End of part chain"
to "End of tool chain" viewing direction.

Example for a kinematic chain for a machine with mixed kinematics (for further examples, see Chapter A100):

The original chain is implicitly included in this sequence (restricted to the essentials):

1. rotary axis 2. rotary axis

End
Workpiece End
C axis ROOT B axis
chain Tool chain

View

This conceptual sequence can now be augmented with the correction elements (each in viewing direction "behind" the associat-
ed rotary axis) for CYCLE9960:

1. Rotary axis 2. Rotary axis

End Corr.
Corr. End
Workpiece C axis ROOT B axis Spindle
C Offset Tool chain
chain Offset

View

Notes:

840D sl SINUMERIK Operate Page 5 A186


A186 Transformations

Kinematic transformations for the 5-axis machine with table kinematics ("P")

Movement transformations can be represented based on the For the example of the 5-axis machine with table kinematics,
kinematic chain. The kinematic chain supplies the geometric the transformations
information as input data for the associated transformation.
1. TRAORI_DYN
The kinematic chain can be used for the following 2. TRAORI_STAT
transformations: 3. TRANSMIT_K
4. TRACYL_K
TRAORI_DYN Dynamic orientation transformation with
1-3 rotary axes can be deployed.

TRAORI_STAT Static "Face transformation" orientation Commissioning the associated transformations is explained in
transformation for milling and turning the next steps.
machines for turning with a tool that can
be oriented

TRANSMIT_K Face transformation for milling and


turning machines

TRACYL_K Cylinder jacket interpolation

TRAANG_K Transformation for inclined axis

This scope provides transformations as of NC software


release SW4.8 SP3.

Notes:

A186 Page 6 840D sl SINUMERIK Operate


Transformations A186

1. Commissioning the TRAORI_DYN transformation Commissioning screen call for the transformation:

The TRAORI_DYN transformation can be used like the • Set the manufacturer password
previous TRAORI transformation. No changes need to be
• Select → Commissioning → NC → Transformations menu
made to existing NC programs that used the TRAORI
function.
In the overview of the existing transformations, the cursor is
positioned on the line in which the new transformation should
For this transformation, the linear and rotary axes positions to
be created.
be approached so that the tool tip is positioned correctly with
the appropriate alignment in the WCS are calculated from a
requested rotary axis direction or a vector direction.

For the concrete example machine, the two rotary axes


A(-1,0,0) and C(0,0,-1) are used to implement the tool
alignment.

The transformation should replace the existing TRAORI


transformation.

The commissioning screen is called with the "New" (VS2)


softkey.

The TRAORI_DYN transformation is selected from the input For the example machine with table kinematics, two rotary
dialog. axes (A and C) are used in the workpiece chain. No rotary
axis is used in the tool chain.

Notes:

840D sl SINUMERIK Operate Page 7 A186


A186 Transformations

TRAORI_DYN_AC is specified as name for the For the tool chain, SP1_OFFSET (softkey: Select element) is
transformation, the selection field for the alternative call is selected as last element from the kinematic chain, the mode
changed to "Yes" and the associated TRAORI selection block for closing the tool chain is set to AUTO.
is set to 1.

The new transformation can then be activated or deactivated


by the part program with the TRAORI or TRAFOOF
command, respectively.

If no alternative call should be used, the transformation can


be activated with the TRAFOON("TRAORI_DYN_AC")
command.

In the workpiece chain, the two rotary axes are specified with The transformation is linked with the linear axes of the
the associated correction elements for the kinematic machine in the next screen block.
measurement. The elements from the kinematic chain for the X/Y/Z axes
The associated elements are selected with the "Element" must be selected with the "Element" softkey in Explorer.
softkey in Explorer and transferred to the screen.
The sequence of the axes is considered from the machine
frame viewpoint.

The workpiece chain should automatically close when the


transformation is selected.

Notes:

A186 Page 8 840D sl SINUMERIK Operate


Transformations A186

For the transformation properties, the "Accept rotary offset The transformation is now fully configured and can be used
from WO" setting must be set to "Yes" so that zero offset of from an NC program.
the C axis determined from a measuring cycle is transferred to
the transformation. The transformation can be tested with a small program:

The "End angle tolerances" can be set similarly for the TRAFOOF
previous TRAORI transformation. The two direction vectors CYCLE800
can be left initialized automatically as for the screen.
T0
The normal vector can be specified as required because it is M6
not evaluated for a transformation with two rotary axes. $P_UIFR[1]=CTRANS()
The "Ignore active tool" mode is switched to "No" because the
G0 G54 X200 Y0 Z50
active tool of the NC should be considered in the G0 A0 C0
transformation. TRAORI
ORIMKS
G0 A-5 C90
M0 ;MX=0 MY=-194.881 MZ=32.759
G0 A0 C0
TRAFOOF
M30

For the M0 line, the machine axes must be placed on the


positions specified as comment. A tool correction has been
waived intentionally.

2. Commissioning the TRAORI_STAT transformation 2.1 Commissioning screen call for the transformation:
The TRAORI_STAT transformation is required to implement • Set the manufacturer password
turning on milling machines. Unlike for TRAORI_DYN, the
rotary axes are no longer moved during machining (tool cutter • Select → Commissioning → NC → Transformations menu
is engaged).
In the overview of the existing transformations, the cursor is
The transformation can be started or ended from the NC part positioned on the line in which the new transformation should
program with the "Various", "Swivel tool", "Align turning tool" be created.
function.

To allow complete use of the function, various program


sections in CUST_800.SPF must be augmented with the
required functions (clamp the spindle clamping of the milling
spindle, etc.).

The commissioning screen is called with the "New" (VS2)


softkey.

Notes:

840D sl SINUMERIK Operate Page 9 A186


A186 Transformations

"TRAORI_STAT" is selected from the transformation For the example machine with table kinematics, two rotary
selection list. axes (A and C) are used in the workpiece chain and, for the
orientation of the turning tool, the milling spindle in the tool
chain (the spindle is used as rotary axis in this case).

The name of the transformation can be assigned freely, see For the workpiece chain, the A axis and the C axis with the
below in the "TURN_TRAFO" screenshot. The tool for spindle associated correction elements are specified as first and
SP1 is oriented in the tool chain. The "END_TOOL_CHAIN" second axis, respectively.
element is the last element in the tool chain; the offset vectors To prevent a WCS jump when switching on the
of the tool chain should be closed automatically by the NC. transformation, close mode is switched to "auto".

The symbol at the right next to the parameter field for the
rotation axis can remain as the "Without Hirth coupling"
setting.
Because for the measurement of the kinematics, there should
not be a correction to the spindle offset, no correction element
is selected.

Notes:

A186 Page 10 840D sl SINUMERIK Operate


Transformations A186

The X/Y/Z linear machine axes can be assigned to the associ- The properties of the input screen must the adapted to the
ated elements of the kinematic chain with the "Select element" properties of the real machine. It is desirable to block
softkey in Explorer. impermissible retraction modes in the CUST_800.
All available capabilities are permitted for the example
machine used here. An MCS position in X-, Y+ and Z+ is
specified as retract position.

The transformation can be checked with this NC program:

N1000 TRAFOOF
N1010 CYCLE800 N1140 G96 S2=600 M2=3 LIMS=700 M8
N1020 $P_UIFR[1]=CTRANS(Z,300) N1150 DIAMON
N1030 G0 SUPA Z500 D0
N1040 G0 A0 C0 N1160 G0 X210 Y0 Z100
N1050 WORKPIECE(,"C",,"CYLINDER",64, N1170 G0 X205 Z0
2,-200,-80,200) N1180 G1 X0 F0.3
N1190 G0 Z2
N1060 T="TOOL_3" N1200 G0 X210
N1070 M6
N1080 M6 N1290 CYCLE800(2,"TURN_TRAFO",200,57,
N1090 D1 ,,,90,0,0,,,,-1,100,2)
N1100 G54 N1300 CYCLE800(1,"0",200,57,
,,,0,0,0,,,,-1,100,12)
N1110 CYCLE800(2,"TURN_TRAFO",200,57, N1310 M9
,,,90,0,0,,,,-1,100,2) N1320 T0
N1120 SETMS(2) N1330 M6
N1130 G18 N1340 M30

Notes:

840D sl SINUMERIK Operate Page 11 A186


A186 Transformations

3. Commissioning the TRANSMIT_K transformation 3.1 Commissioning screen call for the transformation:

The TRANSMIT_K transformation replaces a rectangular XY • Set the manufacturer password


coordinate system with the X axis of the machine and the C • Select → Commissioning → NC → Transformations menu
axis. The movement of XY in the G17 work plane should
be transformed to an XC movement. In the overview of the existing transformations, the cursor is
positioned on the line in which the new transformation should
The transformation should replace the TRANSMIT(1) function. be created.
No further change is required to the existing NC programs.
The transformation should represent a TRANSMIT for
transformation type 256 without additional offset axis.

The commissioning screen is called with the "New" (VS2) soft-


key.

The TRANSMIT_K transformation is selected from TRANSMIT_AC is specified as name for the transformation;
the input dialog. the selection field for the alternative call is changed to "Yes"
and the associated TRANSMIT selection block is set to 1.

The part program can activate or deactivate the new


transformation with the TRANSMIT or TRAFOOF command,
respectively.

If no alternative call should be used, the transformation can


be activated with the TRAFOON("TRANSMIT_AC")
command.

Notes:

A186 Page 12 840D sl SINUMERIK Operate


Transformations A186

END_TOOL_CHAIN (softkey: Select element) is selected for


The "X_AXIS" element is selected for the transformation axis
the tool chain as last element from the kinematic chain.
(the linear axis to be moved by the transformation to form the
XY coordinate system). A compensation axis for the
correction of the tool offset is not required in this case.
The "Z_AXIS" is specified as infeed axis.

For the workpiece chain, the "C_AXIS" element is selected for


the "Rotation axis" selection and the "END_PART_CHAIN"
element is selected for the end of the workpiece chain.

Parameterization of the transformation properties:

• The working area for the X axis should be positive.


• The direction of rotation of the rotary axis should not be
inverted.
• The sequence of the geometry axes should be "XYZ".
• A WCS jump when selecting the transformation should not
be suppressed for any axis.
• The tool direction Z should not be specified explicitly
(because already specified for this machine).

Notes:

840D sl SINUMERIK Operate Page 13 A186


A186 Transformations

Example program for a TRANSMIT machining:

N1000 TRAFOOF N1140 TRANSMIT


N1010 CYCLE800 N1150 STOPRE
N1160 G0 X100 Y0 Z10
N1020 $P_UIFR[1]=CTRANS(X,0,Z,300) N1170 G1 X90 Z-20 F5000
N1030 G54 N1180 G1 X90 Y-90
N1040 T="FR_16" N1190 G1 X-90 Y-90
N1050 M6 N1200 G1 X-90 Y90 RND=70
N1060 D1 N1210 G1 X90 Y90 CHR=40
N1220 G1 X90 Y0
N1070 CYCLE800 N1240 G0 Z10
(0,"TISCH_AC",100000,57, N1250 TRAFOOF
0,0,0,0,0,0,0,0,0,-1,100,1) N1260 G0 SUPA Z500 D0
N1080 WORKPIECE N1270 D1
(,"C",,"RECTANGLE",64,2,-50,- N1280 M5
80,190,190) N1290 M30
N1090 CYCLE800
N1100 G54 G17 S3000 M3
N1110 G0 Y0 C0
N1120 G0 X100 Z10
N1130 STOPRE

Notes:

A186 Page 14 840D sl SINUMERIK Operate


Transformations A186

4. Commissioning the TRACYL_K transformation 4.1 Commissioning screen call for the transformation:

The TRACYL_K transformation should be used to machine • Set the manufacturer password
round, centrically clamped workpieces on the jacket surface. • Select → Commissioning → NC → Transformations menu
The XY movement in the G17 work plane should be
transformed to a CY movement. In the overview of the existing transformations, the cursor is
The transformation is parameterized in conjunction with positioned on the line in which the new transformation should
CYCLE800. CYCLE800 is used to swivel the rotation axis of be created.
the workpiece perpendicular to the spindle axis.

The transformation should replace the TRACYL(1) function.


No further change is required to the existing NC programs.

The transformation should represent TRACYL of


transformation type 512 without additional offset axis for slot
wall correction.

The commissioning screen is called with the "New" (VS2)


softkey.

The TRACYL_K transformation is selected from the input TRACYL_AC is specified as name for the transformation; the
dialog. selection field for the alternative call is changed to "Yes" and
the associated TRACYL selection block is set to 1.
The part program can activate or deactivate the new
transformation with the TRACYL or TRAFOOF command,
respectively.

If no alternative call should be used, the transformation can


be activated with the TRAFOON("TRACYL_AC") command.

Notes:

840D sl SINUMERIK Operate Page 15 A186


A186 Transformations

SP1_OFFSET (softkey: Select element) is selected for the


tool chain as last element from the kinematic chain. For the infeed axis, the "Z_AXIS" element is selected
(= positioned perpendicular to the rotation axis of the
cylinder). Whereby, it is already considered that during the
machining, the workpiece is swiveled by the A axis to a
horizontal position.
The "Slot wall correction" selection is switched to "No".
As alternative, the X axis can be used as correction axis
here.
The "Y_AXIS" axis is specified as longitudinal axis (the axis
that runs parallel to the rotation axis of the cylinder).
For the workpiece chain, the "C_AXIS" element is selected for
the "Rotation axis" selection and the "END_PART_CHAIN"
element is selected for the end of the workpiece chain.

Parameterization of the transformation properties: The sequence of the geometry axes is subject to the
reference:
• The direction of rotation of the rotary axis should not be X references the content of $NT_GEO_AX_NAME[n,0]
inverted. Y references the content of $NT_ROT_AX_NAME[n,1]
Z references the content of $NT_GEO_AX_NAME[n,2]
• The sequence of the geometry axes should be "YZX".
• A WCS jump when selecting the transformation should be The system tags have the following meaning:
suppressed for all three axes. $NT_GEO_AX_NAME[n,0] is the radial axis (infeed axis)
• The base offsets are initialized with value 0. $NT_GEO_AX_NAME[n,2] is the longitudinal axis
• The tool direction Z should not be specified explicitly $NT_ROT_AX_NAME[n,1] is the rotary axis
(because already specified for this machine).
It must be considered that a coordinate system is created
internally in the controller (transformation coordinate system)
whose Z axis coincides with the WCS axis defined at
"longitudinal axis" and whose X axis coincides with the WCS
axis defined at "infeed axis". The Y axis of this coordinate
system is simulated for the active TRACYL by the rotary axis.

Notes:

A186 Page 16 840D sl SINUMERIK Operate


Transformations A186

The diagram shows the position of the transformation co-


In the active CYCLE800 coordinate system, the Z axis ordinate system in the machine. The transformation con-
becomes the X axis of the transformation coordinate system verts the workpiece coordinate system to this
and the Y axis becomes the Z longitudinal axis of the coordinate system.
transformation coordinate system.

CYCLE800 Workpiece coordnate system

ZW

XT XT
YT /C YW
YT /C
Longit. axis
XW

ZT
Infeed axis ZT

Transformation coordinat system

To find the appropriate selection for the sequence of the Caution:


geometry axes, ask the following questions:
Ensure that this created transformation configuration is valid
1st question: only for a specific position of the coordinate system created
Which axis should be moved by the transformation coordinate by CYCLE800 with the rotation values at XYZ:
system when "X" is programmed in the part program?
1st answer: Y

2nd question: It is important for a


Which axis should be moved for the transformation coordinate subsequent use of the
system when "Y" is programmed in the part program? TRACYL transformation
2nd answer: Z that the coordinate
system is realigned with
3rd question: the
Which axis should be moved for the transformation coordinate
system when "Z" is programmed in the part program? • Rotation X=-90°
2nd answer: X • Swivel solution minus
parameters.
The setting to be selected results from the answers An additional rotation, for
1-3: YZX. example Z, would
change the assignment
of the geometry axes.

Notes:

840D sl SINUMERIK Operate Page 17 A186


A186 Transformations

Example program for checking the axis directions:

N1000 TRAFOOF
N1010 CYCLE800

N1020 T="FR_12"
N1030 M6
N1040 D1
N1050 G17 G54 G60 G90 S5000 M3
N1060 G0 X0
N1070 CYCLE800(1,"TISCH_AC",100000,57,0,0,0,-90,0,0,0,0,0,-1,,1)
N1080 TRACYL(100) ;TRACYL with 100 diameter
N1090 G0 X=IC(10) ;MCS: C=-11.459
N1100 G0 X=IC(-10) ;MCS: C=+11.459
N1110 G0 Y=IC(10) ;MCS: Y=+10
N1120 G0 Y=IC(-10) ;MCS: Y=-10
N1130 G0 Z=IC(10) ;MCS: Z=+10
N1140 G0 Z=IC(-10) ;MCS: Z=-10
N1150 TRAFOOF
N1160 CYCLE800
N1170 M5
N1180 M2

Programming note:

Before switching on the TRACYL function, the X axis of the


machine must be positioned exactly at the rotation center of
the C axis (in the example program on the previous page, this
occurs in block N1060 G0 X0).

The handling of the cylinder is programmed; all standard mill-


ing and drilling cycles can be used.

Z
Y

X/C

Notes:

A186 Page 18 840D sl SINUMERIK Operate


Transformations A186

5. Commissioning the classic TCARR tool carrier: Selection: TOOLCARR classic

5.1 Commissioning screen call:

• Set the manufacturer password


• Select → Commissioning → NC → Transformations menu
In the overview of the existing transformations, the cursor is
positioned on the line with identification "TC" in which the new
transformation should be created.

Note:
To use the classic tool carriers, MD 18088
$MN_NUM_TOOL_CARRIER >0 must be set!

Selection: Swivel table The name for the classic tool carrier is specified as
"TISCH_AC" and the data block is released.

Notes:

840D sl SINUMERIK Operate Page 19 A186


A186 Transformations

The rotary axes are entered as shown in the screen below. Ensure that the names of the channel axes (A and C) are entered for
the definition of the tool carrier.

The screen settings must be adapted to the associated need; the reference of the preferred direction to rotary axis number 1 (A
axis) is important.

Notes:

A186 Page 20 840D sl SINUMERIK Operate


Transformations A186

5. Commissioning the TCARR tool carrier with kinematic


chain:

5.1 Commissioning screen call:

• Set the manufacturer password


• Select → Commissioning → NC → Transformations menu
In the overview of the existing transformations, the cursor is
positioned on the line with identification "TC" in which the new
transformation should be created.

The rotary axes are entered as shown in the screen below. The END_PART_CHAIN element is used as end of the workpiece
chain. The workpiece chain should be closed automatically by the transformation.

Notes:

840D sl SINUMERIK Operate Page 21 A186


A186 Transformations

The screen settings must be adapted to the associated need; the reference of the preferred direction to rotary axis number 1
(A axis) is important.

Kinematic transformations for the 5-axis machine with mixed kinematics ("M")

Notes:

A186 Page 22 840D sl SINUMERIK Operate


Transformations A186

Kinematic transformations for the 5-axis machine with mixed kinematics ("M")

1. Commissioning the TRAORI_DYN transformation Commissioning screen call for the transformation:

The TRAORI_DYN transformation can be used like the • Set the manufacturer password
previous TRAORI transformation. No changes need to be • Select → Commissioning → NC → Transformations menu
made to existing NC programs that used the TRAORI
function. In the overview of the existing transformations, the cursor is
positioned on the line in which the new transformation should
For this transformation, the linear and rotary axes positions to be created.
be approached so that the tool tip is positioned correctly with
the appropriate alignment in the WCS are calculated from a
requested rotary axis direction or a vector direction.

For the concrete example machine, both rotary axes B(0,1,1)


and C(0,0,-1) are used to implement the tool alignment.

The transformation should replace the existing TRAORI


transformation.

The commissioning screen is called with the "New" (VS2)


softkey.

The TRAORI_DYN transformation is selected from the input For the example machine with mixed kinematics, a rotary axis
dialog. (B) and a rotary axis (C) are used in the tool chain and in the
workpiece chain, respectively.

Notes:

840D sl SINUMERIK Operate Page 23 A186


A186 Transformations

TRAORI_DYN_BC is specified as name for the The B_AXIS element is used for the rotation axis of the tool
transformation, the selection field for the alternative call is chain; the CORR_SP1_OFFSET element is used as
changed to "Yes" and the associated TRAORI selection block correction element for CYCLE9960.
is set to 1. For the tool chain, END_TOOL_CHAIN (softkey: Select
The new transformation can then be activated or deactivated element) is selected as last element from the kinematic chain,
by the part program with the TRAORI or TRAFOOF the mode for closing the tool chain is set to AUTO.
command, respectively.

The C_AXIS element is used for the rotation axis of the


workpiece chain; the CORR_C_OFFSET element is used as
If no alternative call should be used, the transformation can correction element for CYCLE9960.
be activated with the TRAFOON("TRAORI_DYN_BC") For the workpiece chain, END_PART_CHAIN (softkey: Select
command. element) is selected as last element from the kinematic chain,
the mode for closing the workpiece chain is set to AUTO.

The transformation is linked with the linear axes of the For the transformation properties, the "Accept rotary offset
machine in the next screen block. from WO" setting must be set to "Yes" so that zero offset of
The elements from the kinematic chain for the X/Y/Z axes the C axis determined from a measuring cycle is transferred
must be selected with the "Element" softkey in Explorer. to the transformation.
The "End angle tolerances" can be set similarly for the
previous TRAORI transformation. The two direction vectors
can be left initialized automatically as for the screen.

The normal vector can be specified as required because it is


not evaluated for a transformation with two rotary axes.
The "Ignore active tool" mode is switched to "No" because the
active tool of the NC should be considered in the
transformation.

Notes:

A186 Page 24 840D sl SINUMERIK Operate


Transformations A186

The transformation is now fully configured and can be used Commissioning the TRAORI_STAT transformation
from an NC program.
The TRAORI_STAT transformation is required to implement
The transformation can be tested with a small program: turning on milling machines. Unlike for TRAORI_DYN, the
rotary axes are no longer moved during machining (tool cutter
TRAFOOF is engaged).
CYCLE800
The transformation can be started or ended from the NC part
T0 program with the "Various", "Swivel tool", "Align turning tool"
M6 function.
$P_UIFR[1]=CTRANS()
To allow complete use of the function, various program
G0 G54 X100 Y0 Z100 sections in CUST_800.SPF must be augmented with the
G0 B0 C0 required functions (clamp the spindle clamping of the milling
TRAORI spindle, etc.).
ORIMKS
G0 B10 C15
M0 ;MX=94.751 MY=-25.996 MZ=100.114
G0 B0 C0
TRAFOOF
M30

For the M0 line, the machine axes must be placed on the


positions specified as comment. A tool correction has been
waived intentionally.

Commissioning screen call for the transformation: "TRAORI_STAT" is selected from the transformation selection
list.
• Set the manufacturer password
• Select → Commissioning → NC → Transformations menu
In the overview of the existing transformations, the cursor is
positioned on the line in which the new transformation should
be created.

The commissioning screen is called with the "New" (VS2) soft-


key.

Notes:

840D sl SINUMERIK Operate Page 25 A186


A186 Transformations

For the example machine with mixed kinematics, two rotary The name of the transformation can be assigned freely, see
axes (B and spindle) are used in the tool chain and one rotary below in the "TURN_TRAFO" screenshot. In the tool chain,
axis (C) used in the workpiece chain. the tool is oriented in the B_AXIS axis and by the SP1_AXIS
spindle. The "END_TOOL_CHAIN" element is the last
element in the tool chain; the offset vectors of the tool chain
should be closed automatically by the NC.

The symbol at the right next to the parameter field for the
rotation axis can remain as the "Without Hirth coupling"
setting.

The CORR_SP1_OFFSET element is the correction element


for using CYCLE9960 to correct the offset of the B axis.
Because for the measurement of the kinematics, there should
not be a correction to the spindle offset, no correction element
is selected.

For the workpiece chain, the C axis is specified with the The properties of the input screen must the adapted to the
C_AXIS element; the correction element is C_CORR. properties of the real machine. It is desirable to block
To prevent a WCS jump when switching on the impermissible retraction modes in the CUST_800.
transformation, close mode is switched to "auto". All available capabilities are permitted for the example
machine used here. An MCS position in X-, Y+ and Z+ is
specified as retract position.

The X/Y/Z linear machine axes can be assigned to the


associated elements of the kinematic chain with the "Select
element" softkey in Explorer.

Notes:

A186 Page 26 840D sl SINUMERIK Operate


Transformations A186

This test program can be used to check the function:

N1000 TRAFOOF
N1010 CYCLE800
N1020 $P_UIFR[1]=CTRANS(Z,300)
N1030 G0 SUPA Z500 D0
N1040 G0 B0 C0
N1050 WORKPIECE(,"C",,"CYLINDER",64,2,-200,-80,200)
N1060 T="TOOL_3"
N1070 M6
N1080 M6
N1090 D1
N1100 G54
N1110 CYCLE800(2,"TURN_TRAFO",200,57,,,,90,0,0,,,,-1,100,2)
N1120 SETMS(2)
N1130 G18
N1140 G96 S2=600 M2=3 LIMS=700 M8
N1150 DIAMON
N1160 G0 X210 Y0 Z100
N1170 G0 X205 Z0
N1180 G1 X0 F0.3
N1190 G0 Z2
N1200 G0 X210

N1210 CYCLE62("TESTCONTOUR",1,,)
N1220 CYCLE952
("OUTPUT_1",,"REST_1",2101311,0.3,0.3,0,2,0.1,0.1,0.1,0.1,0.1,0,1,0,0,,,,,2,2,
,,0,1,,0,12,1110110,1,0)
N1230 M2=5

N1240 CYCLE800(1,"TURN_TRAFO",200,57,,,,,45,0,,,,1,100,2)
N1250 G96 S2=600 M2=3 LIMS=700 M8
N1260 G0 X250 Y0 Z50
N1270 CYCLE952
("OUTPUT_2","REST_1","",1101311,0.3,2,0,2,0.1,0.1,0.1,0.1,0.1,0,1,0,,,,,,2,2,,
,0,1,,0,112,1100110,1,0)
N1280 M2=5

N1290 CYCLE800(2,"TURN_TRAFO",200,57,,,,90,0,0,,,,-1,100,2)
N1300 CYCLE800(1,"0",200,57,,,,0,0,0,,,,-1,100,12)
N1310 M9
N1320 T0
N1330 M6
N1340 M30

Notes:

840D sl SINUMERIK Operate Page 27 A186


A186 Transformations

N1350 E_LAB_A_TESTCONTOUR: ;#SM Z:4


N1360 G18 G90 DIAM90;*GP*
N1370 G0 Z0 X0 ;*GP*
N1380 G3 Z-140 X167.332 K=AC(-95) I=AC(0) ;*GP*
N1390 G1 Z-153.21 X153.121 RND=15 ;*GP*
N1400 Z-180 X200 ;*GP*
N1410 E_LAB_E_TESTCONTOUR:

Notes:

A186 Page 28 840D sl SINUMERIK Operate


Transformations A186

Commissioning the TRANSMIT_K transformation 3.1 Commissioning screen call for the transformation:

The TRANSMIT_K transformation replaces a rectangular XY • Set the manufacturer password


coordinate system with the X axis of the machine and the C
axis. The movement of XY in the G17 work plane should be
• Select → Commissioning → NC → Transformations menu
transformed to an XC movement.
In the overview of the existing transformations, the cursor is
positioned on the line in which the new transformation should
The transformation should replace the TRANSMIT(1) function.
No further change is required to the existing NC programs. be created.
The transformation should represent a TRANSMIT for
transformation type 256 without additional offset axis.

The commissioning screen is called with the "New" (VS2)


softkey.

The TRANSMIT_K transformation is selected from the input TRANSMIT_BC is specified as name for the transformation,
dialog. the selection field for the alternative call is changed to "Yes"
and the associated TRAORI selection block is set to 1.
The part program can activate or deactivate the new transfor-
mation with the TRANSMIT or TRAFOOF command, respec-
tively.

If no alternative call should be used, the transformation can


be activated with the TRAFOON("TRANSMIT_BC") com-
mand.

Notes:

840D sl SINUMERIK Operate Page 29 A186


A186 Transformations

For the tool chain, the SP1_OFFSET element is selected as The "X_AXIS" element is selected for the transformation axis
reference and as last element from the CORR_SP1_OFFSET (the linear axis that should be moved by the transformation to
kinematic chain. form the XY coordinate system). A compensation axis to
correct the tool offset is not required in this case.
The "Z_AXIS" axis is specified as infeed axis.

For the workpiece chain, the "C_AXIS" element and the


"END_PART_CHAIN" element are selected for the "Rotation
axis" and for the end of the workpiece chain, respectively.

Parameterization of the transformation properties:

• The working area for the X axis should be positive


• The direction of rotation of the rotary axis should not be
inverted
• The sequence of the geometry axes should be "XYZ"
• A WCS jump when selecting the transformation should not
be suppressed for any axis.
• The tool direction Z should not be specified explicitly
(because already specified for this machine)

Notes:

A186 Page 30 840D sl SINUMERIK Operate


Transformations A186

Example program for a TRANSMIT machining:

N1000 TRAFOOF N1160 G0 X100 Y0 Z10


N1010 CYCLE800 N1170 G1 X90 Z-20 F5000
N1180 G1 X90 Y-90
N1020 $P_UIFR[1]=CTRANS(X,0,Z,300) N1190 G1 X-90 Y-90
N1030 G54 N1200 G1 X-90 Y90 RND=70
N1040 T="FR_16" N1210 G1 X90 Y90 CHR=40
N1050 M6 N1220 G1 X90 Y0
N1060 D1 N1240 G0 Z10
N1250 TRAFOOF
N1070 CYCLE800(0,"MIXED_BC",200000, N1260 G0 SUPA Z500 D0
57,0,0,0,0,0,0,0,0,0,1,100,1) N1270 D1
N1080 WORKPIECE(,"C",,"RECTANGLE",64, N1280 M5
2,-50,-80,190,190) N1290 M30
N1090 CYCLE800
N1100 G54 G17 S3000 M3
N1110 G0 Y0 C0
N1120 G0 X100 Z10
N1130 STOPRE
N1140 TRANSMIT
N1150 STOPRE

Notes:

840D sl SINUMERIK Operate Page 31 A186


A186 Transformations

Commissioning the TRACYL_K transformation Commissioning screen call for the transformation:

The TRACYL_K transformation should be used to machine • Set the manufacturer password
round, centrically clamped workpieces on the jacket surface. • Select → Commissioning → NC → Transformations menu
The XY movement in the G17 work plane should be
transformed to a CY movement. In the overview of the existing transformations, the cursor is
The transformation is parameterized in conjunction with positioned on the line in which the new transformation should
CYCLE800. CYCLE800 is used to swivel the rotation axis of be created.
the workpiece perpendicular to the spindle axis.

The transformation should replace the TRACYL(1) function.


No further change is required to the existing NC programs.

The transformation should represent TRACYL of


transformation type 512 without additional offset axis for slot
wall correction.

The commissioning screen is called with the "New" (VS2)


softkey.

The TRACYL_K transformation is selected from the input TRACYL_BC is specified as name for the transformation; the
dialog. selection field for the alternative call is changed to "Yes" and
the associated TRACYL selection block is set to 1.
The part program can activate or deactivate the new
transformation with the TRACYL or TRAFOOF command,
respectively.

If no alternative call should be used, the transformation can


be activated with the TRAFOON("TRACYL_BC") command.

Notes:

A186 Page 32 840D sl SINUMERIK Operate


Transformations A186

CORR_SP1_OFFSET (softkey: Select element) is selected for


For the feed axis, the "Y_AXIS" element is selected
the tool chain as last element from the kinematic chain.
(= machine axis positioned perpendicular to the rotation axis
of the cylinder).
The "Slot wall correction" selection is switched to "No". As
alternative, the X axis can be used as correction axis here.
The "Z_AXIS" axis is specified as longitudinal axis (the axis
that runs parallel to the rotation axis of the cylinder).

For the workpiece chain, the "C_AXIS" element is selected for


the "Rotation axis" selection and the "END_PART_CHAIN"
element is selected for the end of the workpiece chain.

Parameterization of the transformation properties: For the sequence of the geometry axes, note that the use of
CYCLE800 requires that the assignment of the geometry ax-
• The direction of rotation of the rotary axis should not be es must be adapted especially for this configuration.
inverted. The swivel setting of CYCLE800 (in particular, the rotations
and the selection of the +/- solution) actually deployed must
• The sequence of the geometry axes should be "YXZ".
be documented for the end user by the machine
• A WCS jump when selecting the transformation should be manufacturer.
suppressed for all three axes. Changing the alignment of the WCS via CYCLE800 changes
• The base offsets are initialized with value 0. the transformation behavior!
• The tool direction Z should not be specified explicitly
(because already specified for this machine). The transformation is parameterized so that the WCS X axis
is represented by the C rotary axis, the WCS Y axis runs
parallel to the cylinder axis and the WCS Z axis is the infeed
axis.
The resulting handling must be considered like the "G17"
level for a 3 axis milling machine.

Notes:

840D sl SINUMERIK Operate Page 33 A186


A186 Transformations

The workpiece coordinate system for the transformation has Programming note:
the alignment:
Before switching on the TRACYL function, the X axis of the
machine must be positioned exactly at the rotation center of
the C axis.

Y
X/C

The handling of the cylinder is programmed; all standard mill-


ing and drilling cycles can be used.
Z

Z
Y

Note:
In this diagram, the coordinate system is moved to the surface X/C
of the cylinder after the rotation in Z.

The relationship between the transformation coordinate system and the workpiece coordinate system is shown in the following
diagram:

CYCLE800 workpiece coordinate system

YW

Transformation coordinate system XW


XT

ZW

ZT

YT

Notes:

A186 Page 34 840D sl SINUMERIK Operate


Transformations A186

The transformation coordinate system is represented in the To find the appropriate selection for the sequence of the
controller within the active CYCLE800 workpiece coordinate geometry axes, ask the following questions:
system in accordance with a fixed rule:
1st question:
• The Z axis runs parallel to the rotation axis of the cylinder Which axis should be moved by the transformation coordinate
(in this example: Z axis of the machine). system when "X" is programmed in the part program?
1st answer: Y (handling axis)
• The X axis points in the direction of the feed axis (in this
example: Y axis of the WCS).
2nd question:
• The Y axis (this is always simulated by the rotary axis) Which axis should be moved for the transformation
results from the arrangement of the two other coordinate coordinate system when "Y" is programmed in the part
systems and augments these to form a perpendicular, right- program?
handed Cartesian coordinate system. 2nd answer: X

3rd question:
Which axis should be moved for the transformation
coordinate system when "Z" is programmed in the part
program?
2nd answer: Z

The setting to be selected results from the answers


1-3: YXZ.

Example program:
N1000 TRAFOOF
N1010 CYCLE800

N1020 T="FR_12"
N1030 M6
N1040 D1
N1050 G17 G54 G60 G90 S5000 M3
N1060 G0 X0
N1070 CYCLE800(1,"MIXED_BC",200000,39,0,0,0,180,90,0,0,0,0,1,,1)
N1075 G0 Z100 Y0
N1080 TRACYL(100)
N1090 G0 X=IC(10) ;MKS: C=+11.459
N1100 G0 X=IC(-10) ;MKS: C=-11.459
N1110 G0 Y=IC(10) ;MKS: Z=+10
N1120 G0 Y=IC(-10) ;MKS: Z=-10
N1130 G0 Z=IC(10) ;MKS: Y=+10
N1140 G0 Z=IC(-10) ;MKS: Y=-10
N1150 TRAFOOF
N1160 CYCLE800
N1170 M5
N1180 M2

Notes:

840D sl SINUMERIK Operate Page 35 A186


A186 Transformations

Commissioning the classic TCARR tool carrier:

Commissioning screen call:

• Set the manufacturer password


• Select → Commissioning → NC → Transformations menu
In the overview of the existing transformations, the cursor is
positioned on the line with identification "TC" in which the new
transformation should be created.

Note:
To use the classic tool carriers, MD 18088
$MN_NUM_TOOL_CARRIER >0 must be set!

Notes:

A186 Page 36 840D sl SINUMERIK Operate


Transformations A186

The rotary axes are entered as shown in the screen below. Ensure that the names of the channel axes are entered for the
definition of a classic tool carrier.

The screen settings must be adapted to the associated need; the reference of the preferred direction to rotary axis number 1
(B axis) is important.

Notes:

840D sl SINUMERIK Operate Page 37 A186


A186 Transformations

Commissioning the TCARR tool carrier with kinematic chain:

Commissioning screen call:

• Set the manufacturer password


• Select → Commissioning → NC → Transformations menu
In the overview of the existing transformations, the cursor is
positioned on the line with identification "TC" in which the new
transformation should be created.

Notes:

A186 Page 38 840D sl SINUMERIK Operate


Transformations A186

The rotary axes are entered as shown in the screen below. The END_TOOL_CHAIN element is used as end of the tool chain; the
END_PART_CHAIN element is used as end of the workpiece chain. Both chains should be closed automatically by the
transformation.

The screen settings must be adapted to the associated need; the reference of the preferred direction to rotary axis number 1
(B axis) is important.

Notes:

840D sl SINUMERIK Operate Page 39 A186


A186 Transformations

Kinematic transformations for the 5-axis machine with head kinematics

Notes:

A186 Page 40 840D sl SINUMERIK Operate


Transformations A186

Kinematic transformations for the 5-axis machine with head kinematics

Commissioning the TRAORI_DYN transformation: Commissioning screen call for the transformation:

The TRAORI_DYN transformation can be used like the • Set the manufacturer password
previous TRAORI transformation. No changes need to be
made to existing NC programs that used the TRAORI
• Select → Commissioning → NC → Transformations menu
function.
In the overview of the existing transformations, the cursor is
positioned on the line in which the new transformation should
For this transformation, the linear and rotary axes positions to
be approached so that the tool tip is positioned correctly with be created.
the appropriate alignment in the WCS are calculated from a
requested rotary axis direction or a vector direction.

For the concrete example machine, the two rotary axes A


(1,0,0) and C(0,0,1) are used to implement the tool alignment.

The transformation should replace the existing TRAORI


transformation.

The commissioning screen is called with the "New" (VS2)


softkey.

The TRAORI_DYN transformation is selected from the input For the example machine with head kinematics, both rotary
dialog. axes (A and C) are used in the tool chain.

Notes:

840D sl SINUMERIK Operate Page 41 A186


A186 Transformations

TRAORI_DYN_AC is specified as name for the transfor- The C_AXIS, CORR_A_OFFSET, A_AXIS and
mation, the selection field for the alternative call is changed to CORR_SP1_OFFSET elements are used for the rotation axes
"Yes" and the associated TRAORI selection block is set to 1. of the tool chain.
The new transformation can then be activated or deactivated For the tool chain, SP1_OFFSET (softkey: Select
by the part program with the TRAORI or TRAFOOF element) is selected as last element from the kinematic chain,
command, respectively. the mode for closing the tool chain is set to AUTO.

If no alternative call should be used, the transformation can


be activated with the TRAFOON("TRAORI_DYN_AC") com-
mand.

For the workpiece chain, END_PART_CHAIN (softkey: Select


element) is selected as last element from the kinematic chain,
the mode for closing the workpiece chain is set to AUTO.

The transformation is linked with the linear axes of the For the transformation properties, the "Accept rotary offset
machine in the next screen block. from WO" setting must be set to "Yes" so that zero offset of
The elements from the kinematic chain for the X/Y/Z axes the C axis determined from a measuring cycle is transferred to
must be selected with the "Element" softkey in Explorer. the transformation.
The "End angle tolerances" can be set similarly for the
previous TRAORI transformation. The two direction vectors
can be left initialized automatically as for the screen.
The "Ignore active tool" mode is switched to "No" because the
active tool of the NC should be considered in the
transformation.

Notes:

A186 Page 42 840D sl SINUMERIK Operate


Transformations A186

The transformation is now fully configured and can be used from an NC program.

The transformation can be tested with a small program:

TRAFOOF
CYCLE800
T0
M6
$P_UIFR[1]=CTRANS()
G0 G54 X100 Y0 Z100
G0 A0 C0
TRAORI
ORIMKS
G0 A10 C15
M0 ;MX=109.888 MY=-36.901 MZ=96.658
G0 A0 C0
TRAFOOF
M30

For the M0 line, the machine axes must be placed on the positions specified as comment. A tool correction has been waived
intentionally.

Commissioning the classic TCARR tool carrier:

Commissioning screen call:

• Set the manufacturer password


• Select → Commissioning → NC → Transformations menu
In the overview of the existing transformations, the cursor is
positioned on the line with identification "TC" in which the new
transformation should be created.

Note:
To use the classic tool carriers, MD 18088
$MN_NUM_TOOL_CARRIER >0 must be set!

Notes:

840D sl SINUMERIK Operate Page 43 A186


A186 Transformations

The rotary axes are entered as shown in the screen below. Ensure that the names of the channel axes are entered for the
definition of a classic tool carrier. The vector chain must be closed manually.

Notes:

A186 Page 44 840D sl SINUMERIK Operate


Transformations A186

The screen settings must be adapted to the associated need; the reference of the preferred direction to rotary axis number 2
(A axis) is important.

Commissioning the TCARR tool carrier with kinematic chain:

Commissioning screen call:

• Set the manufacturer password


• Select → Commissioning → NC → Transformations menu
In the overview of the existing transformations, the cursor is
positioned on the line with identification "TC" in which the new
transformation should be created.

Notes:

840D sl SINUMERIK Operate Page 45 A186


A186 Transformations

The rotary axes are entered as shown in the screen below. The END_TOOL_CHAIN element is used as end of the tool
chain. The chain should be closed automatically by the transformation.

Notes:

A186 Page 46 840D sl SINUMERIK Operate


Transformations A186

The screen settings must be adapted to the associated need; the reference of the preferred direction to rotary axis number 2
(A axis) is important.

Notes:

840D sl SINUMERIK Operate Page 47 A186


A186 Transformations

Example of a TRANSMIT transformation for a rotary axis Overview of the machine example with C axis:
that does not lie at the machine zero.

To commission a TRANSMIT transformation based on a


kinematic chain, a program and parameterizing example will
be shown. The subsequently defined configuration has the
following main data:

• Rotary axis „C“ with vector (0,0,-1) is used.


• The X axis executes the machining motion, the Y axis
is positioned at the center of rotation of the rotary axis
before the transformation is activated.
• The X axis operates in the positive range (on the „plus-
side“ of the center of rotation of the rotary axis).
• The machine example used has only one rotary axis.
• The TRANSMIT transformation is the first declared
transformation in the machine.
• The alternative call is active, and is parameterized for The center of rotation of the C axis is at X=-500mm
the first TRANSMIT transformation. and Y=-200mm.
• The WCS jump when the transformation is selected is
suppressed in the X axis.

Overview of the kinematic chain of the machine: For the correct representation in the simulation, the C axis
must be parameterized in MD 52207:

Note: For this machine, the C axis is the fifth axis in the channel,
In the program example, the offset for the rotary axis is only which is why MD 52207[4] is used for the C axis.
formed from the two elements „C_CORR“ and „C_OFFSET“.
If additional elements with offset values <>0 are integrated in
the kinematic chain before these two elements, then these
must also be taken into consideration.

Notes:

A186 Page 48 840D sl SINUMERIK Operate


Transformations A186

Creating the transformation: Call the commissioning screen form for the transformation:

• Set the manufacturer‘s password


• Menü Select → Commissioning → NC →
Constraints: Transformations
• The kinematic chain must be correctly installed in the
machine. In the overview of existing transformations, the cursor is
• MD 18866 $MN_MM_NUM_KIN_TRAFOS must be positioned on the line in which the new transformation should
set so that one transformation is still available. be created (here, for line „KT 1“).

The commissioning screen form is called using softkey New


(VS2).

The transformation is selected from the entry dialog


The transformation is assigned the name TRANSMIT_CHAIN,
TRANSMIT_K.
the selection field for the alternative call is switched over to
„yes“, and the associated TRAORI selection block is set to 1
Later, the new transformation can be activated from the part
program using command TRANSMIT – and deactivated using
command TRAFOOF.

If no alternative call is to be used, then the transformation can


be subsequently activated using command
TRAFOON(“TRANSMIT_CHAIN“).

Notes:

840D sl SINUMERIK Operate Page 49 A186


A186 Transformations

Assigning the chain elements: Parameterizing the transformation properties:

• The working range for the X axis should be positive


• The direction of rotation of the rotary axis should not
be inverted
• The sequence of the geometry axes should be „XYZ“
• For the X axis, a WCS jump should be suppressed
when selecting the transformation.
• Tool direction Z should not be explicitly defined (as
already given for this specific machine)
• The basis offset in X must be set to –500mm. This
corresponds to the position of the center of rotation of
the C axis in the MCS. When measuring the
kinematics, or after a position change (if the C-axis is
available as mounted table) then this value must be
adapted: $NT_BASE_TOOL[n,0]=-500
For this specific example, the number of the
The end of the tool chain must be defined before the tool transformation is n=1.
spindle, spindle SP1_AXIS itself must not be part of the
transformation declaration.
Axis X_AXIS is selected as the transformation axes. The X
axis subsequently executes the machining motion, the Y
access is not traversed when TRANSMIT is active.

Axes Y and Z are not assigned a basis offset!


After the parameterization, an NCK reset should be
performed. If the program simulation is to use the function
„simultaneous recording“ then the HMI must be restarted.

Notes:

A186 Page 50 840D sl SINUMERIK Operate


Transformations A186

Program example: Workpiece view after successful simulation:

Just parameterizing the TRANSMIT function for machines


with rotary axis outside the machine zero is not sufficient.
Additional steps can be seen in the subsequent program
example.
In the program, a workpiece is initially milled at C=0°
without TRANSMIT up to a depth of Z-5mm, then with active
TRANSMIT up to a depth of Z-10mm. To provide a better
differentiation, when TRANSMIT is active, a contour
allowance of 3mm is programmed.

Clamping in the machine:

The diagram shows the machine in position


G0 G54 X35 Y0 Z0 C0

G54
X0 Y0 Z0

Values of the WO G54:


X-460
Y-50
Z150 MCS
Z X0 Y0 Z0
Y

Rotation center C in the X


MCS:
X-500
Y-200

Notes:

840D sl SINUMERIK Operate Page 51 A186


A186 Transformations

When the TRANSMIT(1) transformation is active, the Y axis in


the MCS must be at the value –200 (center of the rotary
table), for G0 X35 Y0, the X axis must be at the MCS value
X-332.295mm and the C axis at the MCS value C=63.435°
XMCS=-332.295mm
YMCS=-200mm

The correct
positioning is
achieved by
programming
ATRANS and AROT
commands.

CMCS=63.435°

Geometry overview:

Calculating the lengths NPV_X and NPV_Y:

NPV_X=$P_UIFR[$P_UIFRNUM,X,TR]-OFFSET_X
NPV_Y=$P_UIFR[$P_UIFRNUM,Y,TR]-OFFSET_Y

Note: if necessary, also consider the fine offset


$P_UIFR[$P_UIFRNUM,X,FI]!
Observe MD 18600!

Length of the hypotenuse:


SQRT(POT(NPV_X)+POT(NPV_Y))

Angle of rotation to the zero point G54 :


NPV_Y

ATAN2(NPV_Y,NPV_X)

NPV_X

OFFSET_X=-500
OFFSET_Y=-200

Notes:

A186 Page 52 840D sl SINUMERIK Operate


Transformations A186

N1000 DEF INT ERROR, INDEX_ELEMENT N1310 TRAFOOF


N1010 DEF REAL OFFSET_X, OFFSET_Y, NPV_X, NPV_Y N1320 G0 SUPA Y=OFFSET_Y X=OFFSET_X
N1020 TRAFOOF N1330 STOPRE
N1030 T="MILL_16"
N1040 M6 N1340 NPV_X=($P_UIFR[$P_UIFRNUM,X,TR])-OFFSET_X
N1050 D1 N1350 NPV_Y=($P_UIFR[$P_UIFRNUM,Y,TR])-OFFSET_Y
N1060 $P_UIFR[1]=CTRANS(X,-460,Y,-50,Z,150) N1360 $NT_ROT_OFFSET_FROM_FRAME[1]=1
N1070 G54 N1370 $NT_ROT_AX_OFFSET[1,0]=0
N1080 S2000 M3 N1380 NEWCONF
N1090 WORKPIECE(,"C",,"CYLINDER",64,0,-80,-80,100)
N1100 G0 Z100 N1390 TRANSMIT(1)
N1110 G0 X0 Y0 Z0 C0
N1400 ATRANS X=-NPV_X
N1120 R1=-5 ;TIEFE Z N1410 AROT Z=180+(ATAN2(NPV_Y,NPV_X))
N1130 R2=0 ;AUFMASS XY N1420 ATRANS X=-(SQRT(POT(NPV_X)+POT(NPV_Y)))
N1140 ANFANG: N1430 AROT Z=-180-(ATAN2(NPV_Y,NPV_X))
N1150 CYCLE62("AUSSEN_100",1,,)
N1160 CYCLE62("INSEL1",1,,) N1440 R1=-10 ;TIEFE Z
N1170 CYCLE62("INSEL2",1,,) N1450 R2=3 ;AUFMASS XY
N1180 CYCLE62("INSEL3",1,,) N1460 REPEAT ANFANG ENDE
N1190 CYCLE63 N1470 TRAFOOF
("199401010049120",1001,100,0,1,R1,5000,,8,10,R2,0,0,,,,,,1 N1480 M30
,2,,,,0,100201,100)
N1200 ENDE: N1590 E_LAB_A_AUSSEN_100: ;#SM Z:2
;#7__DlgK contour definition begin - Don't
N1220 INDEX_ELEMENT=NAMETOINT("$NK_NAME","C_OFFSET" ,TRUE) change!;*GP*;*RO*;*HD*
N1230 IF INDEX_ELEMENT==-1 GOTOF FEHLER_AX4_OFFSET G17 G90 DIAMOF;*GP*
N1240 OFFSET_X=$NK_OFF_DIR[INDEX_ELEMENT,0] G0 X50 Y0 ;*GP*
N1250 OFFSET_Y=$NK_OFF_DIR[INDEX_ELEMENT,1] G3 I=AC(0) J=AC(0) ;*GP*
N1260 INDEX_ELEMENT=NAMETOINT("$NK_NAME","C_CORR" ,TRUE) ;CON,0,0.0000,1,1,MST:0,0,AX:X,Y,I,J,TRANS:1;*GP*;*RO*;*HD
N1270 IF INDEX_ELEMENT==-1 GOTOF FEHLER_CORR_AX4_OFFSET *
N1280 OFFSET_X=OFFSET_X+$NK_OFF_DIR[INDEX_ELEMENT,0] ;S,EX:50,EY:0;*GP*;*RO*;*HD*
N1290 OFFSET_Y=OFFSET_Y+$NK_OFF_DIR[INDEX_ELEMENT,1] ;ACCW,EX:50,EY:0,CX:0,RAD:50;*GP*;*RO*;*HD*
;#End contour definition end - Don't
change!;*GP*;*RO*;*HD*
E_LAB_E_AUSSEN_100:

N1600 E_LAB_A_INSEL1: ;#SM Z:2 N1490 FEHLER_AX4_OFFSET:


;#7__DlgK contour definition begin - Don't N1500 LOOP
change!;*GP*;*RO*;*HD* N1510 MSG("ELEMENT AX4_OFFSET NOT FOUND")
G17 G90 DIAMOF;*GP* N1520 M0
G0 X45 Y0 ;*GP* N1530 ENDLOOP
G3 I=AC(35) J=AC(0) ;*GP*
;CON,0,0.0000,1,1,MST:0,0,AX:X,Y,I,J,TRANS:1;*GP*;*RO*;*HD* N1540 FEHLER_CORR_AX4_OFFSET:
;S,EX:45,EY:0;*GP*;*RO*;*HD* N1550 LOOP
;ACCW,DIA:0/214,EX:45,EY:0,CY:0,RAD:10;*GP*;*RO*;*HD* N1560 MSG("ELEMENT CORR_AX4_OFFSET NOT FOUND")
;#End contour definition end - Don't change!;*GP*;*RO*;*HD* N1570 M0
E_LAB_E_INSEL1: N1580 ENDLOOP

N1610 E_LAB_A_INSEL2: ;#SM Z:2


;#7__DlgK contour definition begin - Don't
change!;*GP*;*RO*;*HD*
G17 G90 DIAMOF;*GP*
G0 X0 Y45 ;*GP*
G3 I=AC(0) J=AC(35) ;*GP*
Handling the offset values and the additive offsets & rotations
;CON,0,0.0000,1,1,MST:0,0,AX:X,Y,I,J,TRANS:1;*GP*;*RO*;*HD* should be saved in an additional subprogram or in a
;S,EX:0,EY:45;*GP*;*RO*;*HD* manufacturer or user cycle.
;ACCW,DIA:0/213,EX:0,EY:45,CX:0,RAD:10;*GP*;*RO*;*HD* This involves the program lines from N1220 to N1430.
;#End contour definition end - Don't change!;*GP*;*RO*;*HD*
E_LAB_E_INSEL2:

N1620 E_LAB_A_INSEL3: ;#SM Z:2


;#7__DlgK contour definition begin - Don't
change!;*GP*;*RO*;*HD*
G17 G90 DIAMOF;*GP*
G0 X-45 Y0 ;*GP*
G3 I=AC(-35) J=AC(0) ;*GP*
;CON,0,0.0000,1,1,MST:0,0,AX:X,Y,I,J,TRANS:1;*GP*;*RO*;*HD*
;S,EX:-45,EY:0;*GP*;*RO*;*HD*
;ACCW,DIA:0/14,EX:-45,EY:0,CY:0,RAD:10;*GP*;*RO*;*HD*
;#End contour definition end - Don't change!;*GP*;*RO*;*HD*
E_LAB_E_INSEL3:

Notes:

840D sl SINUMERIK Operate Page 53 A186


A186 Transformations

List of the complete transformation data set: $NT_BASE_ORIENT[COUNT2,0]=0


$NT_BASE_ORIENT[COUNT2,1]=0
$NT_BASE_ORIENT[COUNT2,2]=0
DEF INT COUNT2=1 $NT_BASE_ORIENT_NORMAL[COUNT2,0]=0
$NT_BASE_ORIENT_NORMAL[COUNT2,1]=0
$NT_NAME[COUNT2]="TRANSMIT_CHAIN" $NT_BASE_ORIENT_NORMAL[COUNT2,2]=0
$NT_TRAFO_TYPE[COUNT2]="TRANSMIT_K" $NT_POLE_LIMIT[COUNT2]=2
$NT_T_CHAIN_FIRST_ELEM[COUNT2]="ROOT" $NT_POLE_TOL[COUNT2]=0
$NT_P_CHAIN_FIRST_ELEM[COUNT2]="ROOT" $NT_ROT_OFFSET_FROM_FRAME[COUNT2]=1
$NT_T_CHAIN_LAST_ELEM[COUNT2]="SP1_OFFSET" $NT_IGNORE_TOOL_ORIENT[COUNT2]=0
$NT_P_CHAIN_LAST_ELEM[COUNT2]="END_PART_CHAIN_1" $NT_TRAFO_INCLUDES_TOOL[COUNT2]=0
$NT_T_REF_ELEM[COUNT2]="SP1_OFFSET" $NT_AUX_POS[COUNT2,0]=0
$NT_GEO_AX_NAME[COUNT2,0]="X_AXIS" $NT_AUX_POS[COUNT2,1]=0
$NT_GEO_AX_NAME[COUNT2,1]="" $NT_AUX_POS[COUNT2,2]=0
$NT_GEO_AX_NAME[COUNT2,2]="Z_AXIS" $NT_IDENT[COUNT2,0]=0
$NT_ROT_AX_NAME[COUNT2,0]="" $NT_IDENT[COUNT2,1]=0
$NT_ROT_AX_NAME[COUNT2,1]="C_AXIS" $NT_IDENT[COUNT2,2]=0
$NT_ROT_AX_NAME[COUNT2,2]="" $NT_CORR_ELEM_T[COUNT2,0]=""
$NT_ROT_AX_POS[COUNT2,0]=0 $NT_CORR_ELEM_T[COUNT2,1]=""
$NT_ROT_AX_POS[COUNT2,1]=0 $NT_CORR_ELEM_T[COUNT2,2]=""
$NT_ROT_AX_POS[COUNT2,2]=0 $NT_CORR_ELEM_T[COUNT2,3]=""
$NT_HIRTH_OFF[COUNT2,0]=0 $NT_CORR_ELEM_P[COUNT2,0]=""
$NT_HIRTH_OFF[COUNT2,1]=0 $NT_CORR_ELEM_P[COUNT2,1]=""
$NT_HIRTH_OFF[COUNT2,2]=0 $NT_CORR_ELEM_P[COUNT2,2]=""
$NT_HIRTH_INC[COUNT2,0]=0 $NT_CORR_ELEM_P[COUNT2,3]=""
$NT_HIRTH_INC[COUNT2,1]=0 $NT_CNTRL[COUNT2]=2097152
$NT_HIRTH_INC[COUNT2,2]=0 $NT_BASE_TOOL[COUNT2,0]=-500
$NT_ROT_AX_MIN[COUNT2,0]=0 $NT_BASE_TOOL[COUNT2,1]=0
$NT_ROT_AX_MIN[COUNT2,1]=0 $NT_BASE_TOOL[COUNT2,2]=0
$NT_ROT_AX_MIN[COUNT2,2]=0 $NT_BASE_TOOL_COMP[COUNT2]=1
$NT_ROT_AX_MAX[COUNT2,0]=0 $NT_CLOSE_CHAIN_P[COUNT2]=""
$NT_ROT_AX_MAX[COUNT2,1]=0 $NT_CLOSE_CHAIN_T[COUNT2]=""
$NT_ROT_AX_MAX[COUNT2,2]=0 $NT_TRAFO_INDEX[COUNT2]=1012
$NT_ROT_AX_OFFSET[COUNT2,0]=0 $NT_POLE_SIDE_FIX[COUNT2]=1
$NT_ROT_AX_OFFSET[COUNT2,1]=0 $NT_ROT_AX_CNT[COUNT2,0]=-1
$NT_ROT_AX_OFFSET[COUNT2,2]=0 $NT_ROT_AX_CNT[COUNT2,1]=-1
M30

Notes:

A186 Page 54 840D sl SINUMERIK Operate


Transformations A186

Example 2: TRANSMIT on the Y axis:


Only the differences to the transformation on the X axis are
subsequently shown. TRANSMIT_CHAIN_Y was used for the
transformation name:

The working range should be positive, and in this particular


case, the run direction of the C axis is inverted. This setting
refers to this specific case, and does not represent a general
difference to the transformation in the X direction. The
sequence is set to „YXZ“ and the basic offset in Y is set to
–200mm. X and Z are not assigned a basic offset! The WCS
jump when selecting the transformation in the Y axis should
be avoided.

For the alternative call, TRANSMIT number 2 is used and the


transformation axis is transferred over to Y_AXIS.

List of the complete transformation data set: $NT_BASE_ORIENT[COUNT2,0]=0


$NT_BASE_ORIENT[COUNT2,1]=0
$NT_BASE_ORIENT[COUNT2,2]=0
DEF INT COUNT2=1 $NT_BASE_ORIENT_NORMAL[COUNT2,0]=0
$NT_BASE_ORIENT_NORMAL[COUNT2,1]=0
$NT_NAME[COUNT2]="TRANSMIT_CHAIN_Y" $NT_BASE_ORIENT_NORMAL[COUNT2,2]=0
$NT_TRAFO_TYPE[COUNT2]="TRANSMIT_K" $NT_POLE_LIMIT[COUNT2]=2
$NT_T_CHAIN_FIRST_ELEM[COUNT2]="ROOT" $NT_POLE_TOL[COUNT2]=0
$NT_P_CHAIN_FIRST_ELEM[COUNT2]="ROOT" $NT_ROT_OFFSET_FROM_FRAME[COUNT2]=1
$NT_T_CHAIN_LAST_ELEM[COUNT2]="SP1_OFFSET" $NT_IGNORE_TOOL_ORIENT[COUNT2]=0
$NT_P_CHAIN_LAST_ELEM[COUNT2]="END_PART_CHAIN_1" $NT_TRAFO_INCLUDES_TOOL[COUNT2]=0
$NT_T_REF_ELEM[COUNT2]="SP1_OFFSET" $NT_AUX_POS[COUNT2,0]=0
$NT_GEO_AX_NAME[COUNT2,0]="Y_AXIS" $NT_AUX_POS[COUNT2,1]=0
$NT_GEO_AX_NAME[COUNT2,1]="" $NT_AUX_POS[COUNT2,2]=0
$NT_GEO_AX_NAME[COUNT2,2]="Z_AXIS" $NT_IDENT[COUNT2,0]=0
$NT_ROT_AX_NAME[COUNT2,0]="" $NT_IDENT[COUNT2,1]=0
$NT_ROT_AX_NAME[COUNT2,1]="C_AXIS" $NT_IDENT[COUNT2,2]=0
$NT_ROT_AX_NAME[COUNT2,2]="" $NT_CORR_ELEM_T[COUNT2,0]=""
$NT_ROT_AX_POS[COUNT2,0]=0 $NT_CORR_ELEM_T[COUNT2,1]=""
$NT_ROT_AX_POS[COUNT2,1]=0 $NT_CORR_ELEM_T[COUNT2,2]=""
$NT_ROT_AX_POS[COUNT2,2]=0 $NT_CORR_ELEM_T[COUNT2,3]=""
$NT_HIRTH_OFF[COUNT2,0]=0 $NT_CORR_ELEM_P[COUNT2,0]=""
$NT_HIRTH_OFF[COUNT2,1]=0 $NT_CORR_ELEM_P[COUNT2,1]=""
$NT_HIRTH_OFF[COUNT2,2]=0 $NT_CORR_ELEM_P[COUNT2,2]=""
$NT_HIRTH_INC[COUNT2,0]=0 $NT_CORR_ELEM_P[COUNT2,3]=""
$NT_HIRTH_INC[COUNT2,1]=0 $NT_CNTRL[COUNT2]=2426880
$NT_HIRTH_INC[COUNT2,2]=0 $NT_BASE_TOOL[COUNT2,0]=0
$NT_ROT_AX_MIN[COUNT2,0]=0 $NT_BASE_TOOL[COUNT2,1]=-200
$NT_ROT_AX_MIN[COUNT2,1]=0 $NT_BASE_TOOL[COUNT2,2]=0
$NT_ROT_AX_MIN[COUNT2,2]=0 $NT_BASE_TOOL_COMP[COUNT2]=2
$NT_ROT_AX_MAX[COUNT2,0]=0 $NT_CLOSE_CHAIN_P[COUNT2]=""
$NT_ROT_AX_MAX[COUNT2,1]=0 $NT_CLOSE_CHAIN_T[COUNT2]=""
$NT_ROT_AX_MAX[COUNT2,2]=0 $NT_TRAFO_INDEX[COUNT2]=1022
$NT_ROT_AX_OFFSET[COUNT2,0]=0 $NT_POLE_SIDE_FIX[COUNT2]=1
$NT_ROT_AX_OFFSET[COUNT2,1]=0 $NT_ROT_AX_CNT[COUNT2,0]=-1
$NT_ROT_AX_OFFSET[COUNT2,2]=0 $NT_ROT_AX_CNT[COUNT2,1]=-1

Notes:

840D sl SINUMERIK Operate Page 55 A186


A186 Transformations

NC program for TRANSMIT Y axis: N1310 TRAFOOF


N1320 G0 SUPA Y=OFFSET_Y X=OFFSET_X
N1330 STOPRE
N1000 DEF INT ERROR, INDEX_ELEMENT
N1010 DEF REAL OFFSET_X, OFFSET_Y, NPV_X, NPV_Y N1340 NPV_X=($P_UIFR[$P_UIFRNUM,X,TR])-OFFSET_X
N1020 TRAFOOF N1350 NPV_Y=($P_UIFR[$P_UIFRNUM,Y,TR])-OFFSET_Y
N1030 T="MILL_16" N1360 $NT_ROT_OFFSET_FROM_FRAME[2]=1
N1040 M6 N1370 $NT_ROT_AX_OFFSET[2,0]=0
N1050 D1 N1380 NEWCONF
N1060 $P_UIFR[1]=CTRANS(X,-460,Y,-50,Z,150)
N1070 G54 N1390 TRANSMIT(2)
N1080 S2000 M3 N1400 ATRANS Y=-NPV_Y
N1090 G0 Z100 N1410 AROT Z=-90+(ATAN2(NPV_Y,NPV_X))
N1100 G0 X0 Y0 Z0 C0 N1420 ATRANS Y=(SQRT(POT(NPV_X)+POT(NPV_Y)))
N1110 WORKPIECE(,"C",,"CYLINDER",64,0,-80,-80,100) N1430 AROT Z=90-(ATAN2(NPV_Y,NPV_X))
N1120 R1=-5 ;TIEFE Z
N1130 R2=0 ;AUFMASS XY N1440 R1=-10 ;TIEFE Z
N1140 ANFANG: N1450 R2=3 ;AUFMASS XY
N1150 CYCLE62("AUSSEN_100",1,,) N1460 REPEAT ANFANG ENDE
N1160 CYCLE62("INSEL1",1,,) N1470 TRAFOOF
N1170 CYCLE62("INSEL2",1,,) N1480 M30
N1180 CYCLE62("INSEL3",1,,)
N1190 CYCLE63 N1590 E_LAB_A_AUSSEN_100: ;#SM Z:2
("199401010049120",1001,100,0,1,R1,5000,,8,10,R2,0,0,,,,,,1 ;#7__DlgK contour definition begin - Don't
,2,,,,0,100201,100) change!;*GP*;*RO*;*HD*
N1200 ENDE: G17 G90 DIAMOF;*GP*
G0 X50 Y0 ;*GP*
N1220 INDEX_ELEMENT=NAMETOINT("$NK_NAME","C_OFFSET" ,TRUE) G3 I=AC(0) J=AC(0) ;*GP*
N1230 IF INDEX_ELEMENT==-1 GOTOF FEHLER_AX4_OFFSET ;CON,0,0.0000,1,1,MST:0,0,AX:X,Y,I,J,TRANS:1;*GP*;*RO*;*HD
N1240 OFFSET_X=$NK_OFF_DIR[INDEX_ELEMENT,0] *
N1250 OFFSET_Y=$NK_OFF_DIR[INDEX_ELEMENT,1] ;S,EX:50,EY:0;*GP*;*RO*;*HD*
;ACCW,EX:50,EY:0,CX:0,RAD:50;*GP*;*RO*;*HD*
N1260 INDEX_ELEMENT=NAMETOINT("$NK_NAME","C_CORR" ,TRUE) ;#End contour definition end - Don't
N1270 IF INDEX_ELEMENT==-1 GOTOF FEHLER_CORR_AX4_OFFSET change!;*GP*;*RO*;*HD*
N1280 OFFSET_X=OFFSET_X+$NK_OFF_DIR[INDEX_ELEMENT,0] E_LAB_E_AUSSEN_100:
N1290 OFFSET_Y=OFFSET_Y+$NK_OFF_DIR[INDEX_ELEMENT,1]

N1600 E_LAB_A_INSEL1: ;#SM Z:2 N1490 FEHLER_AX4_OFFSET:


;#7__DlgK contour definition begin - Don't N1500 LOOP
change!;*GP*;*RO*;*HD* N1510 MSG("ELEMENT AX4_OFFSET NOT FOUND")
G17 G90 DIAMOF;*GP* N1520 M0
G0 X45 Y0 ;*GP* N1530 ENDLOOP
G3 I=AC(35) J=AC(0) ;*GP*
;CON,0,0.0000,1,1,MST:0,0,AX:X,Y,I,J,TRANS:1;*GP*;*RO*;*HD* N1540 FEHLER_CORR_AX4_OFFSET:
;S,EX:45,EY:0;*GP*;*RO*;*HD* N1550 LOOP
;ACCW,DIA:0/214,EX:45,EY:0,CY:0,RAD:10;*GP*;*RO*;*HD* N1560 MSG("ELEMENT CORR_AX4_OFFSET NOT FOUND")
;#End contour definition end - Don't change!;*GP*;*RO*;*HD* N1570 M0
E_LAB_E_INSEL1: N1580 ENDLOOP

N1610 E_LAB_A_INSEL2: ;#SM Z:2


;#7__DlgK contour definition begin - Don't
change!;*GP*;*RO*;*HD*
G17 G90 DIAMOF;*GP*
G0 X0 Y45 ;*GP*
G3 I=AC(0) J=AC(35) ;*GP*
;CON,0,0.0000,1,1,MST:0,0,AX:X,Y,I,J,TRANS:1;*GP*;*RO*;*HD*
;S,EX:0,EY:45;*GP*;*RO*;*HD*
;ACCW,DIA:0/213,EX:0,EY:45,CX:0,RAD:10;*GP*;*RO*;*HD*
;#End contour definition end - Don't change!;*GP*;*RO*;*HD*
E_LAB_E_INSEL2:

N1620 E_LAB_A_INSEL3: ;#SM Z:2


;#7__DlgK contour definition begin - Don't
change!;*GP*;*RO*;*HD*
G17 G90 DIAMOF;*GP*
G0 X-45 Y0 ;*GP*
G3 I=AC(-35) J=AC(0) ;*GP*
;CON,0,0.0000,1,1,MST:0,0,AX:X,Y,I,J,TRANS:1;*GP*;*RO*;*HD*
;S,EX:-45,EY:0;*GP*;*RO*;*HD*
;ACCW,DIA:0/14,EX:-45,EY:0,CY:0,RAD:10;*GP*;*RO*;*HD*
;#End contour definition end - Don't change!;*GP*;*RO*;*HD*
E_LAB_E_INSEL3:

Notes:

A186 Page 56 840D sl SINUMERIK Operate


Transformations A186

Clamping in the machine:

The diagram shows the machine in position


G0 X35 Y0 Z0 Note:
with TRANSMIT(2) transformation active The geometrical clamping situation is precisely the same
(values of the rotary axis center C and work offset G54)
as in the first example.

XMCS=-500mm
CMCS=333.435°
YMCS=-32.295mm

Notes:

840D sl SINUMERIK Operate Page 57 A186


A186 Transformations

Data of the kinematic chain: $NK_NAME[COUNT1]="Y_AXIS"


$NK_NEXT[COUNT1]="C_CORR"
DEF iNT COUNT1=0 $NK_PARALLEL[COUNT1]=""
$NK_NAME[COUNT1]="ROOT" $NK_TYPE[COUNT1]="AXIS_LIN"
$NK_NEXT[COUNT1]="Y_OFFSET" $NK_OFF_DIR[COUNT1,0]=0
$NK_PARALLEL[COUNT1]="X_OFFSET" $NK_OFF_DIR[COUNT1,1]=-1
$NK_TYPE[COUNT1]="OFFSET" $NK_OFF_DIR[COUNT1,2]=0
$NK_OFF_DIR[COUNT1,0]=0 $NK_AXIS[COUNT1]="MY1"
$NK_OFF_DIR[COUNT1,1]=0 $NK_A_OFF[COUNT1]=0
$NK_OFF_DIR[COUNT1,2]=0 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_AXIS[COUNT1]="" $NK_SWITCH_POS[COUNT1]=0
$NK_A_OFF[COUNT1]=0 COUNT1=COUNT1+1
$NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0 $NK_NAME[COUNT1]=""
COUNT1=COUNT1+1 $NK_NEXT[COUNT1]=""
$NK_PARALLEL[COUNT1]=""
$NK_NAME[COUNT1]="Y_OFFSET" $NK_TYPE[COUNT1]=""
$NK_NEXT[COUNT1]="Y_AXIS" $NK_OFF_DIR[COUNT1,0]=0
$NK_PARALLEL[COUNT1]="" $NK_OFF_DIR[COUNT1,1]=0
$NK_TYPE[COUNT1]="OFFSET" $NK_OFF_DIR[COUNT1,2]=0
$NK_OFF_DIR[COUNT1,0]=0 $NK_AXIS[COUNT1]=""
$NK_OFF_DIR[COUNT1,1]=0 $NK_A_OFF[COUNT1]=0
$NK_OFF_DIR[COUNT1,2]=0 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_AXIS[COUNT1]="" $NK_SWITCH_POS[COUNT1]=0
$NK_A_OFF[COUNT1]=0 COUNT1=COUNT1+1
$NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1

$NK_NAME[COUNT1]="C_CORR" $NK_NAME[COUNT1]="C_AXIS"
$NK_NEXT[COUNT1]="C_OFFSET" $NK_NEXT[COUNT1]="END_PART_CHAIN_1"
$NK_PARALLEL[COUNT1]="" $NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="OFFSET" $NK_TYPE[COUNT1]="AXIS_ROT"
$NK_OFF_DIR[COUNT1,0]=0 $NK_OFF_DIR[COUNT1,0]=0
$NK_OFF_DIR[COUNT1,1]=0 $NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=0 $NK_OFF_DIR[COUNT1,2]=-1
$NK_AXIS[COUNT1]="" $NK_AXIS[COUNT1]="MC1"
$NK_A_OFF[COUNT1]=0 $NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0 $NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1 COUNT1=COUNT1+1

$NK_NAME[COUNT1]="C_OFFSET" $NK_NAME[COUNT1]="END_PART_CHAIN_1"
$NK_NEXT[COUNT1]="C_AXIS" $NK_NEXT[COUNT1]=""
$NK_PARALLEL[COUNT1]="" $NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="OFFSET" $NK_TYPE[COUNT1]="OFFSET"
$NK_OFF_DIR[COUNT1,0]=-500 $NK_OFF_DIR[COUNT1,0]=0
$NK_OFF_DIR[COUNT1,1]=-200 $NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=0 $NK_OFF_DIR[COUNT1,2]=0
$NK_AXIS[COUNT1]="" $NK_AXIS[COUNT1]=""
$NK_A_OFF[COUNT1]=0 $NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0 $NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1 COUNT1=COUNT1+1

Notes:

A186 Page 58 840D sl SINUMERIK Operate


Transformations A186

$NK_NAME[COUNT1]="" $NK_NAME[COUNT1]=""
$NK_NEXT[COUNT1]="" $NK_NEXT[COUNT1]=""
$NK_PARALLEL[COUNT1]="" $NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="" $NK_TYPE[COUNT1]=""
$NK_OFF_DIR[COUNT1,0]=0 $NK_OFF_DIR[COUNT1,0]=0
$NK_OFF_DIR[COUNT1,1]=0 $NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=0 $NK_OFF_DIR[COUNT1,2]=0
$NK_AXIS[COUNT1]="" $NK_AXIS[COUNT1]=""
$NK_A_OFF[COUNT1]=0 $NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0 $NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1 COUNT1=COUNT1+1

$NK_NAME[COUNT1]="" $NK_NAME[COUNT1]="X_OFFSET"
$NK_NEXT[COUNT1]="" $NK_NEXT[COUNT1]="X_AXIS"
$NK_PARALLEL[COUNT1]="" $NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="" $NK_TYPE[COUNT1]="OFFSET"
$NK_OFF_DIR[COUNT1,0]=0 $NK_OFF_DIR[COUNT1,0]=0
$NK_OFF_DIR[COUNT1,1]=0 $NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=0 $NK_OFF_DIR[COUNT1,2]=0
$NK_AXIS[COUNT1]="" $NK_AXIS[COUNT1]=""
$NK_A_OFF[COUNT1]=0 $NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0 $NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1 COUNT1=COUNT1+1

$NK_NAME[COUNT1]="X_AXIS" $NK_NAME[COUNT1]="Z_AXIS"
$NK_NEXT[COUNT1]="Z_OFFSET" $NK_NEXT[COUNT1]="SP1_OFFSET"
$NK_PARALLEL[COUNT1]="" $NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="AXIS_LIN" $NK_TYPE[COUNT1]="AXIS_LIN"
$NK_OFF_DIR[COUNT1,0]=1 $NK_OFF_DIR[COUNT1,0]=0
$NK_OFF_DIR[COUNT1,1]=0 $NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=0 $NK_OFF_DIR[COUNT1,2]=1
$NK_AXIS[COUNT1]="MX1" $NK_AXIS[COUNT1]="MZ1"
$NK_A_OFF[COUNT1]=0 $NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0 $NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1 COUNT1=COUNT1+1

$NK_NAME[COUNT1]="Z_OFFSET" $NK_NAME[COUNT1]="SP1_OFFSET"
$NK_NEXT[COUNT1]="Z_AXIS" $NK_NEXT[COUNT1]="SP1_AXIS"
$NK_PARALLEL[COUNT1]="" $NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="OFFSET" $NK_TYPE[COUNT1]="OFFSET"
$NK_OFF_DIR[COUNT1,0]=0 $NK_OFF_DIR[COUNT1,0]=0
$NK_OFF_DIR[COUNT1,1]=0 $NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=0 $NK_OFF_DIR[COUNT1,2]=0
$NK_AXIS[COUNT1]="" $NK_AXIS[COUNT1]=""
$NK_A_OFF[COUNT1]=0 $NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1 $NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0 $NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1 COUNT1=COUNT1+1

Notes:

840D sl SINUMERIK Operate Page 59 A186


A186 Transformations

$NK_NAME[COUNT1]="SP1_AXIS"
$NK_NEXT[COUNT1]="END_TOOL_CHAIN"
$NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="AXIS_ROT"
$NK_OFF_DIR[COUNT1,0]=0
$NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=-1
$NK_AXIS[COUNT1]="MSP1"
$NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1

$NK_NAME[COUNT1]="END_TOOL_CHAIN"
$NK_NEXT[COUNT1]=""
$NK_PARALLEL[COUNT1]=""
$NK_TYPE[COUNT1]="OFFSET"
$NK_OFF_DIR[COUNT1,0]=0
$NK_OFF_DIR[COUNT1,1]=0
$NK_OFF_DIR[COUNT1,2]=0
$NK_AXIS[COUNT1]=""
$NK_A_OFF[COUNT1]=0
$NK_SWITCH_INDEX[COUNT1]=-1
$NK_SWITCH_POS[COUNT1]=0
COUNT1=COUNT1+1

Definition of the protection areas: $NP_PROT_NAME[COUNT3]="X_LIN_PROT"


$NP_CHAIN_ELEM[COUNT3]="X_AXIS"
DEF INT COUNT3=0 $NP_PROT_TYPE[COUNT3]="MACHINE"
; $MN_MM_MAXNUM_3D_PROT_AREAS=25 $NP_1ST_PROT[COUNT3]="X_BOX_1"
$NP_PROT_NAME[COUNT3]="Y_LIN_PROT" $NP_PROT_COLOR[COUNT3]=-8388608
$NP_CHAIN_ELEM[COUNT3]="Y_AXIS" $NP_PROT_D_LEVEL[COUNT3]=0
$NP_PROT_TYPE[COUNT3]="MACHINE" $NP_BIT_NO[COUNT3]=-1
$NP_1ST_PROT[COUNT3]="Y_BOX_1" $NP_INIT_STAT[COUNT3]="A"
$NP_PROT_COLOR[COUNT3]=-16744256 $NP_INDEX[COUNT3,0]=0
$NP_PROT_D_LEVEL[COUNT3]=0 $NP_INDEX[COUNT3,1]=0
$NP_BIT_NO[COUNT3]=-1 $NP_INDEX[COUNT3,2]=0
$NP_INIT_STAT[COUNT3]="A" COUNT3=COUNT3+1
$NP_INDEX[COUNT3,0]=0
$NP_INDEX[COUNT3,1]=0 $NP_PROT_NAME[COUNT3]="Z_LIN_PROT"
$NP_INDEX[COUNT3,2]=0 $NP_CHAIN_ELEM[COUNT3]="Z_AXIS"
COUNT3=COUNT3+1 $NP_PROT_TYPE[COUNT3]="MACHINE"
$NP_1ST_PROT[COUNT3]="Z_CYL_1"
$NP_PROT_NAME[COUNT3]="ROOT_PROT" $NP_PROT_COLOR[COUNT3]=-16744448
$NP_CHAIN_ELEM[COUNT3]="ROOT" $NP_PROT_D_LEVEL[COUNT3]=0
$NP_PROT_TYPE[COUNT3]="MACHINE" $NP_BIT_NO[COUNT3]=-1
$NP_1ST_PROT[COUNT3]="ROOT_BOX_1" $NP_INIT_STAT[COUNT3]="A"
$NP_PROT_COLOR[COUNT3]=-16711936 $NP_INDEX[COUNT3,0]=0
$NP_PROT_D_LEVEL[COUNT3]=0 $NP_INDEX[COUNT3,1]=0
$NP_BIT_NO[COUNT3]=-1 $NP_INDEX[COUNT3,2]=0
$NP_INIT_STAT[COUNT3]="A" COUNT3=COUNT3+1
$NP_INDEX[COUNT3,0]=0
$NP_INDEX[COUNT3,1]=0
$NP_INDEX[COUNT3,2]=0
COUNT3=COUNT3+1

Notes:

A186 Page 60 840D sl SINUMERIK Operate


Transformations A186

$NP_PROT_NAME[COUNT3]="TOOL_PROT"
$NP_CHAIN_ELEM[COUNT3]="SP1_AXIS"
$NP_PROT_TYPE[COUNT3]="TOOL"
$NP_1ST_PROT[COUNT3]="__TOOL_00001_09998_01_0000"
$NP_PROT_COLOR[COUNT3]=0
$NP_PROT_D_LEVEL[COUNT3]=0
$NP_BIT_NO[COUNT3]=-1
$NP_INIT_STAT[COUNT3]="A"
$NP_INDEX[COUNT3,0]=1
$NP_INDEX[COUNT3,1]=9998
$NP_INDEX[COUNT3,2]=1
COUNT3=COUNT3+1

$NP_PROT_NAME[COUNT3]="C_PROT"
$NP_CHAIN_ELEM[COUNT3]="C_AXIS"
$NP_PROT_TYPE[COUNT3]="MACHINE"
$NP_1ST_PROT[COUNT3]="C_CYL_1"
$NP_PROT_COLOR[COUNT3]=-8388608
$NP_PROT_D_LEVEL[COUNT3]=0
$NP_BIT_NO[COUNT3]=-1
$NP_INIT_STAT[COUNT3]="A"
$NP_INDEX[COUNT3,0]=0
$NP_INDEX[COUNT3,1]=0
$NP_INDEX[COUNT3,2]=0
COUNT3=COUNT3+1

Definition of the collision bodies: $NP_NAME[COUNT4]="ROOT_BOX_1"


$NP_NEXT[COUNT4]="ROOT_BOX_2"
$NP_NEXTP[COUNT4]="ROOT_BOX_3"
$NP_ADD[COUNT4]=""
DEF INT COUNT4=0
$NP_COLOR[COUNT4]=0
; $MN_MM_MAXNUM_3D_PROT_AREA_ELEM=100
$NP_D_LEVEL[COUNT4]=0
$NP_NAME[COUNT4]="Y_BOX_1"
$NP_USAGE[COUNT4]="A"
$NP_NEXT[COUNT4]=""
$NP_TYPE[COUNT4]="BOX"
$NP_NEXTP[COUNT4]=""
$NP_FILENAME[COUNT4]=""
$NP_ADD[COUNT4]=""
$NP_PARA[COUNT4,0]=2000
$NP_COLOR[COUNT4]=0
$NP_PARA[COUNT4,1]=1800
$NP_D_LEVEL[COUNT4]=0
$NP_PARA[COUNT4,2]=250
$NP_USAGE[COUNT4]="A"
$NP_OFF[COUNT4,0]=0
$NP_TYPE[COUNT4]="BOX"
$NP_OFF[COUNT4,1]=200
$NP_FILENAME[COUNT4]=""
$NP_OFF[COUNT4,2]=-645
$NP_PARA[COUNT4,0]=1800
$NP_DIR[COUNT4,0]=0
$NP_PARA[COUNT4,1]=600
$NP_DIR[COUNT4,1]=0
$NP_PARA[COUNT4,2]=520
$NP_DIR[COUNT4,2]=0
$NP_OFF[COUNT4,0]=0
$NP_ANG[COUNT4]=0
$NP_OFF[COUNT4,1]=-100
COUNT4=COUNT4+1
$NP_OFF[COUNT4,2]=-260
$NP_DIR[COUNT4,0]=0
$NP_DIR[COUNT4,1]=0
$NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=0
COUNT4=COUNT4+1

Notes:

840D sl SINUMERIK Operate Page 61 A186


A186 Transformations

$NP_NAME[COUNT4]="ROOT_BOX_2" $NP_NAME[COUNT4]="ROOT_BOX_3"
$NP_NEXT[COUNT4]="ROOT_BOX_5" $NP_NEXT[COUNT4]="ROOT_BOX_4"
$NP_NEXTP[COUNT4]="" $NP_NEXTP[COUNT4]=""
$NP_ADD[COUNT4]="" $NP_ADD[COUNT4]=""
$NP_COLOR[COUNT4]=0 $NP_COLOR[COUNT4]=0
$NP_D_LEVEL[COUNT4]=0 $NP_D_LEVEL[COUNT4]=0
$NP_USAGE[COUNT4]="A" $NP_USAGE[COUNT4]="A"
$NP_TYPE[COUNT4]="BOX" $NP_TYPE[COUNT4]="BOX"
$NP_FILENAME[COUNT4]="" $NP_FILENAME[COUNT4]=""
$NP_PARA[COUNT4,0]=50 $NP_PARA[COUNT4,0]=2050
$NP_PARA[COUNT4,1]=1800 $NP_PARA[COUNT4,1]=380
$NP_PARA[COUNT4,2]=2400 $NP_PARA[COUNT4,2]=1750
$NP_OFF[COUNT4,0]=-1025 $NP_OFF[COUNT4,0]=-25
$NP_OFF[COUNT4,1]=0 $NP_OFF[COUNT4,1]=710
$NP_OFF[COUNT4,2]=1075 $NP_OFF[COUNT4,2]=1000
$NP_DIR[COUNT4,0]=0 $NP_DIR[COUNT4,0]=0
$NP_DIR[COUNT4,1]=0 $NP_DIR[COUNT4,1]=0
$NP_DIR[COUNT4,2]=0 $NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=0 $NP_ANG[COUNT4]=0
COUNT4=COUNT4+1 COUNT4=COUNT4+1

$NP_NAME[COUNT4]="ROOT_BOX_4" $NP_NAME[COUNT4]="X_BOX_1"
$NP_NEXT[COUNT4]="" $NP_NEXT[COUNT4]=""
$NP_NEXTP[COUNT4]="" $NP_NEXTP[COUNT4]=""
$NP_ADD[COUNT4]="" $NP_ADD[COUNT4]=""
$NP_COLOR[COUNT4]=0 $NP_COLOR[COUNT4]=0
$NP_D_LEVEL[COUNT4]=0 $NP_D_LEVEL[COUNT4]=0
$NP_USAGE[COUNT4]="A" $NP_USAGE[COUNT4]="A"
$NP_TYPE[COUNT4]="BOX" $NP_TYPE[COUNT4]="BOX"
$NP_FILENAME[COUNT4]="" $NP_FILENAME[COUNT4]=""
$NP_PARA[COUNT4,0]=2000 $NP_PARA[COUNT4,0]=400
$NP_PARA[COUNT4,1]=500 $NP_PARA[COUNT4,1]=70
$NP_PARA[COUNT4,2]=450 $NP_PARA[COUNT4,2]=460
$NP_OFF[COUNT4,0]=25 $NP_OFF[COUNT4,0]=0
$NP_OFF[COUNT4,1]=-440 $NP_OFF[COUNT4,1]=185
$NP_OFF[COUNT4,2]=650 $NP_OFF[COUNT4,2]=1005
$NP_DIR[COUNT4,0]=0 $NP_DIR[COUNT4,0]=0
$NP_DIR[COUNT4,1]=0 $NP_DIR[COUNT4,1]=0
$NP_DIR[COUNT4,2]=0 $NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=0 $NP_ANG[COUNT4]=0
COUNT4=COUNT4+1 COUNT4=COUNT4+1

Notes:

A186 Page 62 840D sl SINUMERIK Operate


Transformations A186

$NP_NAME[COUNT4]="Z_BOX_1" $NP_NAME[COUNT4]="Z_CYL_1"
$NP_NEXT[COUNT4]="" $NP_NEXT[COUNT4]="Z_BOX_1"
$NP_NEXTP[COUNT4]="" $NP_NEXTP[COUNT4]=""
$NP_ADD[COUNT4]="" $NP_ADD[COUNT4]=""
$NP_COLOR[COUNT4]=0 $NP_COLOR[COUNT4]=0
$NP_D_LEVEL[COUNT4]=0 $NP_D_LEVEL[COUNT4]=0
$NP_USAGE[COUNT4]="A" $NP_USAGE[COUNT4]="A"
$NP_TYPE[COUNT4]="BOX" $NP_TYPE[COUNT4]="CYLINDER"
$NP_FILENAME[COUNT4]="" $NP_FILENAME[COUNT4]=""
$NP_PARA[COUNT4,0]=380 $NP_PARA[COUNT4,0]=100
$NP_PARA[COUNT4,1]=300 $NP_PARA[COUNT4,1]=90
$NP_PARA[COUNT4,2]=1200 $NP_PARA[COUNT4,2]=0
$NP_OFF[COUNT4,0]=0 $NP_OFF[COUNT4,0]=0
$NP_OFF[COUNT4,1]=0 $NP_OFF[COUNT4,1]=0
$NP_OFF[COUNT4,2]=650 $NP_OFF[COUNT4,2]=50
$NP_DIR[COUNT4,0]=0 $NP_DIR[COUNT4,0]=0
$NP_DIR[COUNT4,1]=0 $NP_DIR[COUNT4,1]=0
$NP_DIR[COUNT4,2]=0 $NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=0 $NP_ANG[COUNT4]=0
COUNT4=COUNT4+1 COUNT4=COUNT4+1

$NP_NAME[COUNT4]="ROOT_BOX_5" $NP_NAME[COUNT4]="C_CYL_1"
$NP_NEXT[COUNT4]="" $NP_NEXT[COUNT4]=""
$NP_NEXTP[COUNT4]="" $NP_NEXTP[COUNT4]=""
$NP_ADD[COUNT4]="" $NP_ADD[COUNT4]=""
$NP_COLOR[COUNT4]=0 $NP_COLOR[COUNT4]=0
$NP_D_LEVEL[COUNT4]=0 $NP_D_LEVEL[COUNT4]=0
$NP_USAGE[COUNT4]="A" $NP_USAGE[COUNT4]="A"
$NP_TYPE[COUNT4]="BOX" $NP_TYPE[COUNT4]="CYLINDER"
$NP_FILENAME[COUNT4]="" $NP_FILENAME[COUNT4]=""
$NP_PARA[COUNT4,0]=1000 $NP_PARA[COUNT4,0]=50
$NP_PARA[COUNT4,1]=1800 $NP_PARA[COUNT4,1]=250
$NP_PARA[COUNT4,2]=500 $NP_PARA[COUNT4,2]=0
$NP_OFF[COUNT4,0]=-525 $NP_OFF[COUNT4,0]=0
$NP_OFF[COUNT4,1]=0 $NP_OFF[COUNT4,1]=0
$NP_OFF[COUNT4,2]=500 $NP_OFF[COUNT4,2]=25
$NP_DIR[COUNT4,0]=0 $NP_DIR[COUNT4,0]=0
$NP_DIR[COUNT4,1]=0 $NP_DIR[COUNT4,1]=0
$NP_DIR[COUNT4,2]=0 $NP_DIR[COUNT4,2]=0
$NP_ANG[COUNT4]=0 $NP_ANG[COUNT4]=0
COUNT4=COUNT4+1

Notes:

840D sl SINUMERIK Operate Page 63 A186


A186 Transformations

Definition der Kollisionspaare:

DEF INT COUNT5=0


; $MN_MM_MAXNUM_3D_COLL_PAIRS=30
$NP_COLL_PAIR[COUNT5,0]=""
$NP_COLL_PAIR[COUNT5,1]=""
$NP_SAFETY_DIST[COUNT5]=0
COUNT5=COUNT5+1

$NP_COLL_PAIR[COUNT5,0]="TOOL_PROT"
$NP_COLL_PAIR[COUNT5,1]="C_PROT"
$NP_SAFETY_DIST[COUNT5]=0
COUNT5=COUNT5+1

$NP_COLL_PAIR[COUNT5,0]="Z_LIN_PROT"
$NP_COLL_PAIR[COUNT5,1]="Y_LIN_PROT"
$NP_SAFETY_DIST[COUNT5]=0
COUNT5=COUNT5+1

$NP_COLL_PAIR[COUNT5,0]="Z_LIN_PROT"
$NP_COLL_PAIR[COUNT5,1]="C_PROT"
$NP_SAFETY_DIST[COUNT5]=0
COUNT5=COUNT5+1

$NP_COLL_PAIR[COUNT5,0]="Z_LIN_PROT“
$NP_COLL_PAIR[COUNT5,1]="ROOT_PROT"
$NP_SAFETY_DIST[COUNT5]=0

Notes:

A186 Page 64 840D sl SINUMERIK Operate


Transformations A186

Notes:

840D sl SINUMERIK Operate Page 65 A186


A186 Transformations

Appendix

TRAORI STAT:
2 rotary axes in the workpiece
1 rotary axis in the tool

$NT_NAME[n]

$NT_CLOSE_CHAIN_T[n]

$NT_CLOSE_CHAIN_P[n]

Further system data:

$NT_CNTRL[n]=2097282 ;Bit: 00000000001000000000000010000010


$NT_ROT_AX_CNT[n,0]=2 ;2 rotary axes in the part chain
$NT_ROT_AX_CNT[n,1]=1 ;1 rotary axis in the tool chain

Notes:

A186 Page 66 840D sl SINUMERIK Operate


Transformations A186

TRAORI STAT:
1 rotary axis in the workpiece
2 rotary axes in the tool

$NT_NAME[n]

$NT_CLOSE_CHAIN_T[n]

$NT_CLOSE_CHAIN_P[n]

Further MD:

$NT_CNTRL[n]=2097154
$NT_ROT_AX_CNT[n,0]=1 ;1 rotary axis in the part chain
$NT_ROT_AX_CNT[n,1]=2 ;2 rotary axes in the tool chain

Notes:

840D sl SINUMERIK Operate Page 67 A186


A186 Transformations

TRAORI:
2 rotary axes in the workpiece
0 rotary axes in the tool

TRAORI:
0 rotary axes in the workpiece
2 rotary axes in the tool

Notes:

A186 Page 68 840D sl SINUMERIK Operate


Transformations A186

TRAORI:
1 rotary axis in the workpiece
1 rotary axis in the tool

TRANSMIT:

Notes:

840D sl SINUMERIK Operate Page 69 A186


A186 Transformations

TRACYL:

Notes:

A186 Page 70 840D sl SINUMERIK Operate


Transformations A186

Description of variables $NT_CNTRL:

For different transformations, variable $NT_CNTRL has a


different significance. The variable is bit coded.

Description $NT_CNTRL for TRAORI_DYN and TRAORI_STAT:

Bit Description
0 Not used

1 First orientation axis of the transformation is a speed–controlled spindle

2 Second orientation axis of the transformation is a speed–controlled spindle

3 Third orientation axis of the transformation is a speed–controlled spindle

4 First orientation axis of the transformation is with Hirth gearing

5 Second orientation axis of the transformation is with Hirth gearing

6 Third orientation axis of the transformation is with Hirth gearing

7 Part chain: automatic closing of the chain is active

8 Tool chain: automatic closing of the chain is active

9 Not used

10 Not used

11 Not used

12 Reserved for OEM transformation

13 Reserved for OEM transformation

14 Reserved for OEM transformation

15 Reserved for OEM transformation

16 Not used

17 Not used

18 Not used

19 Not used

20 Not used
0: redundant rotary axes do not output an alarm if they are moved when a transformation is active
1: redundant rotary axes output an alarm if they are moved when a transformation is active
21

Notes:

840D sl SINUMERIK Operate Page 71 A186


A186 Transformations

Description of $NT_CNTRL for TRANSMIT

Bit Description
0 Not used
1 Not used
2 Not used
3 Not used
4 Not used
5 Not used
6 Not used
7 Not used
8 Not used
0: no center offset linear axis being used (compensating axis)
9
1: center offset linear axis is being used (compensating axis)
10 Not used
11 Inverts the direction of rotation of the rotary axis
12 Reserved for OEM transformation
13 Reserved for OEM transformation
14 Reserved for OEM transformation
15 If bit 15 = 1, then the last element of the tool chain must be a rotary axis or a constant rotation.
16 Coding for the sequence of geometry axes, see Table 1
17 Coding for the sequence of geometry axes, see Table 1
18 Coding for the sequence of geometry axes, see Table 1
1: The last element of the kinematic chain is a rotary axis or a constant rotation. The Z axis of the WCS
19
is obtained from the direction vector of the rotary axis
20 If bit 19 = 1 and bit 20 = 1: The direction of the Z axis of the WCS is inverted.
0: redundant rotary axes do not output an alarm if they are moved when the transformation is active
21
1: redundant rotary axes output an alarm if they are moved when the transformation is active

Notes:

A186 Page 72 840D sl SINUMERIK Operate


Transformations A186

Table 1:
A decimal number with a value from 0 to 5 is calculated from bits 16, 17 and 18 . The
sequence of the geometry axes (= emulation of the geometry axes on the
transformation) is assigned based on the following table:

First Second Third


Decimal value
Geo axis Geo axis Geo axis
0 X Y Z
1 Z X Y
2 Y Z X
3 Z Y X
4 X Z Y
5 Y X Z

Example:
Combination YXZ should be used. According to the table, the decimal value should be = 5.
5=4+1, and therefore:
Bit 16=1 ; delivers decimal 1
Bit 17=0 ; delivers decimal 0
Bit 18=1 ; delivers decimal 4

Notes:

840D sl SINUMERIK Operate Page 73 A186


A186 Transformations

Description of $NT_CNTRL for TRACYL

Bit Description
0 Not used
1 Not used
2 Not used
3 Not used
4 Not used
5 Not used
6 Not used
7 Not used
8 Not used
9 Configuration of the Tracyl property with/without groove side compensation, see Table 2
10 Configuration of the Tracyl property with/without groove side compensation, see Table 2
11 Inverts the direction of rotation of the rotary axis
12 Reserved for OEM transformation
13 Reserved for OEM transformation
14 Reserved for OEM transformation
15 If bit 15 = 1, then the last element of the tool chain must be a rotary axis or a constant rotation.
16 Coding of the sequence of the geometry axes, see Table 1
17 Coding of the sequence of the geometry axes, see Table 1

18 Coding of the sequence of the geometry axes, see Table 1


1: The last element of the kinematic chain is a rotary axis or a constant rotation. The Z axis of the WCS
19
is obtained from the direction vector of the Z axis
20 If bit 19 = 1 and bit 20 = 1: The direction of the Z axis of the WCS is inverted.

0: redundant rotary axes do not output an alarm if they are moved with the transformation active
21
1: redundant rotary axes output an alarm if they are moved with the transformation active

Table 1 can be taken from the previous chapter TRANSMIT.


Table 2 provides an overview of the configuration of the groove side compensation:

Bit 10 Bit 9
0 0 Tracyl without groove side compensation
0 1 Tracyl with groove side compensation
Tracyl with groove side compensation that can be activated; when switched on: groove
1 0
side compensation is not active
Tracyl with groove side compensation that can be activated; when switched on: groove
1 1
side compensation is active

Notes:

A186 Page 74 840D sl SINUMERIK Operate


Transformations A186

Notes:

840D sl SINUMERIK Operate Page 75 A186


A186 END Transformations

A186: END

Notes:

A186 Page 76 840D sl SINUMERIK Operate

You might also like