Requesting axes (#AX REQUEST)
The following NC command requests axes from the axis management.
Syntax: |
#AX REQUEST [NAM, NBR, IDX] [<axis_exchange_sequence> {,<options>} ] { [<axis exchange sequence> {,<options>} ] } |
NAM, NBR, IDX | Logic switches for handling conflicts: NAM: Handling redundant axis names NBR: Handling redundant axis numbers IDX: Handling redundant axis indices |
Notice
Logic switches can be programmed individually or in combination.
<axis_exchange_sequence> consisting of: |
|
<axis_name> | The permissible strings for axis designation start with the letters A, B, C, Q, U, V, W, X, Y and Z. |
Notice
In case of conflicts within the programmed axis exchange sequence:
Redundant axis names → ERROR, program abort
In case of conflicts with existing axes in the NC channel:
Identical axis names, different axis numbers → ERROR, program abort
If logic switch NAM is set, a conflict is resolved as follows:
The axis receives the default axis name from its axis parameter list P-AXIS-00297. The user must ensure a clear definition of the default axis name in the list.
<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. |
Notice
In case of conflicts within the programmed axis exchange sequence:
Redundant axis numbers → ERROR, program abort
In case of conflicts with existing axes in the NC channel:
Axis number already exists in NC channel → WARNING
If the logic switch NBR is set, a conflict is resolved as follows:
The axis request is ignored, i.e. it is not executed.
<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. 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
To make programming easier, the axis index input can be left empty for tacking axes. 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 transformational axes must be arranged after the main axes with no gaps in the case of kinematic transformation (RTCP). In such cases, it is then necessary to program the axis index explicitly for the tracking axes.
Notice
In case of conflicts within the programmed axis exchange sequence:
Redundant axis numbers → ERROR, program abort
In case of conflicts with existing axes in the NC channel:
Axis index is already assigned in the NC channel, different axis → ERROR, program abort.
If the logic switch IDX is set, a conflict is resolved as follows:
The next free index in the axis configuration of the NC channel is automatically determined for the axis.
<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 the exception of tool offsets, all other offsets are always attached to the logical axis number on axis release or request.
Attention
* In the case of #AX REQUEST, it only makes sense to adopt tool offsets when the tool is deselected. As soon as a tool is active in the channel or if it is selected with #AX REQUEST after replacement, the adopted tool offsets are replaced with the offsets of the current tool.
It is therefore recommended to execute #AX REQUEST 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.
Example
Using standard functionality:
Assigning 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
Requesting axes
N10 #AX REQUEST [X1,7,4] ;Request X1 axis
Assign axis names, logical axis numbers and axis indices after an 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 #AX REQUEST [Y1,8,6] [C,9, ] ;Request Y1 and C axis,
; C axis is set automatically
; to index 3
Assigning 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 #AX REQUEST FAST [Z1,13,5, ALL] ;Adopt all offsets
N1010 #AX REQUEST [C1,11,7, NPV MOFFS] ;Adopt zero
;offset and measuring offset
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 |
Example 2:
Use the additional syntax (logic switches):
Assigning axis names, logical axis numbers and axis indices at program start in channel 1:
Axis identifier | Logical axis number | Axis index |
X | 1 | 0 |
Y | 2 | 1 |
Z | 3 | 2 |
Assigning axis names, logical axis numbers and axis indices at program start in channel 2:
Axis identifier | Logical axis number | Axis index |
X | 7 | 0 |
Y | 8 | 1 |
Z | 9 | 2 |
Programing Example
In channel 1: Request X and Y axes from channel 2 (logical axis numbers 7 and 8).
N10 #AX REQUEST NAM [X,7,3] [Y,8,4] ;Request X/Y axes
Due to the logic switch NAM, the new additional axes X and Y in channel 1 are assigned their default names in the axis lists (e.g. X2 and Y2).
Assigning axis names, logical axis numbers and axis indices after axis requests:
Axis identifier | Logical axis number | Axis index |
X | 1 | 0 |
Y | 2 | 1 |
Z | 3 | 2 |
X2 | 7 | 3 |
Y2 | 8 | 4 |
Programming example continued:
In channel 1: Request Z axis from channel 2 (logical axis number 9).
N100 #AX REQUEST NAM IDX [Z,9,2] ;Request Z axis
Due to the logic switches NAM and IDX, the new additional Z axis in channel 1 is adopted in the next free index (e.g. index 5) together with its default name in the axis list (e.g. Z2).
Assigning 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 |
X2 | 7 | 3 |
Y2 | 8 | 4 |
Z2 | 9 | 5 |
Example 3:
Use the additional syntax (logic switches and axis exchange sequences in string format):
Assigning axis names, logical axis numbers and axis indices at program start in channel 1:
Axis identifier | Logical axis number | Axis index |
X | 1 | 0 |
Y | 2 | 1 |
Z | 3 | 2 |
Assigning axis names, logical axis numbers and axis indices at program start in channel 2:
Axis identifier | Logical axis number | Axis index |
X_1 | 7 | 0 |
Y | 8 | 1 |
Z | 9 | 2 |
A | 10 | 3 |
B | 11 | 4 |
Programing Example
In channel 1: Request X_1/ Y and B axis from channel 2 (logical axis numbers 7, 8 and 11). The axis exchange sequence is stored in a macro.
N05 "ACHSEN_KANAL2" = "[X_1,7,0] [Y,8,1] [B,11,2]"
:
N10 #AX REQUEST NAM IDX "ACHSEN_KANAL2" ;Request axes
Due to the logic switches NAM and IDX, the new additional axes in channel 1 are adopted correctly.
Assigning axis names, logical axis numbers and axis indices after axis requests:
Axis identifier | Logical axis number | Axis index |
X | 1 | 0 |
Y | 2 | 1 |
Z | 3 | 2 |
X_1 | 7 | 3 |
Y2 | 8 | 4 |
B | 11 | 5 |