# Requesting axes (#CALL AX)

## Notice

If an axis which is already present in the axis group of the NC channel is requested, no request is triggered for this axis.

The following NC command requests axes from the axis management.

Syntax:
#CALL AX [<mode>] [<axis_name>,<axis_number>,<axis_index> {,<options>} ] { [<axis_name>,<axis_number>,<axis_index> {,<options>} ] }

<mode> | With/without request for axis positions from the interpolator and a position initialisation of the NC channel when axes are replaced. ---: With request for setpoint values from the interpolator and a position initialisation of the NC channel (default).

FAST: Without request for setpoint values from the interpolator. Position initialisation of the NC channel.

<axis_name> | The permissible strings for axis designation start with the letters A, B, C, Q, U, V, W, X, Y and Z. The multiple assignment of the same designation for several axes (identification by logical axis number) generates an error message and the NC program is aborted.
<axis_number> | The physical assignment of axes takes place via the logical axis number. Mathematical expressions are permissible. The logical axis number must be known in the axis management. If an unknown logical axis number or several identical logical axis numbers are requested, it results in an error message and the NC program is aborted.
<axis_index> | The axis index defines the location of the axis inside the axis group of the NC channel. It then defines the main and the tracking axes (see the table below). Mathematical expressions are permissible if their results are within the range [0... maximum axis number -1]. The axis index may not yet be assigned an axis. If a request is made for an index that is already assigned a different axis, it results in an error message and the NC program is aborted.

0: 1st main axis in the machining plane.

1: 2nd main axis in the machining plane.

2: 3rd main axis generally perpendicular to the machining plane.

3: 1st tracking axis.

...n_ (n-2) tracking axis.

## Attention

In order to simplify programming, it is possible to leave the specification of an axis index empty for tracking axes (only with #CALL AX...). In this case, the next free axis index after index 3 is then assigned automatically to this tracking axis.

With main axes the index must always be specified explicitly.

However, it must be noted that the index of a tracking axis is important with regard to various functionalities. For example, all transformation axes must be arranged with no gaps after the main axes in the case of kinematic transformation (RTCP). In such cases, it is then necessary to program the axis index explicitly for the tracking axes.

<options> | Offsets are kept axis-specific. The adoption of different offsets can be controlled for requesting axes using the following keywords: ---: No adoption of offsets (default) ALL: Adopt all offsets * BPV: Adopt reference point offset PZV: Adopt clamping offset

WZV: Adopt tool offset *

NPV: Adopt zero offset

MOFFS: Adopt measuring offset

SOFFS: Adopt command value/manual mode offset

PSET: Adopt actual value offset

## Notice

With exception of tool offsets, all other offsets are always attached to the logical axis number an axis release or request (see programming example "Zero_offset" below).

## Attention

* With #CALL AX, adoption of tool offsets only makes sense when the tool is deselected. As soon as a tool is active in the channel or if it is selected with #CALL AX after replacement, the adopted tool offsets are replaced with the offsets of the current tool.

It is therefore recommended to execute #CALL AX when a tool is deselected.

When a tool is selected, please note that the offsets are always included in the axis calculations depending on the sequence indexed in the tool data.

## Programing Example

Requesting axes

%Zero_Offset

N010 X200

N015 G54

N015 V.G.NP_AKT.V.X = 11

N016 X0 (Machine X axis end position is 11)

N020 #PUT AX [X] (Release axis X with log. axis no. 1)

.....

N130 #CALL AX [X1,1.0,NPV] (Log. axis no. 1 under new name X1)

N140 X1=100 (End position of machine X1 axis is 111)

M30

Example:

Assign axis names, logical axis numbers and axis indices at program start:

Axis identifier | Logical axis number | Axis index
X | 1 | 0
Y | 2 | 1
Z | 3 | 2

## Programing Example

%Achstausch1

N10 #CALL AX FAST [X1,7,4] (X1 axis without request for command values)

(and output of init. function block)

Assign axis names, logical axis numbers and axis indices after the axis request:

Axis identifier | Logical axis number | Axis index
X | 1 | 0
Y | 2 | 1
Z | 3 | 2
|  | 3
X1 | 7 | 4

Programming example continued:

:

N100 #CALL AX [Y1,8,6] [C,9, ] ;Request Y1 and C axis, axis index

;of C axis is determined automatically

Assign axis names, logical axis numbers and axis indices after second axis request:

Axis identifier | Logical axis number | Axis index
X | 1 | 0
Y | 2 | 1
Z | 3 | 2
C | 9 | 3
X1 | 7 | 4
|  | 5
Y1 | 8 | 6

Programming example continued:

:

N1000 #CALL AX FAST [Z1,13,5,ALL] (Adopt all offsets)

N1010 #CALL AX [C1,11,7,NPV MOFFS] (Adopt zero)

(and measuring offsets)

Assign axis names, logical axis numbers and axis indices after third axis request:

Axis identifier | Logical axis number | Axis index
X | 1 | 0
Y | 2 | 1
Z | 3 | 2
C | 9 | 3
X1 | 7 | 4
Z1 | 13 | 5
Y1 | 8 | 6
C1 | 11 | 7