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 |
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 |
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. |
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. |