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.