# Status information of an axis

Axis state (PCS)
Description | Axis state, PCS
Signal flow | CNC → PLC
ST path | gpCh[channel_idx]^.bahn_state.coord_r[axis_idx].state_r
Data type | UINT
Value range | Value | PLC constant | Meaning
1 | HLI_AXIS_READY | The axis is ready and moves according to the specified command values after a command.
3 | HLI_AXIS_ACTIVE | The axis is currently moved by the CNC due to an NC command or manual mode.
5 | HLI_AXIS_HOLD | Axis cannot be moved by the CNC since feedhold is set.
Access | PLC is reading

Axis state (ACS)
Description | Axis state, ACS
Signal flow | CNC → PLC
ST path | gpAx[axis_idx]^.lr_state.axis_state_r
Data type | UINT
Value range | Value | PLC constant | Meaning
1 | HLI_AXIS_READY | The axis is ready and moves according to the specified command values after a command.
3 | HLI_AXIS_ACTIVE | The axis is currently moved by the CNC due to an NC command or manual mode.
5 | HLI_AXIS_HOLD | The CNC cannot move the axis because an external signal is set, such as feedhold or tracking mode, or the required drive enables are missing.
7 | HLI_AXIS_ERROR | After an error (in the drive or CNC, e.g. a software limit switch violation) the axis is in error state. Commanding a new motion is only possible after a CNC reset.
Access | PLC is reading
Special features | Even if an axis is not moved in the PCS, a corresponding Cartesian or kinematic transformation may nevertheless execute a motion of the physical axis. Example: 90° rotation about Z; Y is moved if X is programmed.

Synchronisation state, axis
Description | State of an axis that participates in the synchronisation of a slave axis to a master axis. Due to its configuration the slave axis execute superimposed motions by means of a single axis interpolator. A typical application is the synchronisation of a slave axis to a conveyor belt.
Signal flow | CNC → PLC
ST path | gpCh[channel_idx]^.bahn_state.coord_r[axis_idx].conv_sync_state_r
Data type | USINT
Value range | Value | PLC constant | Meaning
0 | HLI_CONV_SYNC_STATE_IDLE | No synchronisation motion is executed.
1 | HLI_CONV_SYNC_STATE_WAIT | Axis waits for the start of the synchronisation motion.
2 | HLI_CONV_SYNC_STATE_LINKED | Slave axis is synchronous with the conveyor belt.
3 | HLI_CONV_SYNC_STATE_SYNC_IN | Clave axis is synchronised with the conveyor belt position.
4 | HLI_CONV_SYNC_STATE_SYNC_OUT | Axis releases synchronisation to the conveyor belt and stops at the programmed position.
5 | HLI_CONV_SYNC_STATE_STOP | Axis releases synchronisation to the conveyor belt and stops.
6 | HLI_CONV_SYNC_STATE_SYNC_IN_TIME | Master axis stops and slave axis is interpolated over time.
7 | HLI_CONV_SYNC_STATE_ERROR | Axis is in error state.
8 | HLI_CONV_SYNC_STATE_FORCE_SYNC_ERROR | User forced an error.
Access | PLC is reading

Distance to go (PCS)
Description | Distance to go in the current NC block, difference between target position and command position.
Signal flow | CNC → PLC
ST path | gpCh[channel_idx]^.bahn_state.coord_r[axis_idx].dist_to_go_r
Data type | DINT
Unit | 0.1 µm
Access | PLC is reading

Homing done (PCS)
Description | The axis completed homing successfully and is now referenced.
Signal flow | CNC → PLC
ST path | gpCh[channel_idx]^.bahn_state.coord_r[axis_idx].homing_done_r
Data type | BOOL
Value range | [TRUE = axis is referenced, FALSE]
Access | PLC is reading

Homing done (ACS)
Description | The axis completed homing successfully and is now referenced.
Signal flow | CNC → PLC
ST path | gpAx[axis_idx]^.lr_state.homing_done_r
Data type | BOOL
Value range | [TRUE = axis is referenced, FALSE]
Access | PLC is reading

position lag
Description | Current position lag of the axis, difference between command position and actual position.
Signal flow | CNC → PLC
ST path | gpAx[axis_idx]^.lr_state.following_error_r
Data type | DINT
Unit | 0.1 µm
Access | PLC is reading

Axis in control window
Description | The axis is located in the control window, i.e. the amount of position lag is less than the current effective position window (P-AXIS-00236 or P-AXIS-00472).
Signal flow | CNC → PLC
ST path | gpAx[axis_idx]^.lr_state.in_window_r
Data type | BOOL
Value range | [TRUE = axis is located in control window, FALSE]
Access | PLC is reading

Axis in position
Description | The axis is located in position, i.e. the control window is reached (see above) and the axis is not interpolated.
Signal flow | CNC → PLC
ST path | gpAx[axis_idx]^.lr_state.in_position_r
Data type | BOOL
Value range | [TRUE = Axis in position, FALSE]
Access | PLC is reading

Axis is moved
Description | The axis is currently co-used for the programmed path motion.
Signal flow | CNC → PLC
ST path | gpAx[axis_idx]^.lr_state.is_moved_r
Data type | BOOL
Value range | [TRUE = Axis is moved, FALSE]
Access | PLC is reading

Axis is moving
Description | The axis moves, i.e. a command value is generated for this axis for the current interpolation.
Signal flow | CNC → PLC
ST path | gpAx[axis_idx]^.lr_state.is_moving_r
Data type | BOOL
Value range | [TRUE = Axis is traversed, FALSE]
Access | PLC is reading
Special features | If an axis is traversed, e.g. at a very low feed rate in the NC program, the axis is considered as moved for the complete path motion. However, it may not receive a new command position in every cycle due to quantisation. This means that the display “Axis is traversed” is not indicated in each cycle.

Similarly, the axis is considered as traversed if override = 0 (traverse at velocity 0). By contrast, no velocity is commanded in the case of a FEEDHOLD, i.e. the axis is considered as not traversed.

Axis is moving forward
Description | The last output setpoint generated led to a positive direction of motion.
Signal flow | CNC → PLC
ST path | gpAx[axis_idx]^.lr_state.is_moving_forward_r
Data type | BOOL
Value range | [TRUE = Axis is moving forward, FALSE]
Access | PLC is reading
Special features | This state display is unable to detect whether the axis is actually moving. Instead, use the state information gpAx[axis_idx]^.lr_state.is_moving_r.

Control unit enable, state
Description | Indicates whether control unit is enabled for the axis.
Signal flow | CNC → PLC
ST path | gpAx[axis_idx]^.lr_state.control_loop_enabled_r
Data type | BOOL
Value range | [TRUE = Control unit enabled for axis, FALSE = No control unit enable. Axis cannot be moved by the CNC.]
Access | PLC is reading

Block number
Description | Current block number of active NC block
Signal flow | CNC → PLC
ST path | gpAx[axis_idx]^.lr_state.block_nr_r
Data type | DINT
Access | PLC is reading

Axis supply
Description | The command of the physical axes is executed by the logical axis specified in the NC channel.
Signal flow | CNC → PLC
ST path | gpAx[axis_idx]^.lr_state.link_to_ipo_r
Data type | UINT
Value range | [= 0 – not linked, > 0 – logical axis number]
Access | PLC is reading

Cyclic drive cyclic values are valid
Description | The actual values supplied by the drive to the cyclic process data are valid. This signal is reset if the control unit is active and the cyclic transfer of process data is interrupted.
Signal flow | CNC → PLC
ST path | gpAx[axis_idx]^.lr_state.cyclic_drive_data_ok_r
Data type | BOOL
Value range | [TRUE = Process data is valid, FALSE]
Access | PLC is reading
Special features | This signal is dependent on the drive type as follows: SERCOS II: Signal is TRUE if the phase of the SERCOS ring is 4 and at least one of the bits 0x4000 or 0x8000 is set in the drive status word. SERCOS over EtherCAT: Signal is TRUE if the process datum WcState is 0 and at least one of the bits 0x4000 or 0x8000 is set in the drive status word.

CANopen: Signal is TRUE if the process datum WcState is 0 and the drive status word contains a valid status according to the CANopen DS402 specification.

PROFIBUS: Signal is TRUE if the life counter sign of the PROFIBUS slave is running.

For all other drive types, the signal is set to TRUE immediately after CNC start-up.

Configured axis mode
Description | The axis mode configured in the axis parameter list (P-AXIS-00015) is indicated.
Signal flow | CNC →PLC
ST path | gpAx[axis_idx]^.lr_state.axis_mode_r
Data type | UDINT
Value range | See description of axis parameter P-AXIS-00015..
Access | PLC is reading

Axis number of gantry master axis
Description | If the axis is a gantry slave axis, the logical axis number of the master axis in this element (see P-AXIS-00070) is indicated; otherwise 0.
Signal flow | CNC → PLC
ST path | gpAx[axis_idx]^.lr_state.gantry_master_nr_r
Data type | UINT
Access | PLC is reading

Axis assignment
Description | The display shows the physical axes to which the commanded values of the logical axes are of the channel output.
Signal flow | CNC → PLC
ST path | gpAx[axis_idx]^.ipo_state.link_to_lr
Data type | UINT
Value range | [= 0 – not linked, > 0 – logical axis number]
Access | PLC is reading

Axis-specific interpolator, state
Description | This element indicates various states of the axis-specific interpolator. The states are bit-encoded and may be active at the same time.
Signal flow | CNC → PLC
ST path | gpAx[axis_idx]^.ipo_state.internal_ipo_state_r
Data type | UDINT
Special features | The element is a bit string. Several states are therefore displayed at the same time.
Value range | The assignment of bits to states is listed in the table below.
Access | PLC is reading

PLC constant | Value | Meaning
HLI_AX_INDP_INTERPOLATION | 16#00000002 | This is an independent axis for which setpoints are generated.
HLI_AX_INDP_M_FUNC_PENDING | 16#00000004 | This is an independent axis which waits for acknowledgement of at least one technology function (M, H, S).
HLI_AX_INDP_ERROR | 16#00000008 | An error occurred in an independent axis.
HLI_AX_INDP_TIME_INTERPOLATION | 16#00000010 | Dwell time is active for an independent axis.
HLI_AX_MAN_MV_BACK_TO_START | 16#00000020 | Axis is moved because it received the command to reduce to 0 the position offset accumulated by motion in manual mode.
HLI_AX_MAN_MV_BACK_WAIT_STOP | 16#00000040 | The motion to reduce the position offset to 0 and which was generated by a motion of the axis in manual mode was interrupted and the axis is still in the deceleration phase to standstill.
HLI_AX_TRANSM_TO_PLC_IMPOSSIBLE | 16#00040000 | This is an independent axis where the axis-specific interface is assigned to output technology functions.
HLI_AX_FEEDHOLD | 16#001000000 | Axis-specific feedhold is active.

States of the axis-specific interpolator

Type of axis coupling
Description | This indicates whether the axis is a slave axis in an axis coupling; see also [PROG//#AXIS LINK].
Signal flow | CNC → PLC
ST path | gpAx[axis_idx]^.ipo_state.axis_link_mode_r
Data type | INT
Value range | Value | PLC constant | Meaning
-1 | HLI_AXIS_LINK_NONE | No axis coupling active for this axis
0 | HLI_AXIS_LINK_NORMAL | The axis is a slave axis of an axis coupling
1 | HLI_AXIS_LINK_SPDL | The axis is a slave axis of a spindle coupling
2 | HLI_AXIS_LINK_GANTRY | The axis is a slave axis of a soft gantry combination
3 | HLI_AXIS_LINK_MIRROR | The axis is a slave axis of an axis coupling; the axis motion mirrors the master axis
Access | PLC is reading
Special features | The indicated axis coupling in only active when a master axis number is indicated at the same time.

Axis number of master axis when axis coupling is active
Description | When the axis is coupled to a master axis (see [PROG//#AXIS LINK]) the logical axis number of the master axis is indicated here.
Signal flow | CNC → PLC
ST path | gpAx[axis_idx]^.ipo_state.ax_link_master_ax_nr
Data type | UINT
Value range | 0 : No coupling active > 0: logical axis number of the master axis
Access | PLC is reading

Axis type (ACS))
Description | The configured axis type (P-AXIS-00018) is indicated.
Signal flow | CNC → PLC
ST path | gpAx[axis_idx]^.ipo_state.type_r
Data type | UINT
Value range | Value | Meaning
0x0001 | Linear axis
0x0002 | Rotary axis
0x0004 | Spindle
Access | PLC is reading
Special features | Is currently not programmed

Lift function is active
Description | This data item indicates whether a lift function is active or not. An active lift function is associated with execution of a lift movement.
Signal flow | CNC->PLC
ST path | gpAx[axis_idx]^.ipo_state.lift_active
Data type | BOOL
Value range | TRUE = Lift function is active FALSE = Lift function is not active
Access | PLC is reading

Lift movement is suppressed
Description | This data item indicates whether a lift movement is suppressed. This is always the case when the programmed minimum path distance P-CHAN-00244 is not reached.
Signal flow | CNC->PLC
ST path | gpAx[axis_idx]^.ipo_state.lift_suppressed
Data type | BOOL
Value range | TRUE = Lift movement is suppressed FALSE = Lift movement is not suppressed.
Access | PLC is reading
Special feature | The following special case of the status display occurs when you use “Advanced Lifting”: If the lift movement is suppressed due to insufficient travel distance and a target position of the Z axis is programmed at the same time, the lift function is active in order to be able to approach the target position of the Z-axis.
In this case, the status of the lift function is simultaneously displayed as “active” and “suppressed”.

Axis is moved
Description | The axis is currently co-used for the programmed path motion.
Signal flow | CNC → PLC
ST path | gpAx[axis_idx]^.ipo_state.is_moved_r
Data type | BOOL
Value range | [TRUE = Axis is moved, FALSE]
Access | PLC is reading

Axis is moving
Description | The axis moves, i.e. a command value is generated for this axis for the current interpolation.
Signal flow | CNC → PLC
ST path | gpAx[axis_idx]^.ipo_state.is_moving_r
Data type | BOOL
Value range | [TRUE = Axis is traversed, FALSE]
Access | PLC is reading
Special features | If an axis is traversed, e.g. at a very low feed rate in the NC program, the axis is considered as moved for the complete path motion. However, it may not receive a new command position in every cycle due to quantisation. This means that the display “Axis is traversed” is not indicated in each cycle.

This display indicates the status of the interpolator. The axis can still be moved at a later point in time to generate the command value in the CNC. For example, this is possible with a coupled axis [FCT-A9// Axis coupling via HLI]. The variable lr_state.is_moved_r should be used for these cases.

## Additional information

- Drive of an axis
- Compensation of an axis
- Measurement
- Pre-calculated status information