Introduction

Extensive datasets are exchanged between CNC and PLC. These datasets comprise the following for instance

q Commands from the NC program of the CNC to the PLC (e.g. technology commands, such as M, S, T and H commands etc.).

q Acknowledgements of the technology commands by the PLC.

q Display data of the CNC (e.g. current axis positions, current and programmed tool path feedrate etc.).

q Jobs of the PLC to the CNC (e.g. mode switchover, set feed hold etc.).

q Jobs of the GUI to the CNC which can be verified and, if applicable denied by the PLC (e.g. mode switchover, set feed hold etc.).

The interface between CNC and PLC is outlined in the following general diagram.

Figure 0.1: CNC-PLC interface

This documentation describes the structure of this interface between CNC and PLC referred to below as High-Level Interface (HLI for short).

In this instance, High-Level Interface refers to the structuring of the interface with complex data structures and handshake variables. This is considered unlike a data interface at a low level of abstraction (Low-Level Interface).

More:

button Implementation by High-Level Interface (HLI)

button Organisation of the HLI

button Status and display information

button Control commands

button Operation with and without PLC


Implementation by High-Level Interface (HLI)

A memory area is created as shared memory which both the CNC and the PLC can access in order to implement data exchange between CNC and PLC. This memory area is referred to as High-Level Interface (HLI).

In order to allow this data access, the relevant views of CNC and PLC of the memory area must be the same. Data consistency is ensured by means of suitable data exchange mechanisms.

A library containing the structure of the HLI in structured text is provided for simple programming at the PLC end in IEC1131-3. This library is valid in each case for the current HLI format and the current status of the CNC and may change if a version update is implemented. Accordingly, the PLC with any new library must be recompiled and loaded if a new CNC is used.


Organisation of the HLI

Unlike the simple structuring of the data to be exchanged in input/output data conventional with PLC applications, the HLI contains complex structures. These reflect the logical structuring of the CNC into channels, axes and plattform data.

The logical structure of the HLI is outlined in the diagram below:

Figure 0.2: Structuring of the HLI

The structuring into channel-specific and axis-specific data areas is clearly shown. The channel-specific and axis-specific memory areas on the HLI feature the same logical structure.

The relevant memory areas are subdivided into

q a header area with management data

q and a user data area with status information, control commands and technology data.

The channel/axis-specific memory areas are shown magnified in the diagram below.

Figure 0.3: Data of a channel \ of an axis

A distinction is made between the following data areas, whereby channels and axes may be considered the same:

The header areas contain

q management data such as version information and log-on information

The user data areas contain

q status and display information (CNC → PLC),

q control interfaces (PLC → CNC),

q technology areas (CNC → PLC and PLC → CNC),

q and any application-specific data.

Specific data, such as status information, is updated cyclically by the CNC and can be read by the PLC if needed. M functions, so-called usage information, must, however, be read by the PLC. For this purpose, the interface contains suitable mechanisms ensuring that no data is lost and that the order of the data is retained.


Status and display information

The status information is transferred unidirectionally from the CNC to the PLC. This data is constantly updated by the CNC and can be read by the PLC if needed. The status information is updated without informing the PLC. Updating is not protected with a handshake protocol or semaphore mechanism.

In the case of long cycle times of the PLC, this means that this, under certain circumstances, does not record each short-duration change but is informed only of the current status.

Status information is exchanged on the HLI via memory. The transfer direction is defined for each status information item. The status data is transferred on the HLI as far as possible as single, elementary data items (byte, Boolean, integer etc.).

The status information is combined in accordance with the CNC-internal structure for enhanced structuring.

The diagram below shows the internal structure of the CNC in simplified form:

Figure 0.4: Transfer of status information

The CNC is subdivided into the modules:

q Dec (decoder): Module for decoding the NC program. This module transfers the CNC program to a control-internal data format and performs various calculations, such as parameter calculation etc. Timewise, the decoder runs ahead of actual processing and, under certain circumstances, is thus several hundred NC blocks further than current processing.

q Bavo (path preparation, look-ahead): Module for calculating dynamic limit values on the basis of the set parameters. It detects corners and triggers geometry changes. The Bavo also runs asynchronously with current processing and, under certain circumstances, is thus several hundred NC blocks further than current processing.

q Ipo (interpolator): Module for generation of individual positions for the current cycle, allowing for programmed and maximum speeds etc. The interpolator represents the current state of the machine.


Control commands

Control commands are transferred both from the CNC to the PLC and also in the reverse direction.

If a user interface (GUI) communicates via the CNC communication objects, there is an option for redirecting each command which can be operated both by the GUI and by the PLC via the PLC. The PLC then makes the decision as to the extent to which the GUI command may be carried through to the CNC.

A so-called control unit is created on the HLI for each control command. The control units are differentiated and named on the basis of the action target.

q Control units serving to influence the CNC are referred to as MC control units (LC acts on MC).

q Control units serving to influence the PLC are referred to as LC control units (MC acts on LC).

The following illustration clearly shows the implemented interaction between the users of a control system using an MC control unit.

Figure 0.5: Application of an MC control unit

If commands from the GUI are to be redirected via the PLC, the PLC must assign the X_Enable element the value TRUE. The corresponding control commands of the GUI are then applied prior to processing to element X_Request of the MC control unit. This means that the PLC has the option of allowing or rejecting this request of the GUI. If a command of the GUI is allowed by the PLC, the PLC must copy the command from element X_Request to element X_Command.

Likewise, the PLC is able to task control commands to the CNC even without a prior job from a GUI directly by writing element X_Command.

Element X_State is used to check success of a command. The CNC saves the status corresponding to the command in this element.

An MC control unit features the following structure:

TYPE MCControlUnit:

STRUCT

X_Request : < DATA TYPE A >; (* GUI-commanded data *)

X_Enable : HLI_BOOLEAN; (* PLC uses this command *)

X_Command : < DATA TYPE A >; (* PLC-commanded data *)

X_State : < DATA TYPE B >; (* Acknowledgement of the CNC *))

END_STRUCT

END_TYPE

Note:

q < DATA TYPE A > and < DATA TYPE B > may be identical.

q < DATA TYPE A > and < DATA TYPE B > may also be complex data structures besides the standard data types (e.g. BOOL, INT, UINT, ... ).

More:

button Control unit with usage check


Control unit with usage check

If the requested or commanded data is not applied statically and if, rather, an individual change is to be transferred at this point, the data of the corresponding control unit features an additional usage check.

TYPE MCControlUnit:

STRUCT

X_Request : < DATA TYPE A >; (* GUI-commanded data *)

X_Enable : HLI_BOOLEAN; (* PLC uses this command *)

X_Command : < DATA TYPE A >; (* PLC-commanded data *)

X_RequestSemaphore : HLI_BOOLEAN; (* Request valid *)

X_CommandSemaphore : HLI_BOOLEAN; (* Command valid *)

X_State : < DATA TYPE B >; (* Ackn. of the CNC *))

END_STRUCT

END_TYPE

Example:

CNC accepts the commanded data if the command semaphore has the value TRUE and sets this element to value FALSE after complete transfer of the data.

PLC can write data for commanding if the command semaphore has the value FALSE. If all data to be commanded has been written, the PLC sets this element to value TRUE.

CNC writes the data requested by the GUI if the request semaphore is FALSE and then sets this element to TRUE.

PLC reads the data requested by the GUI if the request semaphore is TRUE. After the data has been fully transferred to the PLC, the PLC sets this element to FALSE.


Operation with and without PLC

Machine commissioning may also be performed only with partially implemented PLC functionality. For this purpose, the CNC-end driver of the HLI contains mechanisms for internal simulation of interactions between PLC and CNC.

Example:

The axis is to be run in with a rudimentary PLC. For this purpose, the PLC sets only the Axis Enables and other functionalities are not yet implemented in the PLC.

In order, nevertheless, to be able to switch operating modes or perform a Reset, the HLI driver now simulates the required acknowledgements of the PLC so that the required action can be performed nevertheless.

In order to achieve this behaviour and to ensure reliable operation nevertheless, the PLC issues a corresponding information item to the CNC, a so-called present marker for each functionality covered by the PLC. This present means that the PLC wishes to operate the corresponding interface and sends the required acknowledgements.

For this purpose, the PLC must inform the CNC once globally in the HLI that it exists. In addition, all control commands are enabled individually. This means that three scenarios are conceivable:

q CNC without PLC

q CNC with PLC which does not use all elements of the HLI

q CNC with PLC which uses all elements of the HLI

The housekeeping sections of each channel resp. each axis have this present element by which the PLC assumes corresponding responsibility for this interface.

In addition, each housekeeping unit of a control command, the control unit, contains an element with which the PLC informs the CNC that it supports this command. This X_Enable element means, at the same time, that, if the corresponding command can also be issued via the GUI, this is routed via the PLC and reaches the CNC from there. The CNC can thus no longer distinguish whether a command is arriving from the PLC or the GUI.

Figure 0.6: Interaction, MC control unit and PLC

The connection of the GUI via the CNC is not absolutely necessary. Likewise, an interface may communicate directly with the PLC, and the additionally provided communication channel GUI -> CNC -> PLC is not used in such cases.


Definition of axes

It is possible to distinguish between various types of axes in a control system. One practical classification is that into programmable, logical and physical axes.

A physical axis corresponds to a real axis on the machine (translatory or rotary axis). Within a control, a physical axis is represented by software by means of a logical axis (1:1 mapping).

A logical axis is the unit representation of an axis in the axis coordinate system (acs). A logical axis, in the control, provides all relevant information required for the related physical axis. From the point of view of the CNC, each logical axis has its own parameter set and its own interface to the PLC.

A programmable axis is an axis which can be programmed or tasked by the user in the part program or MDI mode. A programmable axis corresponds either to a logical / physical axis directly (1:1 mapping) or is mapped to logical / physical axes by means of a kinematic transformation (1:n mapping).

In the case of multi-channel operation, a logical axis may be swapped between channels (axis swap). In this case, the same logical axis may occur in different attributes on the NC channels from the point of the view of the programmer, e.g. as a programmable spindle (speed preset, speed-controlled) on one channel and as a programmable C axis (position preset, position-controlled) on another channel.

Programmable, logical and physical axes are generally identical (1:1 mapping) for simple machines (e.g. a 3-axis milling machine with Cartesian linear axes X, Y and Z). In the case of complex machine kinematics or industrial robots, kinematic transformation of programmed to logical / physical axes is required (1:n mapping).

Axes are programmed in the CNC program and moved by the CNC. Alternatively, specific movements may also be triggered directly by the PLC.

The PLC interface for axes has a similar structure to the interface for channels. M functions configured as axis-specific M functions also appear on the axis-specific interface and must be acknowledged by this interface. Likewise, this interface contains axis enables and status information of this axis.


Definition of coordinate systems

Owing to the structure of a machine and also owing to the machining programs, it is necessary to allow for various coordinate systems. The totality of a machine represents the reference coordinate system in world coordinates. The individual axes, in turn, themselves, define coordinate systems and the workpiece and tool.

The two different coordinate systems essentially used are described below.

Axis coordinate system acs

Each axis has its own coordinate system. Each axis is mounted either on the machine base or on another axis. This means that the machine base or the corresponding axis forms the basis. The axis coordinate system of an axis is fixed in respect of the mounting point of this axis.

Part program coordinate system pcs

This coordinate system is used within the Geometry Description with DIN 66025 programming language. The data in a part program constitutes program coordinates. Exceptions are G functions referred to direct axis coordinates.

Other coordinate system designations should be listed for the purpose of completeness.

Machine coordinate system mcs

The machine coordinate system represents an abstract coordinate system. It is not bound to a fixed point of the machine. All other coordinate systems refer to this coordinate system.

Workpiece coordinate system wcs

This coordinate system is fixed to a fixed point of the workpiece. The description of the work piece by coordinate information refers to this system.

Tool coordinate system tcs

The tool coordinate system has its origin at the clamping point of the tool. Tool information (geometry) refers to this system. Length compensation is thus specified in tool coordinates. In the case of Cartesian machines, the Z axis may coincide with length compensation.

Data or variables described below consequently always refer to a specific coordinate system. Three coordinate systems are shown in the above illustration. The offsets shown ∆x, ∆y and ∆z and the orientations ∆Φ, ∆Θ and ∆Ψ represent the transformation parameters from mcs to wcs. The orientation angles are Eulerian angles.

The naming must be supplemented by means of a further suffix in order to allow for the time aspect. The illustration below shows the machining direction of a machining block. The end position represents the programmed value, the active position represents the current value of the interpolator and the current position represents the actual position including the control error.

Figure 2-1: Position values in PC and AC


Description of the axis-specific interface

More:

button Axis identification

button Axis positions

button Status information of an axis

button Status information of the drive of an axis

button Status information as regards compensation of an axis

button Status information in respect of measurement

button Control commands of an axis

button Control commands of a drive

button External commanding of an axis


Axis identification

Axis name (PCS)
Description | Name of the logical axis with which this is referenced currently in the automatic program / manual block (e.g. X, Y, Z). This may be changed by default when programming the channel (SDA-MDS list) or dynamically in the NC program by means of a swap command.
Information flow | CNC -> PLC
ST path | pMC[channel_idx]^.addr^.StateBahn_Data.HLIBahnCoordDispData_Coord[axis_idx].HLIAxeName_Data.STR_Zeichen
Data type | ARRAY[1..GCW_250_HLIAchsNameLaenge] OF BYTE
Access | PLC reads

Axis number (PCS)
Description | Logical number, unique system-wide, of the axis which is currently being traversed on the channel. The logical axis number is defined arbitrarily in the parameter list of the axis and is used, amongst other things, for identifying the axis in the case of an axis swap (e.g. #CALL AX [X, 1, 0]).
Information flow | CNC -> PLC
ST path | pMC[channel_idx]^.addr^.StateBahn_Data.HLIBahnCoordDispData_Coord[axis_idx].W_LogAchsNr pAC[axis_idx]^.addr^.StateIpo_Data.W_LogAxeNr
Data type | UINT
Value range | [1, nAxis]
Access | PLC reads

Axis spindle (ACS)
Description | Indicates whether the axis is currently being interpolated via the path interpolator (e.g. thread drilling, tapping) or the BF spindle.
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.StateIpo_Data.X_SpindleAxis
Data type | BOOL
Value range | [TRUE = the axis is traversed via the BF spindle, FALSE]
Access | PLC reads

Axis type (PCS)
Description | Type of axis
Information flow | CNC -> PLC
ST path | pMC[channel_idx]^.addr^.StateBahn_Data.HLIBahnCoordDispData_Coord[axis_idx].W_AxisType pAC[axis_idx]^.addr^.StateIpo_Data.W_Type
Data type | UINT
Value range | 1 = Translator, 2 = Rotator, 4 = Spindle
Access | PLC reads

Channel number of the axis
Description | Number of the channel via which the axis is currently being tasked. == 0: Axis is currently not on a channel or spindle not processing tasking of a channel. != 0: Axis belongs to a channel or spindle is executing a command of a channel.
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.StateLR_Data.W_NCChannel pAC[axis_idx]^.addr^.StateIpo_Data.W_NCChannel
Data type | UINT
Value range | [1..HLI_SYS_CHNMAX]
Access | PLC reads


Axis positions

More:

button Axis positions in the PCS

button Axis positions in the ACS


Axis positions in the PCS

Target position (PCS)
Description | Target position of the current NC block.
Information flow | CNC -> PLC
Unit | 0.1 µm
ST path | pMC[channel_idx]^.addr^.StateBahn_Data.HLIBahnCoordDispData_Coord[axis_idx].D_CmdPosition
Data type | DINT
Access | PLC reads
Characteristics |

Position setpoint (PCS)
Description | Position preset in the current cycle as value setpoint.
Information flow | CNC -> PLC
Unit | 0.1 µm
ST path | pMC[channel_idx]^.addr^.StateBahn_Data.HLIBahnCoordDispData_Coord[axis_idx].D_ActPosition
Data type | DINT
Access | PLC reads
Characteristics |

Actual position (PCS)
Description | Position signalled back in the current cycle by the measuring system.
Information flow | CNC -> PLC
Unit | 0.1 µm
ST path | pMC[channel_idx]^.addr^.StateBahn_Data.HLIBahnCoordDispData_Coord[axis_idx].D_CurrentPosition
Data type | DINT
Access | PLC reads
Characteristics |

Position value setpoint, including manual mode offset (PCS)
Description | Current position setpoint, including the manual mode offset.
Information flow | CNC -> PLC
Unit | 0.1 µm
ST path | pMC[channel_idx]^.addr^.StateBahn_Data.HLIBahnCoordDispData_Coord[axis_idx].D_ManPosition
Data type | DINT
Access | PLC reads
Characteristics |

Manual mode offset (PCS)
Description | Current manual mode offset.
Information flow | CNC -> PLC
Unit | 0.1 µm
ST path | pMC[channel_idx]^.addr^.StateBahn_Data.HLIBahnCoordDispData_Coord[axis_idx].D_ManOffset
Data type | DINT
Access | PLC reads
Characteristics |

Total offset (PCS)
Description | Sum of all active offsets PCS = ACS - Offsets + Tool
Information flow | CNC -> PLC
Unit | 0.1 µm
ST path | pMC[channel_idx]^.addr^.StateBahn_Data.HLIBahnCoordDispData_Coord[axis_idx].D_TotalOffset
Data type | DINT
Access | PLC is reading
Characteristics |


Axis positions in the ACS

Target position (ACS)
Description | Target position in the current NC block, ACS. This represents the target position of the program coordinate system referred to the axes. It is valid only for as long as no transformation is active. Currently, the target position is not transformed back onto the axes.
Information flow | CNC -> PLC
Unit | 0.1 µm
ST path | pAC[axis_idx]^.addr^.StateLR_Data.D_EndPositionACS
Data type | DINT
Access | PLC reads
Characteristics |

Position setpoint (ACS)
Description | Position setpoint of the current cycle in the axis coordinate system
Information flow | CNC -> PLC
Unit | 0.1 µm
ST path | pAC[axis_idx]^.addr^.StateLR_Data.D_ActivePositionACS
Data type | DINT
Access | PLC reads
Characteristics |

Actual position (ACS)
Description | Actual position of the current cycle in the axis coordinate system
Information flow | CNC -> PLC
Unit | 0.1 µm
ST path | pAC[axis_idx]^.addr^.StateLR_Data.D_CurrentPositionACS
Data type | DINT
Access | PLC reads
Characteristics |

Position offset
Description | Display of the current offset of the absolute position between the position controled axis (real physical axis) and the interpolator axis (logic axis).
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.StateLR_Data.D_PositionOffsetPhysicalLogicalACS
Data type | DINT
Value range | 0.1 µm
Access | PLC is reading
Characteristics |


Status information of an axis

AxisState (PCS)
Description | AxisState, PCS
Information flow | CNC -> PLC
ST path | pMC[channel_idx]^.addr^.StateBahn_Data.HLIBahnCoordDispData_Coord[axis_idx].W_State
Data type | UINT
Value range | 1 = Ready, 3 = Active, 5 = Hold
Access | PLC reads
Characteristics |

AxisState (ACS)
Description | AxisState, ACS
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.StateLR_Data.W_AxisState
Data type | UINT
Value range | 1 = Ready, 3 = Active, 5 = Hold, 7 = Error
Access | PLC reads
Characteristics | Even if an axis in the PCS is not being moved, a corresponding Cartesian or kinematic transformation may nevertheless perform a movement of the physical axis. Example: 90° rotation about Z; Y is moved if X is programmed.

Residual path (PCS)
Description | Remaining residual path in the current NC block, difference between target position and position setpoint.
Information flow | CNC -> PLC
Unit | 0.1 µm
ST path | pMC[channel_idx]^.addr^.StateBahn_Data.HLIBahnCoordDispData_Coord[axis_idx].D_DistToGo
Data type | DINT
Access | PLC reads
Characteristics |

Homing performed (PCS)
Description | The axis has completed homing successfully and is thus referenced.
Information flow | CNC -> PLC
ST path | pMC[channel_idx]^.addr^.StateBahn_Data.HLIBahnCoordDispData_Coord[axis_idx].X_HomingDone
Data type | BOOL
Value range | [TRUE = Axis is referenced, FALSE]
Access | PLC reads
Characteristics |

Homing performed (ACS)
Description | The axis has completed homing successfully and is thus referenced.
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.StateLR_Data.X_HomingDone
Data type | BOOL
Value range | [TRUE = Axis is referenced, FALSE]
Access | PLC reads
Characteristics |

Contouring error
Description | Current contouring error of the axis, difference between position setpoint and actual position.
Information flow | CNC -> PLC
Unit | 0.1 µm
ST path | pAC[axis_idx]^.addr^.StateLR_Data.D_FollowingError
Data type | DINT
Access | PLC reads
Characteristics |

Axis in control window
Description | The axis is located in the control window
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.StateLR_Data.X_InWindow
Data type | BOOL
Value range | [TRUE = Axis is located in control window, FALSE]
Access | PLC reads
Characteristics |

Axis in position
Description | The axis is located in position
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.StateLR_Data.X_InPosition
Data type | BOOL
Value range | [TRUE = Axis in position, FALSE]
Access | PLC reads
Characteristics |

Axis is moved
Description | The axis is co-used currently for the programmed path movement.
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.StateLR_Data.X_IsMoved
Data type | BOOL
Value range | [TRUE = Axis is moved, FALSE]
Access | PLC reads
Characteristics |

Axis is traversed

Description

The axis traverses, i.e. a value setpoint is generated for this axis with the current interpolation.

Information flow

CNC -> PLC

ST path

pAC[axis_idx]^.addr^.StateLR_Data.X_IsMoving

Data type

BOOL

Value range

[TRUE = Axis is traversed, FALSE]

Access

PLC reads

Characteristics

If an axis is traversed, e.g. with a very low feed rate in the NC program, the axis is, admittedly, considered as moved for the complete traverse movement but it may be the case, owing to quantisation, that it does not receive a new position setpoint in each cycle. This means that indication Axis is traversed is not pending in each cycle.

Likewise, the axis is considered as traversed in the case of Override 0 (traversing with speed 0). By contrast, no speed is commanded in the case of a FEED HOLD, i.e. the axis is considered as not traversed.

Axis traverses forwards
Description | The last output value setpoint generated led to a positive traverse direction.
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.StateLR_Data.X_IsMovingForward
Data type | BOOL
Value range | [TRUE = Axis traverses forwards, FALSE]
Access | PLC reads
Characteristics | It is not possible to detect if the axis im moving actually but only the last/actual movement direction. To determine if the axis is movin use gpAx[axis_idx]^.lr_state.is_moving_r.

Block number
Description | Current block number of the active NC block
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.StateLR_Data.D_BlockNr
Data type | DINT
Access | PLC reads
Characteristics |

Axis supply
Description | The instruction of the physical axis is executed via the defined logical axis in the NC-channel.
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.StateLR_Data.W_LinkToLogicalAxis
Data type | UINT
Value range | [= 0 - not linked, > 0  logic number of the axis]
Access | PLC is reading
Characteristics |

Axis assignment
Description | Display of the physical axis, on which the command value output of the logical axis of the channel is executed.
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.StateIPO_Data.X_LinkToPhysicalAxis
Data type | UINT
Value range | [= 0 - not linked, > 0  logic number of the axis]
Access | PLC is reading
Characteristics |

Active axis links

Description

It is indicated if the axis is slave axis of an axis link, see also [PROG - #AXIS LINK].

Information flow

CNC -> PLC

ST path

pAC[axis_idx]^.addr^.StateIPO_Data. W_AxLinkMode

Data type

INT

Value range

Value | PLC-Constant | Meaning
-1 | HLI_AXIS_LINK_NONE | No axis link active for this axis
0 | HLI_AXIS_LINK_NORMAL | Axis is slave axis of an axis link
1 | HLI_AXIS_LINK_SPDL | Axis is slave axis of a spindle link
2 | HLI_AXIS_LINK_GANTRY | Axis is slave axis of a softgantry link
3 | HLI_AXIS_LINK_MIRROR | Axis is slave axis of an axis link, axis movement is mirrored in respect to the master axis.

Access

PLC is reading

Characteristics

The displayed axis couplings are only active if the master axis number is not zero.

Master axis number for active axis link
Description | If the axis is linked to a master axis (see also [PROG - #AXIS LINK]) the logical axis number of the master axis is shown here.
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.StateIPO_Data.W_AxLinkMasterAxNr
Data type | UINT
Value range | 0 : no axis link active > 0: logical axis number of the master axis
Access | PLC is reading
Characteristics |

More:

button Linking to ADS


Linking to ADS

Box identification

Description

Reading of device dependent data, which are defined during configuration of the system (e.g. system manager).

Information flow

CNC -> PLC

ST path

pAC[axis_idx]^.addr^.StateLR_Data.HLITwinCATBoxData

ST element

.AdsNetId

Description

Definition of the AmsNetId of the TwinCAT-computer, on which the function shall be executed. For the local computer also an empty string can be defined.

The PLC variable of this type is a string and includes the network identification of the target device. On this device the ADS-command is directed. The string consists of six numerical sections, separated by dots. Each numerical section includes a number between 0 and 254. Valid AMS-network adresses e.g. are "1.1.1.2.7.1" or "200.5.7.170.1.7". If an empty string is delivered, the AMS-network identification automatically is set to the local device.

ST element

.W_AdsPort

Description

ADS-devices in a TwinCAT-network area are identified by an AMS-network adress and a portnumber. The portnumber of the ADS-device is defined by the system manager during configuration.

ST element

.W_AdsChannel

Description

Access

PLC is reading

Characteristics

Device identification
Description | Via the DeviceId (Device-Id) the IO-device is specified. On this IO-device the function shall be executed. The Device-Ids are defined by the TwinCAT-system manager during hardware configuration.
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.StateLR_Data.HLITwinCATDeviceData
ST element | .D_Id
Access | PLC is reading
Characteristics | At the moment the device-ID is used for ring global actions (e.g. phase switching or reading).


Status information of the drive of an axis

Drive type
Description | Type of drive of an axis. For each axis, the drive type is specified in the axis machine parameters under entry kenngr.antr_typ.
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.StateLR_Data.W_DriveType
Data type | UINT
Value range | 1 Conventional drive (+-10 V), not used 2 SERCOS drive 3 Profidrive 4 Drive simulation 5 Lightbus 6 Terminalachse (+-10V) via bus 7 Realtime ethernet 16 Virtual drive 32 CAN drive (option)
Access | PLC reads
Characteristics |

Drive ready for power connection
Description | The drive of the axis is ready for power connection
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.StateLR_Data.X_ReadyPowerOn
Data type | BOOL
Value range | [TRUE = Ready for power connection, FALSE]
Access | PLC reads
Characteristics | SERCOS drives In the case of SERCOS drives, this information is derived from bit 14 of the status word.

Drive ready for operation

Description

Drive control section and power supply are ready for operation.

Information flow

CNC -> PLC

ST path

pAC[axis_idx]^.addr^.StateLR_Data.X_ReadyControlLoopOn

Data type

BOOL

Value range

[TRUE = Drive ready for operation, FALSE]

Access

PLC reads

Characteristics

SERCOS drives

In the case of SERCOS drives, this information is derived from bit 15 of the status word.

Moreover, this data item is related as follows to X_ReadyPowerOn (Page 35) in the case of SERCOS drives:

· If
(pAC[axis_idx]^.addr^.StateLR_Data.X_ReadyControlLoopOn == TRUE) &&
(pAC[axis_idx]^.addr^.StateLR_Data.X_ReadyPowerOn == FALSE) this means that the drive control section and power supply are ready for operation but the drive is currently idle.

· If
(pAC[axis_idx]^.addr^.StateLR_Data.X_ReadyControlLoopOn == TRUE) &&
(pAC[axis_idx]^.addr^.StateLR_Data.X_ReadyPowerOn == TRUE) this means that the drive is ready for operation,
i.e.
Feed Enable, Axis  and Drive On are set to TRUE and are effective. This means that the drive has torque and follows the position setpoint preset of the NC kernel.

Drive error
Description | An error has occurred in the drive. The drive is thus interlocked.
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.StateLR_Data.X_Error
Data type | BOOL
Value range | [TRUE = Error has occurred, FALSE]
Access | PLC reads
Characteristics | SERCOS drives In the case of SERCOS drives, this information is derived from bit 13 of the status word.

Drive-specific state
Description | Drive-specific state corresponding to the specification of the drive (SERCOS, CAN, ...)
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.StateLR_Data.N_NativeDriveState
Data type | UINT
Access | PLC reads
Remark | Corresponds for SERCOS to the drive state (S-0-00135).

Read drive data
Description | Data transferred from the drive to the NC kernel. The content is application-specific This data is also provided in parallel in the state of the control unit, see read / write drive data cyclically
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.StateLR_Data.D_Word1 pAC[axis_idx]^.addr^.StateLR_Data.D_Word2 pAC[axis_idx]^.addr^.StateLR_Data.D_Word3 pAC[axis_idx]^.addr^.StateLR_Data.D_Word4
Data type | UDINT
Access | PLC reads
Characteristics | The data transfer can be used currently only in the case of SERCOS drives. For this purpose, transfer of the value to the drive must be enabled in the axis parameter list, e.g.: # Cyclic reading of the 4 byte PLC value uns32_3 at S-0-0819 antr_digital.typ.sercos.at[1].ident_nr 0819 antr_digital.typ.sercos.at[1].ident_len 4 antr_digital.typ.sercos.at[1].nc_ref LR_VAR3_IN

DRIVE_STATE_MODE_0
Description | Present mode OF drive, i.e. position loop control DRIVE_STATE_MODE_0 0x00000001
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.StateLR_Data.X_Mode0
Data type | BOOL
Value range |
Access | PLC reads
Characteristics |

DRIVE_STATE_MODE_1
Description | DRIVE_STATE_MODE_1 0x00000002
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.StateLR_Data.X_Mode1
Data type | BOOL
Value range |
Access | PLC reads
Characteristics |

DRIVE_STATE_MODE_2
Description | DRIVE_STATE_MODE_2 0x00000003
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.StateLR_Data.X_Mode2
Data type | BOOL
Value range |
Access | PLC reads
Characteristics |

DRIVE_STATE_MODE_3
Description | DRIVE_STATE_MODE_3 0x00000004
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.StateLR_Data.X_Mode3
Data type | BOOL
Value range |
Access | PLC reads
Characteristics | Is currently not programmed

DRIVE_STATE_MODE_4
Description | DRIVE_STATE_MODE_4 0x00000005
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.StateLR_Data.X_Mode4
Data type | BOOL
Value range |
Access | PLC reads
Characteristics | Is currently not programmed

DRIVE_STATE_MODE_5
Description | DRIVE_STATE_MODE_5 0x00000016
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.StateLR_Data.X_Mode5
Data type | BOOL
Value range |
Access | PLC reads
Characteristics | Is currently not programmed

DRIVE_STATE_MODE_6
Description | DRIVE_STATE_MODE_6 0x00000007
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.StateLR_Data.X_Mode6
Data type | BOOL
Value range |
Access | PLC reads
Characteristics | Is currently not programmed


Status information as regards compensation of an axis

Compensation of drive drift
Description | State of activation of drift compensation of the drive
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.StateLR_Data.X_DriftErrorComp
Data type | BOOL
Value range | [TRUE = , FALSE]
Access | PLC reads
Characteristics | Is currently not programmed

Compensation of the leadscrew error
Description | State of activation of leadscrew error compensation
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.StateLR_Data.X_PitchErrorComp
Data type | BOOL
Value range | [TRUE = Leadscrew error compensation active, FALSE]
Access | PLC reads
Characteristics | Is currently not programmed

Compensation of the temperature influence
Description | Activation of the temperature compensation of the drive
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.StateLR_Data.X_TempErrorComp
Data type | BOOL
Value range | [TRUE = , FALSE]
Access | PLC reads
Characteristics | Is currently not programmed

Compensation of the backlash error
Description | State of activation of compensation of the backlash error of the drive
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.StateLR_Data.X_BacklashErrorComp
Data type | BOOL
Value range | [TRUE = Compensation of the backlash error active, FALSE]
Access | PLC reads
Characteristics | Is currently not programmed

Feedforward
Description | State of activation of feedforward
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.StateLR_Data.X_FeedForward
Data type | BOOL
Value range | [TRUE = Feedforward active, FALSE]
Access | PLC reads
Characteristics | Is currently not programmed


Status information in respect of measurement

Measuring probe state
Description | State of the measuring probe
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.StateLR_Data.X_MeasureEquipActive
Data type | BOOL
Value range | [TRUE = Measuring probe active, FALSE]
Access | PLC reads
Characteristics |

Measurement value valid
Description | A valid measurement value has been latched by the drive
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.StateLR_Data.X_MeasureValueOk
Data type | BOOL
Value range | [TRUE, FALSE]
Access | PLC reads
Characteristics | Is currently not programmed


Control commands of an axis

Feed Enable, Axis
Description | Axis-specific Feed Enable The Feed Enable must be set for all axes to be moved. If this is not the case, no path movement occurs.
Data type | MCControlBoolUnit, see description Control Unit
Characteristics | SERCOS drives In the case of SERCOS drives, the data item is derived from bit 13 of the control word.
Access | PLC reads Request + State and writes Command + Enable
ST path | pAC[axis_idx]^.addr^.McControlLr_Data.MCControlBoolUnit_ReleaseFeedhold
Commanded, requested and return value
ST element | . X_Command .X_Request
Data type | BOOL
Value range | [TRUE = Drive Enable, Transition TRUE → FALSE: The drive is shut down in compliance with the acceleration parameters. FALSE = Drive HALT]
Return value
ST element | . X_State
Data type | BOOL
Value range | [TRUE = Drive Enable, FALSE = Drive HALT]
Redirection
ST element | . X_Enable

Feed Hold ON/OFF, axis
Description | Axis-specific Feed Hold The axis-specific Feed Hold acts on an axis if this axis is currently not being traversed in the path network but in Manual mode or as an independent axis. Otherwise, the global Feed Hold of the channel acts for it.
Data type | MCControlBoolUnit, see description Control Unit
Access | PLC reads Request + State and writes Command + Enable
ST path | pAC[axis_idx]^.addr^.McControlIpo_Data. MCControlBoolUnit_Feedhold
Commanded, requested and return value
ST element | .X_Command .X_Request .X_State
Data type | BOOL
Value range | [TRUE = Feed Hold on, FALSE = Feed Hold off]
Redirection
ST element | . X_Enable

Feed Override, axis
Description | Axis-specific feed override The axis-specific feed override allows to weight the axis velocity with an additional percentage factor.The axis-specific feed override acts on an axis if this axis is currently not being traversed in the path network but in Manual mode or as an independent axis. Otherwise, the global override of the channel acts for it.
Data type | MCControlUNS16Unit, see description Control Unit
Access | PLC reads Request + State and writes Command + Enable
ST path | pAC[axis_idx]^.addr^.McControlIpo_Data.MCControlUNS16Unit_Override
Commanded, requested and return value
ST element | .D_Command .D_Request .D_State
Unit | 0.1 %
Data type | UINT
Value range | [0, P-AXIS-00109] P-AXIS-00109 is an axis-specific parameter. The default value is 1000. See [AXIS].
Redirection
ST element | . X_Enable

Feed override valid, axis
Description | Axis-specific Feed Override valid
Data type | MCControlBoolUnit, see description Control Unit
Access | PLC reads Request + State and writes Command + Enable
ST path | pAC[axis_idx]^.addr^.McControlIpo_Data.MCControlBoolUnit_OverrideValid
Commanded, requested and return value
ST element | .X_Command .X_Request .X_State
Data type | BOOL
Value range | [TRUE = Axis-specific Feed Override valid, FALSE]
Redirection
ST element | . X_Enable

Drive ON
Description | Drive ON
Data type | MCControlBoolUnit, see description Control Unit
Characteristics | SERCOS drives In the case of SERCOS drives, the data item is derived from bit 15 of the control word.
Access | PLC reads Request + State and writes Command + Enable
ST path | pAC[axis_idx]^.addr^.McControlLr_Data.MCControlBoolUnit_DriveOn
Commanded and requested value
ST element | .X_Command .X_Request
Data type | BOOL
Value range | [TRUE = Drive ON, Transition TRUE → FALSE: The drive is shut down as best possible. FALSE = Drive OFF]
Return value
ST element | . X_State
Data type | BOOL
Value range | [TRUE = Drive ON, FALSE = Drive OFF]
Redirection
ST element | . X_Enable

Controller Enable
Description | Controller Enable ↔ axis-specific torque connection.
Data type | MCControlBoolUnit, see description Control Unit
Characteristics | SERCOS drives In the case of SERCOS drives, the data item is derived from bit 14 of the control word.
Access | PLC reads Request + State and writes Command + Enable
ST path | pAC[axis_idx]^.addr^.McControlLr_Data.MCControlBoolUnit_TorquePermission
Commanded, requested and return value
ST element | .X_Command .X_Request .X_State
Data type | BOOL
Value range | [TRUE = Torque connection, FALSE = Drive is idle]
Redirection
ST element | . X_Enable

Following diagram shows the combination of control units of the HLI and the SERCOS-Controlword respectively SERCOS-Statusword.

Figure 2-1: Combination control units and SERCOS Control- respectively Statusword

Reference cam

Description

Signal of a reference cam when homing.

Data type

MCControlBoolUnit, see description Control Unit

Characteristics

Commanding this signal acts only if the characteristic parameter lr_hw[i].cam_direct_access = 0 is set in the axis machine data record of the relevant axis.

Using characteristic parameter lr_hw[i].cam_level in the axis machine data record can program the action of this command from high-active to low-active.

The action in the default case is described below.

Access

PLC reads Request + State and writes Command + Enable

ST path

pAC[axis_idx]^.addr^.McControlLr_Data.MCControlBoolUnit_ReferenceCam

Commanded, requested and return value

ST element

.X_Command

.X_Request

.X_State

Data type

BOOL

Value range

[TRUE = Reference cam switched, FALSE = Reference cam not switched]

Redirection

ST element

. X_Enable

Reduced feed, axis
Description | If this signal is activated axis velocity is reduced, in case G00 or G01 is commanded, to the values defined in P-AXIS-00214 respectively P-AXIS-00155. See also [AXIS].
Data type | MCControlBoolUnit, see description Control Unit
Characteristics | Is the axis member of a channel (axes group), the limitations of the other axes that are part of the motion are considered. The path feed that take effect in such a case is evaluated that no axis that is part of the actual motion exceeds their configured feed limit. In this case the behaviour is identical to the command via the channel specific control unit.
Access | PLC reads Request + State and writes Command + Enable
ST path | pAC[axis_idx]^.addr^.McControlIpo_Data.MCControlBoolUnit_ReducedFeed
Commanded, requested and return value
ST element | X_Command .X_Request .X_State
Data type | BOOL
Value range | [TRUE = Reduced feed active, FALSE = Reduced feed not active]
Redirection
ST element | . X_Enable

Reduced feed in zone 1, axis
Description | When this signal is activated and axis position is within the values defined in P-AXIS-00085 and P-AXIS-00093 axis velocity is reduced to the value defined in P-AXIS-00030. If necessary velocity is reduced after entering the zone. See also [AXIS].
Data type | MCControlBoolUnit, see description Control Unit
Characteristics | Is the axis member of a channel (axes group), the limitations of the other axes that are part of the motion and located within their configured zone, are considered.
Access | PLC reads Request + State and writes Command + Enable
ST path | pAC[axis_idx]^.addr^.McControlIpo_Data.MCControlBoolUnit_ReducedFeedZone
Commanded, requested and return value
ST element | X_Command .X_Request .X_State
Data type | BOOL
Value range | [TRUE = Reduced feed in zone 1 active, FALSE = Reduced feed in zone 1 not active]
Redirection
ST element | . X_Enable

Reduced feed in zone 2, axis
Description | When this signal is activated and axis position is within the values defined in P-AXIS-00097 and P-AXIS-00105 path velocity is reduced to the value defined in P-AXIS-00030. If necessary velocity is reduced after entering the zone.
Data type | MCControlBoolUnit, see description Control Unit
Characteristics | Is the axis member of a channel (axes group), the limitations of the other axes that are part of the motion and located within their configured zone, are considered.
Access | PLC reads Request + State and writes Command + Enable
ST path | pAC[axis_idx]^.addr^.McControlIpo_Data.MCControlBoolUnit_ReducedFeedZone2
Commanded, requested and return value
ST element | X_Command .X_Request .X_State
Data type | BOOL
Value range | [TRUE = Reduced feed in zone 2 active, FALSE = Reduced feed in zone 2 not active]
Redirection
ST element | . X_Enable

Suppression of Read-In Enable
Description | Suppression of Read-In Enable If the Read-In Enable is cancelled (setting NoEfg), the interpolator does not read any new advance-decoded NC forward-traverse information, i.e. the movement is stopped after the end of the current jobs in the interpolator.
Data type | MCControlBoolUnit, see description Control Unit
Access | PLC reads Request + State and writes Command + Enable
ST path | pAC[axis_idx]^.addr^.McControlIpo_Data.MCControlBoolUnit_NoEfg
Commanded, requested and return value
ST element | .X_Command .X_Request .X_State
Data type | BOOL
Value range | [TRUE = No Read-In Enable, FALSE = Read-In Enable]
Redirection
ST element | . X_Enable

Machining Simulation, Axis
Description | Activates and deactivates axis-specific machining simulation. During machining simulation, all axis-specific technology commands of the NC program are no longer output to the PLC but are acknowledged internally.
Data type | MCControlBoolUnit, see description Control Unit
Access | PLC reads Request + State and writes Command + Enable
ST path | pAC[axis_idx]^.addr^.McControlIpo_Data.MCControlBoolUnit_MachiningSimu
Commanded, requested and return value
ST element | .X_Command .X_Request .X_State
Data type | BOOL
Value range | [TRUE = No Read-In Enable, FALSE = Read-In Enable]
Redirection
ST element | . X_Enable

Tracking Operation
Description | The axis is set to tracking operation (follow up), i.e. the control loop is opened. The command position implicitly is set to the actual position.
Data type | MCControlBoolUnit, see description Control Unit
Characteristics | Because the command value takes over the position lag of the actual position, it is possible that any external force (e.g. weight of axis) slowly moves the axis (drift).
Access | PLC reads Request + State and writes Command + Enable
ST-path | pAC[axis_idx]^.addr^.McControlLr_Data.MCControlBoolUnit_FollowUp
Commanded, requested and return values
ST element | .X_Command .X_Request .X_State
Data type | BOOL
Range | [TRUE = control loop open, FALSE]
Redirection
ST element | . X_Enable

Ignore minimal tool velocity

Description

If a value for minimal tool velocity is configured for a tool, NC-Kernel by default takes care, that this limit isnt underrunned by commanding an override.

This control unit is used to avoid this behaviour of the NC-Kernel and the override takes effect onto the axis as commanded.

Data type

MCControlBoolUnit , see description Control Unit

Characteristics

Control unit only takes effect, if the axis is a spindle.

Access

PLC reads Request + State and writes Command + Enable

ST-path

pAC[axis_idx]^.addr^.McControlIpo_Data.MCControlBoolUnit_IgnoreVbMinTool

Commanded, requested and return values

ST element

.X_Command

.X_Request

.X_State

Data type

BOOL

Range

[TRUE = Ignore minimal tool velocity in case of override command, FALSE]

Redirection

ST element

. X_Enable

Driving out gantry difference
Description | If the axis is a gantry slave axis and master and slave are referenced the position difference between master and slave axis is driven out.
Data type | MCControlBoolUnit, see description Control Unit
Characteristics |
Access | PLC reads Request + State and writes Command + Enable
ST-path | pAC[axis_idx]^.addr^.McControlLr_Data.MCControlBoolUnit_GantryOn
Commanded, requested and return values
ST element | .X_Command .X_Request .X_State
Data type | BOOL
Range | [TRUE = driving out gantry difference allowed, FALSE]
Redirection
ST element | . X_Enable

Overtake reference position

Description

Overtake reference position and mark axis as referenced on a rising edge of this control unit. Dependend on the value of P-AXIS-00278 the axis position is set to the following values:

P-AXIS-00278 | Reference position of the axis
ABSOLUT | Value of P-AXIS-00152
OFFSET | Encoderposition of the drive + P-AXIS-00279
PLC | Value of control unit MCControlSGN32Unit _ReferencePosition.
PLC_OFFSET | Encoderposition of the drive + Value of control unit refpos_position.

The variable X_State shows, if the reference position was set manually and as a result the coordinate system has been shifted. The manual setting can be removed by a CNC-controlled homing (G74).

Also for an axis with absolute measurement system the reference position can be set manually.

Data type

MCControlBoolUnit, see description Control Unit

Characteristics

Edge detection. Functionality is active on rising edge on X_Command.

Access

PLC reads Request + State and writes Command + Enable

ST-path

pAC[axis_idx]^.addr^.McControlLr_Data. MCControlBoolUnit_SetReferencePosition

Commanded, requested and return values

ST element

.X_Command

.X_Request

.X_State

Data type

BOOL

Range

[TRUE, FALSE]

Redirection

ST element

. X_Enable

Reference position to overtake

Description

If in the axis parameter list the value of P-AXIS-00278 is set to PLC or to PLC_OFFSET the value of this control unit is used as reference position if the control unit MCControlSGN32_RefposPosition is used to trigger overtaking of the reference position.

P-AXIS-00278 | Reference position ot the axis
PLC | Value of this control unit.
PLC_OFFSET | Encoderposition of the drive + Value of this control unit.

Data type

MCControlSGN32Unit, see description Control Unit

Characteristics

Access

PLC reads Request + State and writes Command + Enable

ST-path

pAC[axis_idx]^.addr^.McControlLr_Data. MCControlSGN32UNIT
_ReferencePosition

Commanded, requested and return values

ST element

.D_Command

.D_Request

.D_State

Data type

DINT

Dimension

0.1 um resp. 10-4°

Range

[MIN_DINT, MAX_DINT]

Redirection

ST element

. X_Enable

Clear of homing state

Description

If axis has been homed by set of reference position of by G74, this state can be cleared again by usage of the actual control unit.

If axis has an absolute measurement system, the axis also is considered as not homed afterwards (it can by homed again by standard G74).

E.g. by clearing the homing state the checking of software limit switches can by suppressed temporarily.

Any position offset activated by set reference position is not cleared by the actual control unit.

The variable X_State displays if the axis is not homed (inverse of homed).

Data type

MCControlBoolUnit, see description Control Unit

Characteristics

Functionality is commanded by a rising edge at X_Command.

Access

PLC reads Request + State and writes Command + Enable

ST-path

pAC[axis_idx]^.addr^.McControlLr_Data.MCControlBoolUnit_ClearReferencePosition

Commanded, requested and return values

ST element

.X_Command

.X_Request

. X_State

Data type

BOOL

Ramge

[TRUE, FALSE]

Redirection

ST element

. X_Enable

Definition of axis couplings
Description | With this control unit therre can be defined axis couplings defined for the axis. It is possible to influence the movement of the axis additionaly or exclusively by the movement of another axis. Further details can be taken from the documentaion [FCT-A9].
Data type | MCControlAxisCouplingUnit , s. Description Control Unit
Access | PLC reads State and writes Command + Enable
ST-path | pAC[axis_idx]^.addr^.McControlLr_Data. MCControlAxisCouplingUnit_AxisCoupling
Commanded values
ST element | .AxisCouplingCommand
Information flow | PLC → CNC
Data type | HLIAxisCouplingCommand
Access | PLC writes
Return value
ST element | .AxisCouplingState
Information flow | CNC → PLC
Data type | HLIAxisCouplingState
Access | PLC reads
Redirection
ST element | . X_Enable

Axis couplings, state
Description | Displays the active axis couplings for this axis.
Information flow | CNC → PLC
ST-Path | pAC[axis_idx]^.addr^.McControlLr_Data. MCControlAxisCouplingUnit_AxisCoupling.AxisCouplingState
Data type | HLIAxisCouplingState
Access | PLC read
Elements of data type
Element | .desc[ ]
Data type | ARRAY [1 .. HLI_AxisCouplingMax] OF HLIAxisCouplingDesc
Access | PLC reads
Element | .X_Active
Data type | BOOL
Access | PLC reads

Axis couplings, command

Description

In this entry all coupling definitions for an axis is set up. The number of maximal possible coupling definitions is defined in the constant HLI_AxisCouplingMax. See also documentation [FCT-A9].

Information flow

PLC → CNC

Data type

HLIAxisCouplingCommand

ST-Path

pAC[axis_idx]^.addr^.McControlLr_Data.
MCControlAxisCouplingUnit_AxisCoupling.AxisCouplingCommand

Access

PLC write

Elements of data type

Element

.desc[ ]

Data type

ARRAY [1 .. HLI_AxisCouplingMax] OF HLIAxisCouplingDesc

Access

PLC write

Element

X_Semaphor

Data type

BOOL

Access

Consumption data

The CNC overtakes the commanded values it the element is set to TRUE. After proccessing the commanded values the CNC sets this element back to FALSE.

PLC sets element TRUE, if commanded values are ready to be overtaken by CNC. PLC may only change data of desc[..], if value of the element is TRUE.

Definition of an axis coupling

Description

In this entry all coupling definitions for an axis is set up. See also documentation [FCT-A9].

Information flow

PLC → CNC

Data type

HLIAxisCouplingDesc

ST-Path

pAC[axis_idx]^.addr^.McControlLr_Data.
MCControlAxisCouplingUnit_AxisCoupling.AxisCouplingCommand.desc[idx]

pAC[axis_idx]^.addr^.McControlLr_Data.
MCControlAxisCouplingUnit_AxisCoupling.AxisCouplingState.desc[idx

Access

Command for axis coupling: PLC writes

Status of axis coupling: PLC reads

Elements of data type

ST element

.CouplingMode

Data type

UINT

Value range

HLI_AXIS_COUPLING_INACTIVE = 0,

HLI_AXIS_COUPLING_ZERO = 1,

HLI_AXIS_COUPLING_DIRECT = 2,

HLI_AXIS_COUPLING_MIRROR = 3

HLI_AXIS_COUPLING_FRACT = 4

Description

· HLI_AXIS_COUPLING_INACTIVE: Coupling is not acitve.

· HLI_AXIS_COUPLING_ZERO: Coupling factor is zero, can be used to deactivate an axis.

· HLI_AXIS_COUPLING_DIRECT: Coupling factor is 1.

· HLI_AXIS_COUPLING_MIRROR: Coupling factor is 1

· HLI_AXIS_COUPLING_FRACT: Coupling factor is a fraction, defined by .desc[idx].FractNumerator / .desc[idx].FractDenominator.

ST element

.AxisNumber

Data type

UINT

Description

Logical axis number of source axis. It the axis shall be moved with active coupling by a NC program a coupling command with the logical axis number of the axis itself and coupling mode HLI_AXIS_COUPLING_DIRECT must be defined.

ST element

.FractNumerator

Data type

INT

Value range

The permissible range is [-32768 .... 32767]. A value of zero has the same effect as coupling mode HLI_AXIS_COUPLING_INACTIVE.

Description

Numerator of coupling factor if coupling mode is set to HLI_AXIS_COUPLING_FRACT. For all other coupling modes this element is not used.

The maximal permissible value for the coupling factor desc[idx].FractNumerator / .desc[idx].FractDenominator is HLI_AXIS_COUPLING_FACT_MAX. Exceeding this value leads to error message P-ERR-70397.

ST element

.FractDenominator

Data type

INT

Value range

The permissible range is [-32768 .... 32767], zero excluded. A value of zero in this element leads to error message P-ERR-70396.

Description

Denominator of coupling factor if coupling mode is set to HLI_AXIS_COUPLING_FRACT. For all other coupling modes this element is not used.

The maxima permissible value for the coupling factor desc[idx].FractNumerator / .desc[idx].FractDenominator is HLI_AXIS_COUPLING_FACT_MAX. Exceeding this value leads to error message P-ERR-70397.

Probing signal
Description | With this control unit the PLC can proviode the probinig signal via the HLI. If this control unit is used the axis parameter kenngr.probing_signal_via_plc has to be set to 1. See also [AXIS].
D ata type | MCControlBoolUnit, see description Control Unit
Characteristics | Edge detection. The edge set up in axis parameter kenngr.mess_neg_flanke is used to overtake the probing value.
Access | PLC reads Request + State and writes Command + Enable
ST- Path | pAC[axis_idx]^.addr^.McControlLr_Data.MCControlBoolUnit_ProbingSignal
Commanded, requested and return values
ST element | .X_Command .X_Request . X_State
Data type | BOOL
Value range | [TRUE, FALSE]
Redirection
ST element | . X_Enable

OTC offset
Description | Using this wear offset the wear in orientation of this axis could be corrected. Unit: 0.1µm
Data type | MCControlSGN32Unit, see description Control Unit
Characteristics | Assigned offsets are adjusted over several cycles.
Access | PLC reads Request + State and writes Command + Enable
ST-Path | pAC[axis_idx]^.addr^.McControlLr_Data.MCControlSGN32Unit_OTCOffset
Commanded, requested and return values
ST element | . X_Command .X_Request .X_State
Data type | DINT
Value range | [-P-TOOL-00031, P-TOOL-00031]
Redirection
ST element | .X_Enable


Control commands of a drive

Read/write drive data cyclically
Description | Four elements are available and these can be written by the PLC in each interpolation cycle and transferred to the drives via the subordinate drive protocol. The content and action are application-specific (dependent on the drives)
Data type | MCControlUNS32Unit
Characteristics | Data transfer can currently be used only in the case of SERCOS drives. For this purpose, transfer of the value to the drive must be enabled in the axis parameter list, e.g.: # Cyclic writing of the 4 byte PLC value uns32_1 at S-0-0815 antr_digital.typ.sercos.mdt[1].ident_nr 0815 antr_digital.typ.sercos.mdt[1].ident_len 4 antr_digital.typ.sercos.mdt[1].nc_ref LR_VAR1_OUT # Cyclic reading of the 4 byte PLC value uns32_3 at S-0-0819 antr_digital.typ.sercos.at[1].ident_nr 0819 antr_digital.typ.sercos.at[1].ident_len 4 antr_digital.typ.sercos.at[1].nc_ref LR_VAR3_IN
Access | PLC reads Request + State and writes Command + Enable
ST path | pAC[axis_idx]^.addr^.McControlLr_Data.MCControlUNS32Unit_D<i> where i [1; 4]
Commanded and requested value
ST element | .D_Command .D_Request
Data type | UDINT
Return value
ST path | .D_State
Data type | UDINT
Characteristics | These values are also provided at the position controller interface. See read drive data cyclically (pAC[axis_idx]^.addr^.StateLR_Data.D_Word1)
Redirection
ST path | .X_Enable

Operating mode

Description

Various drive operating modes can be commanded via these elements by the PLC (or operation).

SERCOS-Antriebe:

In the case of SERCOS drives, this information is derived from bit 8 and bit 9 of the control word. This allows switchover between main and ancillary operating modes of the drive.

Mode0 corresponds to the lowest operating mode control bit of the drive.

Currently, variables Mode0 and Mode1 are used only for SERCOS drives.

PROFIDRIVE-Antriebe:

MCControlBoolUnit_Mode0

With this control unit drive functionality parking axis is selected by setting bit 7 of drive control word 2 (STW2).

The state element indicates if the functionality is active in the drive (value of bit 7 in drive status word 2 (ZSW2)).

For a parked axis folluw up operation mode is selected internally.

MCControlBoolUnit_Mode1 :

With this control unit drive functionality parking encoder is selected by setting bit 14 of the encoder control(GX_STW).

The state element indicates if the functionality is active in the drive (value of bit 14 in encoder status word (GX_STW)).

For a parked encoder folluw up operation mode is selected internally.

MCControlBoolUnit_Mode2 :

Is not used at the moment.

Data type

MCControlBoolUnit

Characteristics

Elements MCControlBoolUnit_Mode3  MCControlBoolUnit_Mode6 are currently not used.

Access

PLC reads Request + State and writes Command + Enable

ST path

pAC[axis_idx]^.addr^.McControlLr_Data.MCControlBoolUnit_Mode<i>

where i from [0; 6]

Commanded, requested and return value

ST element

.X_Command

.X_Request

.X_State

Data type

BOOL

Value range

[TRUE = Bit set, FALSE]

Redirection

ST element

. X_Enable


External commanding of an axis

Activation of external position- or velocity command values, Axis
Description | Predefinition of velocity- or position command values by the PLC effective additional to the interpolator. No monitoring of the values regarding the dynamic limits of the axis. To activate this interface axis parameter P-AXIS-00091 (see also [AXIS]) has to be set to 1.
Data type | MCControlAddCmdValueUnit, s. description Control Unit
Characteristics | While using this interface there is a durable offset of the axis positions in the interpolator and decoder. A new synchronisation of the axes positions is executed e.g. during program start, after homing, after measuring or by the NC-command #SET DEC LR SOLL. If no synchronisation is wanted parameter P-AXIS-00322 (see also [AXIS]) has to be set to 1.
Access | PLC writes Command + Enable
ST path | pAC[axis_idx]^.addr^.McControlLr_Data.MCControlAddCmdValueUnit_AddCmdValue
Commanded values
ST element | . HLIAddCmdValue_Command
Data type | HLIAddCmdValueData
Activation
ST element | . X_Enable

External command values, Axis
Description | Handing over of the additional position- or velocity command values. After activation both values are effective at the same time.
Data type | HLIAddCmdValueData
ST path | pAC[axis_idx]^.addr^.McControlLr_Data.MCControlAddCmdValueUnit_AddCmdValue.HLIAddCmdValue_Command
Elements of data type
ST element | . D_AddPosValue
Characteristics | Absolute value
Data type | DINT
Unit | 0.1 μ m
Access | PLC writes
ST element | .D_AddSpeedValue
Data type | DINT
Unit | 1 μ m/s
Access | PLC writes


Introduction

A spindle is an axis with extended properties. At the CNC end, a spindle is mapped by means of a separate motion controller (interpolator).

This means that the spindle axis can be moved not only by the NC program. Movement jobs may also be generated at any time by the PLC.


Description of the spindle-specific interface

More:

button Speeds of a spindle

button Positions of a spindle

button Status information of a spindle

button Control commands of a spindle

button External spindle tasking


Speeds of a spindle

Speed setpoint
Description | Current speed setpoint of the spindle
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.StateLR_Data.D_ActiveRev
Unit | 10-3 °/s
Data type | DINT
Access | PLC reads
Characteristics | If the axis is not a spindle, the value is undefined.

Actual speed
Description | Current actual speed of the spindle
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.StateLR_Data.D_CurrentRev
Unit | 10-3 °/s
Data type | DINT
Access | PLC reads
Characteristics | If the axis is not a spindle, the value is undefined.

Programmed speed
Description | Speed setpoint of the spindle programmed via M03, M04 or S in the NC program
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.StateLR_Data.D_CmdRev
Unit | 10-3 °/s
Data type | DINT
Access | PLC reads
Characteristics | If the axis is not a spindle, the value is undefined.


Positions of a spindle

Target position
Description | Target position when positioning with M19
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.StateIpo_Data.HLIAxeDispData_Spindle.D_CmdPosition
Unit | 10-4 °
Data type | DINT
Access | PLC reads
Characteristics |

Actual position
Description | Current actual position when positioning with M19
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.StateIpo_Data.HLIAxeDispData_Spindle.D_ActPosition
Unit | 10-4 °
Data type | DINT
Access | PLC reads
Characteristics |


Status information of a spindle

Operating state
Description | Current operating state of the spindle
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.StateIpo_Data.HLIAxeDispData_Spindle.D_Mode
Data type | UDINT
Value range | 1 M05 active 2 M03 active 4 M04 active 8 M19 active 16 Superimposed movement active (PLCopen) 32 RPF active
Access | PLC reads
Characteristics |

Speed monitoring active
Description | Speed monitoring is activated for the spindle.
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.StateLR_Data.X_RevControlActiv
Data type | BOOL
Value range | [TRUE = Speed monitoring is active, FALSE]
Access | PLC reads
Characteristics | If the axis is not a spindle, the value is undefined.

Speed setpoint reached
Description | The spindle has reached the programmed speed setpoint.
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.StateLR_Data.X_RevReached
Data type | BOOL
Value range | [TRUE = Speed setpoint reached, FALSE]
Access | PLC reads
Characteristics | If the axis is not a spindle, the value is undefined.

Spindle stopped
Description | The spindle speed is lower than the value of vb_min_null (speed = 0) contained in the axis parameter list.
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.StateLR_Data.X_RevZero
Data type | BOOL
Value range | [TRUE = Spindle stopped, FALSE]
Access | PLC reads
Characteristics | If the axis is not a spindle, the value is undefined.

Speed monitoring invalid
Description | If the speed of rotation of the spindle exceeds the limit speed of the position sensor of the spindle, speed monitoring is deactivated. The limit speed for the position measuring system is defined in the axis parameter list by parameter vb_regelgrenze.
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.StateLR_Data.X_RevControlInvalid
Data type | BOOL
Value range | [TRUE = Speed monitoring invalid, FALSE]
Access | PLC reads
Characteristics | If the axis is not a spindle, the value is undefined.

Residual path
Description | Residual path when positioning with M19
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.StateIpo_Data.HLIAxeDispData_Spindle.D_DistToGo
Unit | 10-4 °
Data type | DINT
Access | PLC reads
Characteristics |

Spindle order error
Description | A job for the spindle has not been able to be performed owing to an error.
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.StateIpo_Data.X_spindle_order_error_r
Data type | BOOL
Value range | [TRUE = Job not executed, FALSE]
Access | PLC reads
Characteristics | Valid only in conjunction with external spindle tasking by the PLC


Control commands of a spindle

Spindle stop at end of program
Description | If this element has the value TRUE at end of the program, the spindle is stopped.
Data type | MCControlBoolUnit, see description Control Unit
Characteristics |
Access | PLC reads Request + State and writes Command + Enable
ST path | pAC[axis_idx]^.addr^.McControlIpo_Data.MCControlBoolUnit_SpdlStopAtProgEnd
Commanded, requested and return value
ST element | .X_Command .X_Request .X_State
Data type | BOOL
Value range | [TRUE = Spindle is stopped at end of program, FALSE]
Redirection
ST element | . X_Enable

Spindle reset
Description | Tasking a reset for the spindle.
Data type | MCControlBoolUnit, see description Control Unit
Characteristics |
Access | PLC reads Request + State and writes Command + Enable
ST path | pAC[axis_idx]^.addr^.McControlIpo_Data.MCControlBoolUnit_SpdlReset
Commanded and requested Value
ST element | .X_Command .X_Request
Data type | BOOL
Value range | [TRUE spindle reset tasked, FALSE]
Return value
ST element | . X_State
Data type | BOOL
Value range | [TRUE = Spindle reset is performed, FALSE]
Redirection
ST element | . X_Enable

Spindle error
Description | Sets the spindle to Error state
Data type | MCControlBoolUnit, see description Control Unit
Characteristics |
Access | PLC reads Request + State and writes Command + Enable
ST path | pAC[axis_idx]^.addr^.McControlIpo_Data.MCControlBoolUnit_SpdlError
Commanded, requested and return value
ST element | .X_Command .X_Request .X_State
Data type | BOOL
Value range | [TRUE, FALSE]
Redirection
ST element | . X_Enable


External spindle tasking

More:

button Control unit of external spindle tasking

button User data for external spindle tasking


Control unit of external spindle tasking

External spindle tasking

Description

External spindle tasking. Commands, e.g. spindle stop or spindle positioning, can be issued to the spindle via this control unit via the HLI interface. The other parameters of the job for the spindle must be entered in structure HLIExtToIpoData.

Data type

MCControlExtToIpo

Commanded value

ST path

pAC[axis_idx]^.addr^.McControlIpo_Data.MCControlExtToIpo_ExtToIpo.HLIExtToIpoData_Command

Information flow

PLC -> CNC

Data type

HLIExtToIpoData

Access

PLC writes

Flow control, commanded data

ST path

pAC[axis_idx]^.addr^.McControlIpo_Data.MCControlExtToIpo_ExtToIpo.X_CommandSemaphor

Information flow

PLC <-> CNC

Data type

BOOL

Value range

[TRUE = Data is valid, FALSE = Data has been accepted]

Access

Usage data item

CNC accepts the commanded values if this element has the value TRUE. After acceptance, CNC sets this value to FALSE.

PLC sets this element to TRUE if the commanded values have been enabled for transfer by CNC. The commanded values can be updated by the PLC only if this element has the value FALSE.


User data for external spindle tasking

The parameters for external spindle tasking must be saved in the structure elements described below. Not all structure elements need to be completed dependent on the type of job for the spindle.

Programmed block feed
Description | Programmed block feed
Information flow | PLC -> CNC
ST path | pAC[axis_idx]^.addr^.McControlIpo_Data.MCControlExtToIpo_ExtToIpo.HLIExtToIpoData_Command.D_VbProg
Unit | 10-3 °/s
Data type | DINT
Access | PLC writes

G and M functions
Description | Bit-coded spindle parameters
Information flow | PLC -> CNC
ST path | pAC[axis_idx]^.addr^.McControlIpo_Data.MCControlExtToIpo_ExtToIpo.HLIExtToIpoData_Command.D_GeoGmFkt
Data type | UDINT
Value range | Only the following 2 bits are currently used: HLI_OPTIM_RICHTEN 0x00000010L Dress rotary axis optimised. When spindle positioning, the target position is approached over the shortest possible path. HLI_ABSOLUT 0x00000100L Position information absolute
Access | PLC writes

Traverse path
Description | Traverse path (relative or absolute) when positioning the spindle with M19.
Information flow | PLC -> CNC
ST path | pAC[axis_idx]^.addr^.McControlIpo_Data.MCControlExtToIpo_ExtToIpo.HLIExtToIpoData_Command.D_Fahrweg
Unit | 10-4 °
Data type | DINT
Access | PLC writes

Type of spindle tasking
Description | The type of spindle tasking is defined with this element.
Information flow | PLC -> CNC
ST path | pAC[axis_idx]^.addr^.McControlIpo_Data.MCControlExtToIpo_ExtToIpo.HLIExtToIpoData_Command.W_SatzTyp
Data type | UINT
Value range | The following values can be used: 1 HLI_NC_MOVE_LIN Linear interpolation 7 HLI_NC_MOVREF Homing 16 HLI_NC_MOVE_ENDLOS Continuous rotation 20 HLI_NC_GETRIEBE Shift gear of axis 29 HLI_NC_SPINDEL_STOP Stopping the spindle from continuous rotation 30 HLI_NC_SUPER_IMPOSED according PLCopen MC_SuperImposed 31 HLI_NC_TABLE_SELECT Selection of a table according PLCopen MC_CamTableSelect 32 HLI_NC_CAM_IN according PLCopen MC_CamIn 33 HLI_NC_CAM_OUT according PLCopen MC_CamOut 34 HLI_NC_GEAR_IN according PLCopen MC_GearIn 35 HLI_NC_GEAR_OUT according PLCopen MC_GearOut 36 HLI_NC_PHASING according PLCopen MC_Phasing 38 HLI_NC_TOUCH_PROBE according PLCOpen MC_TouchProbe 39 HLI_NC_ABORT_TRIGGER according. PLCOpen MC_AbortTrigger
Access | PLC writes

Direction of spindle rotation
Description | Defining the direction of spindle rotation
Information flow | PLC -> CNC
ST path | pAC[axis_idx]^.addr^.McControlIpo_Data.MCControlExtToIpo_ExtToIpo.HLIExtToIpoData_Command.W_DrehInfo
Data type | UINT
Value range | The following values apply when the spindle is moving: 0x0000 Negative direction of rotation 0x0001 HLI_SPDL_POS_DREHR Positive direction of rotation
Access | PLC writes


Introduction

The command variables required for a machine movement are generated within a channel. In this case, an input information item which may be an instruction of an NC program, a manual traverse block or an incremental traverse command is converted to position setpoints for the machine drives. In order to generate a defined relative movement between tool and workpiece, it is necessary to coordinate command variable generation of the machine axes involved. Within this framework, we talk of axes with a channel relationship. How many axes are controlled on one channel and the type of axes  translatory or rotary  are dependent on the machine concept.

For example, in the case of five-axis milling, three translatory and two rotary axes are controlled on one channel. Some contemporary machines offer the option of controlling their axes on several channels. A multi-carriage automatic lathe is a graphic example of this. On these machines, specific traverse movements are preset in the program for the individual channels and the corresponding command variables are generated mutually independently. However, it is possible to incorporate synchronisation points in the relevant NC programs in order to coordinate the channels.

Controls allow for these machine concepts by organising command variable generation on separate channels. Accordingly, a separate NC program is started on each channel. Cross-channel synchronisation is performed either using NC commands or via the PLC.


Description of the channel-specific interface

More:

button Status information of a channel

button Control commands of a channel


Status information of a channel

Covered Distance
Description | Current path in relation to block path.
Information flow | CNC -> PLC
Unit | 0.1 %
ST path | pMC[channel_idx]^.addr^.StateBahn_Data.D_CoveredDistance
Data type | DINT
Access | PLC reads
Characteristics | If a main axis is moved, the covered distance is the current path in relation to block path of the first three axes (main axes, 3D). If no main axis is moved, the covered distance is the path in relation to block path of the axis with the longest movement time.

Programmed feedrate
Description | Feedrate programmed in the NC program via F<value>
Information flow | CNC -> PLC
Unit | 1 µm/s
ST path | pMC[channel_idx]^.addr^.StateBahn_Data.D_CommandFeed
Data type | DINT
Access | PLC reads
Characteristics |

Current feedrate
Description | Current feedrate during interpolation.
Information flow | CNC -> PLC
Unit | 1 µm/s
ST path | pMC[channel_idx]^.addr^.StateBahn_Data.D_ActiveFeed
Data type | DINT
Access | PLC reads
Characteristics |

Owing to the architecture of the NC kernel in which different components operate asynchronously with respect to each other, specific status information items may be provided several times by the various control components.

For example, signal X_ProgramEnd in the status display of the decoder means that the decoder has completed decoding of the program while actual interpolation by the path interpolator may not yet be complete. The end of interpolation of the path axes is indicated by signal X_ProgramEnd in the status data of the path interpolator.

End of program reached
Description | Interpolator has reached end of program
Information flow | CNC -> PLC
ST path | pMC[channel_idx]^.addr^.StateBahn_Data.X_ProgramEnd
Data type | BOOL
Value range | [TRUE = End of program reached, FALSE]
Access | PLC reads
Characteristics |

End of program reached
Description | Decoder has reached end of program.
Information flow | CNC -> PLC
ST path | pMC[channel_idx]^.addr^.StateDecoder_Data.X_ProgramEnd
Data type | BOOL
Value range | [TRUE = End of program reached, FALSE]
Access | PLC reads
Characteristics | Caution: The machine cannot move further since the interpolation signal is relevant to a machine movement.

End of program reached
Description | The Look-Ahead function has reached the end of program
Information flow | CNC -> PLC
ST path | pMC[channel_idx]^.addr^.StateBavo_Data.X_ProgramEnd
Data type | BOOL
Value range | [TRUE = End of program reached, FALSE]
Access | PLC reads
Characteristics | Required only for diagnosis.

Error occurred  awaiting clearance
Description | An error has occurred with which the movement of the axes has been stopped. The interpolator is waiting for clearance of this error.
Information flow | CNC -> PLC
ST path | pMC[channel_idx]^.addr^.StateBahn_Data.X_WaitErrorRemoval
Data type | BOOL
Value range | [TRUE = Error occurred - interpolator waiting, FALSE]
Access | PLC reads
Characteristics |

Error occurred  waiting for external preset
Description | The decoder waits in Syntax Check mode after an error for a further external preset (continue, abort).
Information flow | CNC -> PLC
ST path | pMC[channel_idx]^.addr^.StateDecoder_Data.X_WaitAfterError
Data type | BOOL
Value range | [TRUE = Error occurred  decoder waiting, FALSE]
Access | PLC reads
Characteristics |

Interpolator active
Description | Machine is to be/is moved.
Information flow | CNC -> PLC
ST path | pMC[channel_idx]^.addr^.StateBahn_Data.X_InterpolationActive
Data type | BOOL
Value range | [TRUE = Machine is to be/is moved, FALSE]
Access | PLC reads
Characteristics |

Technology function Acknowledgement
Description | The interpolator waits for the acknowledgement of a technology function from the PLC.
Information flow | CNC -> PLC
ST path | pMC[channel_idx]^.addr^.StateBahn_Data.X_WaitTechnoAcknowledge
Data type | BOOL
Value range | [TRUE = Waiting for acknowledgement of technology function, FALSE]
Access | PLC reads
Characteristics |

Enable continuation of movement
Description | The interpolator is waiting for an Enable to continue the movement after a stop in Single-Step mode.
Information flow | CNC -> PLC
ST path | pMC[channel_idx]^.addr^.StateBahn_Data.X_WaitContinue
Data type | BOOL
Value range | [TRUE = Interpolator waiting for continuation of movement, FALSE]
Access | PLC reads
Characteristics |

Dwell time active
Description | The interpolator is waiting on the basis of a programmed dwell time (G04).
Information flow | CNC -> PLC
ST path | pMC[channel_idx]^.addr^.StateBahn_Data.X_DwellTimeActive
Data type | BOOL
Value range | [TRUE = Interpolator waiting, FALSE]
Access | PLC reads
Characteristics |

Axis group in position
Description | All axes of the axis group have reached their programmed end positions.
Information flow | CNC -> PLC
ST path | pMC[channel_idx]^.addr^.StateBahn_Data.X_AxesInPosition
Data type | BOOL
Value range | [TRUE, FALSE]
Access | PLC reads
Characteristics |

Waiting for axis group in position
Description | The interpolator waits in Single-Block mode, in the case of a programmed halt (M00) or an optional halt (M01), for all axes to be in position.
Information flow | CNC -> PLC
ST path | pMC[channel_idx]^.addr^.StateBahn_Data.X_WaitAxesInPosition
Data type | BOOL
Value range | [TRUE, FALSE]
Access | PLC reads
Characteristics |

Waiting for requested axis
Description | The Look-Ahead function is waiting for receipt of a programmed axis request (#CALL AX, see Programming Manual).
Information flow | CNC -> PLC
ST path | pMC[channel_idx]^.addr^.StateBavo_Data.X_WaitForAxis
Data type | BOOL
Value range | [TRUE = Waiting for requested axis, FALSE]
Access | PLC reads
Characteristics |

Block search active
Description | The interpolator works in block search mode.
Information flow | CNC -> PLC
ST path | pMC[channel_idx]^.addr^.StateBahn_Data.X_BlockSearchActive
Data type | BOOL
Value range | [TRUE = active - Interpolator works in block search mode., FALSE]
Access | PLC is reading
Characteristics |

Block search active
Description | The Look ahead works in block search mode
Information flow | CNC -> PLC
ST path | pMC[channel_idx]^.addr^.StateBavo_Data.X_BlockSearchActive
Data type | BOOL
Value range | [TRUE = active  Look ahead works in block search mode, FALSE]
Access | PLC is reading
Characteristics |

Block search active
Description | Decoder works in block search mode
Information flow | CNC -> PLC
ST path | pMC[channel_idx]^.addr^.StateDecoder_Data.X_BlockSearchActive
Data type | BOOL
Value range | [TRUE = active - Decoder works in block search mode, FALSE]
Access | PLC is reading
Characteristics |

Path velocity falls below a limit
Description | The path velocity falls below the parametrized limit.
Information flow | CNC -> PLC
ST path | pMC[channel_idx]^.addr^.StateBahn_Data.X_SpeedLimitDetect
Data type | BOOL
Value range | [TRUE = active  Path velocity falls below the parametrized limit, FALSE]
Access | PLC is reading
Characteristics |


Control commands of a channel

Skip mode, NC block
Description | Activates/deactivates Skip mode at interpreter level for the NC program. The status of Skip mode is evaluated only at the start of the NC program. Switchover during execution of an NC program has no effect.
Data type | MCControlBoolUnit, see description Control Unit
Characteristics |
Access | PLC reads Request + State and writes Command + Enable
ST path | pMC[channel_idx]^.addr^.MCControlDecoder_Data.MCControlBoolUnit_ProgramBlockIgnore
Commanded, requested and return value
ST element | .X_Command .X_Request .X_State
Data type | BOOL
Value range | [TRUE = Skip mode NC block ON, FALSE = Skip mode NC block OFF, FALSE]
Redirection
ST element | . X_Enable

Single-Block mode at interpreter level NC block
Description | Activate/deactivate Single-Block mode at interpreter level. A restart must be present for each block
Data type | MCControlBoolUnit, see description Control Unit
Characteristics | Is currently not yet supported
Access | PLC reads Request + State and writes Command + Enable
ST path | pMC[channel_idx]^.addr^.MCControlDecoder_Data.MCControlBoolUnit_SingleBlock
Commanded, requested and return value
ST element | .X_Command .X_Request .X_State
Data type | BOOL
Value range | [TRUE = Single-Block mode ON, FALSE]
Redirection
ST element | . X_Enable

Enable processing next NC block
Description | Enable for processing the next NC block. This element serves to synchronise the geometry chain with the PLC. For this purpose, the PLC blocks the Single-Block step enable and thus stops the interpreter.
Data type | MCControlBoolUnit, see description Control Unit
Characteristics | Is currently not yet supported.
Access | PLC reads Request + State and writes Command + Enable
ST path | pMC[channel_idx]^.addr^.MCControlDecoder_Data.MCControlBoolUnit_ContinueMachining
Commanded, requested and return value
ST element | .X_Command .X_Request .X_State
Data type | BOOL
Value range | [TRUE, FALSE]
Redirection
ST element | . X_Enable

Continuation, NC program decoding
Description | Continues decoding an NC program after an error has occurred if syntax check (Simulation mode) and interactive step enabling of decoding is activated (decoder parameter, characteristic parameter: syn_chk.interaktiv = 1).
Data type | MCControlBoolUnit, see description Control Unit
Characteristics | Is currently not yet supported.
Access | PLC reads Request + State and writes Command + Enable
ST path | pMC[channel_idx]^.addr^.MCControlDecoder_Data.MCControlBoolUnit_ReleaseStop
Commanded, requested and return value
ST element | .X_Command .X_Request .X_State
Data type | BOOL
Value range | [TRUE, FALSE]
Redirection
ST element | . X_Enable

Stop NC program decoding
Description | Stops decoding of an NC program if interactive enabling of further processing of the NC program has been activated in Syntax Check Simulation mode.
Data type | MCControlBoolUnit, see description Control Unit
Characteristics | Is currently not yet supported.
Access | PLC reads Request + State and writes Command + Enable
ST path | pMC[channel_idx]^.addr^.MCControlDecoder_Data.MCControlBoolUnit_DecStop
Commanded, requested and return value
ST element | .X_Command .X_Request .X_State
Data type | BOOL
Value range | [TRUE, FALSE]
Redirection
ST element | . X_Enable

Channel operating mode
Description | Selection of a specific Channel operating mode, such as Syntax Check or Production Time Computation
Data type | MCControlSGN32Unit, see description Control Unit
Characteristics |
Access | PLC reads Request + State and writes Command + Enable
ST path. | pMC[channel_idx]^.addr^.MCControlDecoder_Data.MCControlSGN32Unit_ExecutionMode
Commanded, requested and return value
ST element | .D_Command .D_Request .D_State
Data type | DINT
Value range | 0x0000 ISG_STANDARD Normal mode 0x0001 SV Block search 0x0002 SOLLKON Offline Simulation with output of setpoint data 0x0802 SOLLKON Offline Simulation without output of setpoint data 0x0004 ON_LINE Simulation online visualisation 0x0008 SYNCHK Simulation syntax check 0x0010 PROD_TIME Simulation production time computation 0x0020 ONLINE_PROD_TIME Simulation online production time computation 0x0040 MACHINE_LOCK Dry run without axis movement 0x0080 TECHNO_FILTER Dry run TECHNO filter 0x0100 KIN_TRAFO_OFF Overwrites automatic enabling for kinematic transformations by a characteristic parameter defined in SDA_MDS (sda_mds*.lis).
Redirection
ST element | . X_Enable

Index of the position offset group

Description

A position offset defines an additional offset allowing, for instance, differing clamping positions of a workpiece in the working area of a machine to be taken into consideration.

Position offsets are defined in the position offset data. The position offsets for each axis are specified within a position offset group. Selection of a position offset group is performed on the basis of the index of the group. The data of the position offsets is evaluated by the CNC at the start of the program.

Data type

MCControlSGN16Unit, see description Control Unit

Characteristics

Access

PLC reads Request + State and writes Command + Enable

ST path

pMC[channel_idx]^.addr^.MCControlDecoder_Data.MCControlSGN16Unit_ClampPosition

Commanded, requested and return value

ST element

.D_Command

.D_Request

.D_State

Data type

INT

Value range

[0, 67]

Redirection

ST element

. X_Enable

Feed hold ON/OFF
Description | Channel-specific feed hold. Setting this element to TRUE means immediate ramp-down of the feedrate during interpolation in accordance with the set accelerations to feedrate = 0.
Data type | MCControlBoolUnit, see description Control Unit
Characteristics |
Access | PLC reads Request + State and writes Command + Enable
ST path | pMC[channel_idx]^.addr^.MCControlBahn_Data.MCControlBoolUnit_FeedHold
Commanded, requested and return value
ST element | .X_Command .X_Request .X_State
Data type | BOOL
Value range | [TRUE = Feed hold ON, FALSE]
Redirection
ST element | . X_Enable

In the current operation mode the channel can be stopped by a FEEDHOLD or by a MCM-STOP-command (see States graph of the operating modes). In both cases the operation mode shows the state HOLD.

Otherwise after a stop the channel can be continued by removing the FEEDHOLD or by a MCM-RESUME.

This means the signals FEEDHOLD or MCM-STOP can be used symmetrical. A MCM-STOP internal creates a FEEDHOLD. This means, the PLC must provide the feedhold-control unit to push the MCM-STOP-command.

Fig. 0 . 7 : Interaction Feedhold and MCM-STOP

Emergency stop
Description | If this element is set active (TRUE) for emergency stop, interpolation is aborted immediately by output of the zero setpoint or by a deceleration in accordance with emergency deceleration. The NC kernel reverts to Error state. This type of movement influencing has maximum priority.
Data type | MCControlBoolUnit, see description Control Unit
Access | PLC reads Request + State and writes Command + Enable
ST path | pMC[channel_idx]^.addr^.MCControlBahn_Data.MCControlBoolUnit_EmergencyStop
Commanded, requested and return value
ST element | .X_Command .X_Request .X_State
Data type | BOOL
Value range | [TRUE = Emergency stop active, FALSE]
Redirection
ST element | . X_Enable

Single-Block mode
Description | Activating/deactivating Single-Block mode. Single-Block mode refers only to motion blocks. For as long as Single-Block mode is activated, the system is decelerated to feedrate = 0 at the end of each motion block. The following blocks can then be executed only by setting element continue motion if all axes are located in the control window. A next NC block is then executed with each leading edge of the signal.
Data type | MCControlBoolUnit, see description Control Unit
Access | PLC reads Request + State and writes Command + Enable
ST path | pMC[channel_idx]^.addr^.MCControlBahn_Data.MCControlBoolUnit_SingleBlock
Commanded, requested and return value
ST element | .X_Command .X_Request .X_State
Data type | BOOL
Value range | [TRUE, FALSE]
Redirection
ST element | .X_Enable

Optional stop

Description

Activating/deactivating optional stop.

If function M01 (optional stop) is programmed in the current block of the NC program, setting this element to value TRUE allows a stop at the end of the block (ramped deceleration in accordance with the permitted accelerations).

The following block can be enabled by activating element Continue Machining if the NC kernel indicates that all axes are in the control window by resetting status flag X_WaitAxesInPosition.

Data type

MCControlBoolUnit, see description Control Unit

Access

PLC reads Request + State and writes Command + Enable

ST path

pMC[channel_idx]^.addr^.MCControlBahn_Data.MCControlBoolUnit_M01StopEnable

Commanded, requested and return value

ST element

. X_Command

.X_Request

.X_State

Data type

BOOL

Value range

[TRUE = Optional stop active, FALSE]

Redirection

ST element

. X_Enable

Continue motion
Description | If the value of element Continue Motion is set to TRUE, program execution interrupted by selection of Single-Block mode and/or Optional stop and/or by M00 in the NC program is resumed. The precondition for this is that all axes be in the control window. An NC block is executed with each leading edge at this input.
Data type | MCControlBoolUnit, see description Control Unit
Characteristics | Edge evaluation
Access | PLC reads Request + State and writes Command + Enable
ST path | pMC[channel_idx]^.addr^.MCControlBahn_Data.MCControlBoolUnit_ContinueMotion
Commanded, requested and return value
ST element | .X_Command .X_Request .X_State
Data type | BOOL
Value range | [TRUE, FALSE]
Redirection
ST element | . X_Enable

Machining simulation ON/OFF
Description | Activating/deactivating machining simulation. During machining simulation, all technology functions of the NC program are not output to the PLC but acknowledged internally.
Data type | MCControlBoolUnit, see description Control Unit
Characteristics |
Access | PLC reads Request + State and writes Command + Enable
ST path | pMC[channel_idx]^.addr^.MCControlBahn_Data.MCControlBoolUnit_MachiningSimulation
Commanded, requested and return value
ST element | .X_Command .X_Request .X_State
Data type | BOOL
Value range | [TRUE, FALSE]
Redirection
ST element | . X_Enable

Feed override
Description | The feed override allows the programmed tool path feedrate to be weighted with an additional percentage factor.
Data type | MCControlUNS16Unit, see description Control Unit
Access | PLC reads Request + State and writes Command + Enable
ST path | pMC[channel_idx]^.addr^.MCControlBahn_Data.MCControlUNS16Unit_OverrideFeedrate
Commanded, requested and return value
ST element | .D_Command .D_Request .D_State
Unit | 0.1 %
Data type | UINT
Value range | [0, P-CHAN-00056] P-CHAN-00056 is a channel-specific parameter. The default value is 1500. See [CHAN].
Redirection
ST element | . X_Enable

Rapid feed override

Description

By the rapid feed override the G0 movements can be weighted by an additional factor.

See also the characteristics described below!

Data type

MCControlUNS16Unit, see description Control Unit

Access

PLC Request + State and writes Command + Enable

ST path

pMC[channel_idx]^.addr^.MCControlBahn_Data.MCControlUNS16Unit_OverrideRapidMove

Commanded, requested and return value

ST element

.D_Command

.D_Request

.D_State

Unit

0.1 %

Data type

UINT

Value range

[0, 1000]

Redirection

ST element

.X_Enable

Characteristics

Parameterization/ mode of operation

The rapid feed override is only active, if this function is also activated in the channel parameters list. Otherwise there is made no distinction between feed and rapid feed blocks.

The several modes can be set by the channel parameter P-CHAN-00181:

- The rapid feed override is not active. The feed override affects on feed and rapid feed blocks.

- The rapid feed override is active. In feed blocks the feed override is active, in rapid feed blocks the minimum of feed and rapid feed override isactive.

The rapid feed override is active. In feed blocks the feed override is active and in rapid feed blocks only the rapid feed override is active.

Beschleunigungsoverride

Description

Durch den Beschleunigungsoverride kann die aktive Bahnbeschleunigung mit einem zusätzlichen Faktor gewichtet werden.

Wenn erforderlich wird die Bahnbeschleunigung in dynamischen Bewegungsphasen auf den Nennnwert gesetzt.

Bei aktivem Feedhold wird der Overridewert ignoriert. Die Schnittstelle ist nur wirksam wenn der Kanalparameter P-CHAN-00170 nicht gesetzt ist !

Data type

MCControlUNS16Unit, s. description Control Unit

Access

PLC reads Request + State and writes Command + Enable

ST path

pMC[channel_idx]^.addr^.MCControlBahn_Data.MCControlUNS16Unit_OverrideAcceleration

Commanded, requested and return value

ST element

.D_Command

.D_Request

.D_State

Unit

0.1 %

Data type

UINT

Value range

[50, 1000]

Redirection

ST element

.X_Enable

Interrupt output of command values on real axes

Description

The output of command values of the NC-channel on physical axes is interrupted. The NC-channel is stopped and the assignment to the real axes is disabled.

After that the physical axes can be requested and moved by an other channel. During this a different logical axis can be assigned to a physical axis.

After removing of this interruption the axes can be requested again and the original channel can continue with movement.

Data type

MCControlBoolUnit, s. description Control Unit

Characteristics

Access

PLC reads Request + State and writes Command + Enable

ST path

pMC[channel_idx]^.addr^.MCControlBahn_Data.MCControlBoolUnit_SuspendAxisOutput

Commanded, requested and return value

ST element

. X_Command

.X_Request

.X_State

Data type

BOOL

Value range

[TRUE - , FALSE]

Redirection

ST element

. X_Enable

External input of feedrate
Description | External input of feedrate. The activation of the preselected feedrate is done via the control unit MCControlBoolUnit_ExtCommandSpeedValid.
Data type | MCControlUNS32Unit, s. description Control Unit
Characteristics | The feedrate transfered by this interface is automatical restricted to the limits defined in the axis parameters.
Unit | 1 μ m/s
Access | PLC reads Request + State and writes Command + Enable
ST path | pMC[channel_idx]^.addr^.MCControlBahn_Data.MCControlUNS32Unit_ExtCommandSpeed
Commanded and requested value
ST element | .D_Command . D_Request
Data type | UDINT
Return value
ST element | . D_State
Data type | UDINT
Characteristics | In D-State the really used feedrate in interpolator including a possible override manipulation is displayed.
Redirection
ST element | . X_Enable

Activation of external feedrate
Description | Activation of the feedrate commanded in the control unit MCControlUNS32Unit_ExtCommandSpeed. To reach the commanded feedrate, all axes involved in movement are accelerated or decelerated.
Data type | MCControlBoolUnit, s. description Control Unit
Access | PLC reads Request + State and writes Command + Enable
ST path | pMC[channel_idx]^.addr^.MCControlBahn_Data.MCControlBoolUnit_ExtCommandSpeedValid
Commanded, requested and return value
ST element | .X_Command .X_Request .X_State
Data type | BOOL
Value range | [TRUE, FALSE]
Redirection
ST element | . X_Enable

Input disable for interpolator
Description | Disabling reading of chnnel blocks in interpolator. When this Control Unit is activated the interpolator stops after executing the already read in blocks.
Data type | MCControlBoolUnit, s. Description Control Unit
Access | PLC reads Request + State and writes Command + Enable
ST-Path | pMC[channel_idx]^.addr^.MCControlBahn_Data.MCControlBoolUnit_InputDisable
Commanded, requested and return value
ST element | .X_Command .X_Request .X_State
Data type | BOOL
Value range | [TRUE, FALSE]
Redirection
ST element | . X_Enable

OTC radius offset
Description | The tool radius can be adapted by setting the wear offset according to the wear. Unit: 0.1µm
Data type | MCControlSGN32Unit, see description Control Unit
Characteristics | Assigned offsets are adjusted over several cycles.
Access | PLC reads Request + State and writes Command + Enable
ST-Path | pMC[channel_idx]^.addr^.MCControlBahn_Data.MCControlSGN32Unit_OTCRadiusOffset
Commanded, requested and return value
ST element | .X_Command .X_Request . X_State
Data type | DINT
Value range | [-P-TOOL-00031, P-TOOL-00031]
Redirection
ST element | . X_Enable

Reduced feed, channel
Description | When this signal is activated path velocity is reduced to the values defined in P-AXIS-00214 respectively P-AXIS-00155. See also [AXIS].
Data type | MCControlBoolUnit, see description Control Unit
Characteristics |
Access | PLC reads Request + State and writes Command + Enable
ST path | pMC[channel_idx]^.addr^.MCControlBahn_Data. MCControlBoolUnit_ReducedFeed
Commanded, requested and return value
ST element | .X_Command .X_Request .X_State
Data type | BOOL
Value range | [TRUE = Reduced feed active, FALSE = Reduced feed not active]
Redirection
ST element | . X_Enable

Reduced feed in zone 1, channel
Description | When this signal is activated and axis position is within the values defined in P-AXIS-00085 and P-AXIS-00093 path velocity is reduced to the value defined in P-AXIS-00030. If necessary velocity is reduced after entering the zone. See also [AXIS].
Data type | MCControlBoolUnit, see description Control Unit
Characteristics |
Access | PLC reads Request + State and writes Command + Enable
ST path | pMC[channel_idx]^.addr^.MCControlBahn_Data. MCControlBoolUnit_ReducedFeedZone
Commanded, requested and return value
ST element | .X_Command .X_Request .X_State
Data type | BOOL
Value range | [TRUE = Reduced feed in zone 1 active, FALSE = Reduced feed in zone 1 not active]
Redirection
ST element | . X_Enable

Reduced feed in zone 2, channel
Description | When this signal is activated and axis position is within the values defined in P-AXIS-00097 and P-AXIS-00105 path velocity is reduced to the value defined in P-AXIS-00030. If necessary velocity is reduced after entering the zone. See also [AXIS].
Data type | MCControlBoolUnit, see description Control Unit
Characteristics |
Access | PLC reads Request + State and writes Command + Enable
ST path | pMC[channel_idx]^.addr^.MCControlBahn_Data.MCControlBoolUnit_ReducedFeedZone2
Commanded, requested and return value
ST element | .X_Command .X_Request .X_State
Data type | BOOL
Value range | [TRUE = Reduced feed in zone 2 active, FALSE = Reduced feed in zone 2 not active]
Redirection
ST element | . X_Enable

Time override valid
Description | Activate time override
Data type | MCControlBoolUnit, see description Control Unit
Characteristics |
Access | PLC reads Request + State and writes Command + Enable
ST path | pMC[channel_idx]^.addr^.MCControlBahn_Data.MCControlBoolUnit_OverrideTimeValid
Commanded, requested and return value
ST element | .X_Command .X_Request .X_State
Data type | BOOL
Value range | [TRUE = Time override ist active, time override is not active]
Redirection
ST element | . X_Enable

Time override

Description

Time override functionality allows to influence CNC internal time base. It acts like slow motion.

Time override affects feed and acceleration with different factors.

Example:
If time override is 50% (command_w = 500) feed is reduced by factor 2 and acceleration by factor 4.

Data type

MCControlUNS16Unit, see description Control Unit

Characteristics

Using channel parameter P-CHAN-00111 time override also affects the dwell time functionality. Siehe [CHAN].

Time override affects feed and acceleration independent from real time functions as feedhold or security functions as reduced speed.
User has to keep in mind the fact mentioned above if using the time override functionality !!!!!!!

Access

PLC reads Request + State and writes Command + Enable

ST path

pMC[channel_idx]^.addr^.MCControlBahn_Data.MCControlUNS16Unit_OverrideTime

Commanded, requested and return value

ST element

.command_w

.request_r

. state_r

Unit

0.1 %

Data type

UINT

Value range

[100, 1000]

Redirection

ST element

. enable_w


Control commands of a PLC

More:

button Reset

button Block search


Reset

PLC reset, axis
Description | The PLC can be requested to perform a Reset via this axis-specific interface. For this purpose, the PLC must indicate, by setting element X_Enable, that it would like to be informed of Reset requests by the NC kernel.
Data type | LCControlBoolUnit, see description Control Unit
Characteristics | Usage data item
Access | CNC sets this value to TRUE for tasking a Reset for the PLC. The CNC sets this value to FALSE after the PLC has acknowledged execution of the Reset via element X_State.
ST path | pAC[axis_idx]^.addr^.LcControlIpo_Data.LCControlBoolUnit_PLCReset
Commanded Value
ST element | . X_Command
Information flow | CNC -> PLC
Data type | BOOL
Value range | [TRUE = Reset request from CNC to PLC, FALSE]
Return value
ST element | . X_State
Information flow | PLC -> CNC
Data type | BOOL
Value range | [TRUE = PLC has performed Reset, FALSE]
Request
ST element | . X_Enable

PLC Reset, channel
Description | The PLC can be requested to perform a Reset via this channel-specific interface. For this purpose, the PLC must indicate, by setting element X_Enable, that it would like to be informed of Reset requests by the NC kernel.
Data type | LCControlBoolUnit, see description Control Unit
Characteristics | Usage data item
Access | CNC sets this value to TRUE for tasking a Reset for the PLC. The CNC sets this value to FALSE after the PLC has acknowledged execution of the Reset via element X_State.
ST path | pMC[channel_idx]^.addr^.LCControlBahn_Data.LCControlBoolUnit_PLCReset
Commanded Value
ST element | . X_Command
Information flow | CNC -> PLC
Data type | BOOL
Value range | [TRUE = Reset request from CNC to PLC, FALSE]
Return value
ST element | . X_State
Information flow | PLC -> CNC
Data type | BOOL
Value range | [TRUE = PLC has performed Reset, FALSE]
Request
ST element | . X_Enable

Figure 0.8: Interaktion BOOLEAN-MC-Control Unit and PLC

Before each new request and after receiving reset acknowledge the Signal X_State is cleared by CNC.


Block search

Block search on/off to PLC

Description

Data type

LCControlBoolUnit, s. description Control Unit

Characteristics

Usage data item

Access

NC-Kernel sets this value TRUE if the block search shall be selected and waits for acknowledgement from PLC. PLC acknowledges the selection of block search by setting the element X_State.

During deselection of block search the NC-Kernel sets this value FALSE and waits for acknowledgement from PLC. For this the PLC deletes the element .X_State.

ST path

pMC[channel_idx]^.addr^.LcControlIpo_Data.LCControlBoolUnit_BlockSearch

Commanded value

ST element

. X_Command

Information flow

CNC -> PLC

Data type

BOOL

Value range

[TRUE = Block search shall be selected, FALSE]

Return value

ST element

. X_State

Information flow

PLC -> CNC

Data type

BOOL

Value range

[TRUE = PLC selected block search, FALSE]

Request

ST element

. X_Enable

Figure 0.9: Interaktion BOOLEAN-MC-Control Unit and PLC

In case of CNC-Reset the signals X_Command and X_State will be cleared by CNC.


Introduction

Technology functions can be defined in the channel parameter set (SDA-MDS) for each channel and each axis. The synchronisation mechanism of the technology function is also defined in this parameter set. A distinction is made between two basic types of synchronisation:

q Block-by block synchronisation (default synchronisation)

q Cross-block synchronisation processes.

M functions not defined in the channel parameter set are indicated as unknown M functions by means of an error message after start of the NC program and decoding is aborted.


Management of technology functions

Technology functions to be synchronised block-by-block and technology functions to be synchronised on a cross-block basis. This subdivision is also reflected on the High-Level Interface.

All technology functions to be synchronised block-by-block must be acknowledged at the latest at the of the NC block in which they were programmed. They are thus saved in consecutive sequence in the corresponding management field.

A consecutive order is not necessarily the case with technology functions with cross-block synchronisation. In this case, the non-acknowledged technology functions yet to be executed may be distributed over the entire field (with gaps). In addition, the case may occur that several identical technology functions are present in this field since, owing to cross-block synchronisation, the individual technology commands do not need to be acknowledged at the end of the NC block in which they were programmed. This must be allowed for at the PLC end for generation of the acknowledgement of technology functions.

The number of technology functions programmed in an NC block is made available on the HLI for the field of the technology functions synchronised block-by-block. The number of non-acknowledged technology functions is specified for the field of the technology functions synchronised on a cross-block basis.


Elements for management of axis-specific technology control units

More:

button Block-by-block synchronisation (default synchronisation)

button Cross-block synchronisation


Block-by-block synchronisation (default synchronisation)

Field of the technology functions with block-by block synchronisation
Description | Field of M/H/S/T technology functions with block-by-block synchronisation. Technology functions are saved contiguously in this field.
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.ATechnoUnitAxe_Std[tech_unit_idx]
Data type | ARRAY [1..HLI_MaxTechnoUnitsAxeStdSync] OF TechnoUnitAxe
Characteristics |

Number of technology functions with block-by-block synchronisation
Description | Number of entries in field ATechnoUnitAxe_Std ( = number of M functions to be acknowledged in this block)
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.W_UsedUnitsStdSync
Data type | UINT
Value range | [0, HLI_MaxTechnoUnitsAxeStdSync]


Cross-block synchronisation

Technology functions with cross-block synchronisation
Description | Field of M/H/S/T technology functions with cross-block synchronisation. There may be entries of already acknowledged technology functions between the entries for non-acknowledged M functions.
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.ATechnoUnitAxe_Late[tech_unit_idx]
Data type | ARRAY [1..HLI_MaxTechnoUnitsAxeLateSync] OF TechnoUnitAxe
Characteristics |

Number of technology functions with cross-block synchronisation
Description | Number of non-acknowledged technology functions in field AtechnoUnitAxe_Late
Information flow | CNC -> PLC
ST path | pAC[axis_idx]^.addr^.W_UsedUnitsLateSync
Data type | UINT
Value range | [0, HLI_MaxTechnoUnitsAxeLateSync]


Elements for management of channel-specific technology control units

More:

button Block-by-block synchronisation (default synchronisation)

button Cross-block synchronisation


Block-by-block synchronisation (default synchronisation)

Field of technology functions with block-by-block synchronisation
Description | Field of M/H/S/T technology functions with block-by-block synchronisation. Technology functions are saved contiguously in this field.
Information flow | CNC -> PLC
ST path | pMC[channel_idx]^.addr^.ATechnoUnitChannel_Std[tech_unit_idx]
Data type | ARRAY [1..HLI_MaxTechnoUnitsChStdSync] OF TechnoUnitChannel
Access | PLC reads
Characteristics |

Number of technology functions with block-by-block synchronisation
Description | Number of entries in field ATechnoUnitChannel_Std ( = number of M functions to be acknowledged in this block)
Information flow | CNC -> PLC
ST path | pMC[channel_idx]^.addr^.W_UsedUnitsStdSync
Data type | UINT
Value range | [0, HLI_MaxTechnoUnitsChStdSync]


Cross-block synchronisation

Technology functions with cross-block synchronisation
Description | Field of M/H/S/T technology functions with cross-block synchronisation. There may be entries of already acknowledged technology functions between the entries for non-acknowledged M functions.
Information flow | CNC -> PLC
Unit | 0.1 µm
ST path | pMC[channel_idx]^.addr^.ATechnoUnitChannel_Late[tech_unit_idx]
Data type | ARRAY [1..HLI_MaxTechnoUnitsChLateSync] OF TechnoUnitChannel
Characteristics |

Number of technology functions with cross-block synchronisation
Description | Number of entries in field ATechnoUnitChannel_Late.
Information flow | CNC -> PLC
ST path | pMC[channel_idx]^.addr^.W_UsedUnitsLateSync
Data type | UINT
Value range | [0, HLI_MaxTechnoUnitsChLateSync]


Data of a technology control unit

More:

button Data of an axis-specific technology control unit

button Data of a channel-specific technology control unit


Data of an axis-specific technology control unit

Data of a technology function, axis

Description

A technology control unit contains elements for tasking, acknowledgement and transfer of any required parameters.

Data type

TechnoUnitAxe

Characteristics

ST path

Default synchronisation:

pAC[axis_idx]^.addr^.ATechnoUnitAxe_Std[tech_unit_idx]

Cross-block synchronisation:

pAC[axis_idx]^.addr^.ATechnoUnitAxe_Late[tech_unit_idx]

Job

ST element

. X_Please

Description

By setting X_Please, the CNC signals to the PLC that the technology control unit is to be executed.

Data type

BOOL

Value range

[TRUE, FALSE]

Access

Usage data item

The CNC updates the data of the technology function only if this element is FALSE. After updating, CNC sets this element to TRUE, whereby element X_Done is set to FALSE beforehand.

The PLC reads the data of the technology function if this element has the value TRUE. The PLC sets the value to FALSE after acceptance of the data.

Function type

ST element

. W_FktCtrl

Description

The type of technology function is transferred in W_FktCtrl.

Data type

UINT

Value range

1 = GCW_250_HLIIntfMFkt M function

2 = GCW_250_HLIIntfHFkt H function

3 = GCW_250_HLIIntfSpindel S function

Access

PLC reads

Parameters

ST element

. MSTHProsessAxe_Attribut

Description

Depending on the content of element W_FktCtrl, this element contains the parameters of an

· M function/H function in the case of technology function type GCW_250_HLIIntfMFkt or GCW_250_HLIIntfHFkt

· S function (spindle) in the case of technology function type GCW_250_HLIIntfSpindel

Data type

ARRAY [1..GCW_250_TechnoUnionByteCountChannel] OF BYTE

Value range

Access

PLC reads

Acknowledgement

ST element

. X_Done

Description

By setting element X_Done to TRUE, the PLC signals to the CNC that the technology information has been performed.

Data type

BOOL

Value range

[TRUE, FALSE]

Access

Usage data item

PLC sets the value to TRUE if the technology function has been performed. CNC sets the value to a FALSE before new tasking.


Data of a channel-specific technology control unit

Data of a technology function, channel

Description

A technology control unit contains elements for tasking acknowledgement and transfer of any required parameters.

Data type

TechnoUnitChannel

Characteristics

ST path

Default synchronisation:

pMC[channel_idx]^.addr^.ATechnoUnitChannel_Std[tech_unit_idx]

Cross-block synchronisation:

pMC[axis_idx]^.addr^.ATechnoUnitChannel_Late[tech_unit_idx]

Job

ST element

.X_Please

Description

By setting X_Please, the CNC signals to the PLC that the technology control unit is to be executed.

Data type

BOOL

Value range

[TRUE, FALSE]

Access

Usage data item

The CNC updates the data of the technology function only if this element is FALSE. After updating, the CNC sets this element to TRUE, whereby element X_Done is set to FALSE beforehand.

The PLC reads the data of the technology function if this element has the value TRUE. After transfer of the data, the PLC sets the value to FALSE.

Function type

ST element

. W_FktCtrl

Description

The type of technology function is transferred in W_FktCtrl.

Data type

UINT

Value range

1 = GCW_250_HLIIntfMFkt M function

2 = GCW_250_HLIIntfHFkt H function

3 = GCW_250_HLIIntfSpindel S function

4 = GCW_250_HLIIntfTool T function

Access

PLC reads

Parameter

ST element

. MSTHProsessAxe_Attribut

Description

Depending on the contents of element W_FktCtrl, this element contains the parameters of an

· M function/H function in the case of technology function type GCW_250_HLIIntfMFkt or GCW_250_HLIIntfHFkt

· S function (spindle) in the case of technology function type GCW_250_HLIIntfSpindel

· T function in the case of technology function type GCW_250_HLIIntfTool

Data type

ARRAY [1..GCW_250_TechnoUnionByteCountChannel] OF BYTE

Value range

Access

PLC reads

Acknowledgement

ST element

. X_Done

Description

By setting element X_Done to TRUE, the PLC signals to the CNC that the technology information has been executed.

Data type

BOOL

Value range

[TRUE, FALSE]

Access

Usage data item

PLC sets the value to TRUE if the technology function has been executed.

CNC sets the value to FALSE before new tasking.


Data of the technology functions

More:

button Data of the M function/H function

button Data of the S function

button Data of the T function


Data of the M function/H function

Data of the M function/H function

Description

The function number and the execution time are transferred as additional parameters of an M or H function.

Data type

MHProzess

ST path

pMHProcessData : POINTER TO MHProzess;

Channel-specific, default synchronisation:

pMHProcessData := ADR(pMC[channel_idx]^.addr^.ATechnoUnitChannel_Std[tech_unit_idx].MSTHProsessChannel_Attribut.AB_Data[1]);

Channel-specific, cross-block synchronisation:

pMHProcessData := ADR(pMC[channel_idx]^.addr^.ATechnoUnitChannel_Late[tech_unit_idx].MSTHProsessChannel_Attribut.AB_Data[1]);

Access

PLC reads

Number of the M function/H function

Description

Number of the M or H function. This corresponds to the number in the case of an M or H function programmed in the NC program.

For instance, if M4711 is programmed in the NC program, this leads to a D_Number = 4711.

ST element

. D_Number

Data type

UDINT

Unit

-

Access

Function No.: UDINT;

Function No.:= pMHProcessData^.D_Number

Characteristics

Probable execution time M/H function

Description

Contains the values entered in the channel parameters in entry m_prozess_zeit[]. This allows a timeout function for technology functions to be implemented on the part of the PLC. This is also used internally in the NC for estimating the production time. With synchronization type MOS_TS the variable contains the sample time offset of the M-Code.

ST element

. D_Time

Data type

UDINT

Unit

Us

Access

Time : UDINT;

Time := pMHProcessData^.D_Time

Characteristics

The value is the value for the corresponding M/H function defined in the channel parameter set.

Example: The characteristic parameter is as follows for an M function: spindle[index].mX_prozess_zeit.


Data of the S function

If M functions (M03, M04, M05, M19) relating to a spindle are programmed in the NC program, the technology function data is saved as an S function at the relating axis specific HLI area.

Data of the M function/H function

Description

The parameters of an S function are contained in structure Sprozess.

Data type

Sprozess

ST path

pSProcessData : POINTER TO SProzess;

Axis-specific, default synchronisation:

pSProcessData := ADR(pAC[axis_idx]^.addr^.ATechnoUnitAxe_Std[tech_unit_idx].MSTHProsessAxe_Attribut.AB_Data[1]);

Axis-specific, cross-block synchronisation:

pSProcessData := ADR(pAC[axis_idx]^.addr^.ATechnoUnitAxe_Late[tech_unit_idx].MSTHProsessAxe_Attribut.AB_Data[1]);

Access

PLC reads

Position setpoint of spindle in the case of M19

Description

Position setpoint in the case of spindle position with M19

ST element

.D_Pos

Data type

DINT

Unit

10-4 °

Access

ActivePosition : DINT;

ActivePosition := pSProcessData^.D_Pos;pMHProcessData^.D_Pos

Characteristics

Programmed spindle speed

Description

Programmed spindle speed

ST element

. D_Rev

Data type

DINT

Unit

10-3 °/s

Access

PrgRevolution : DINT;

PrgRevolution: = pSProcessData^.D_Rev;

Characteristics

Probable execution time

Description

Time probably required for processing an S function.

ST element

. D_Zeit

Data type

UDINT

Unit

μs

Access

ExpectedTime : UDINT;

ExpectedTime:= pSProcessData^.D_Zeit;

Characteristics

Number of the M function of the spindle indexing function

Description

Number of the spindle indexing function (M03, M04, M05)

ST element

. W_MoveCmd

Data type

UINT

Unit

Value range

3 M03

4 M04

5 M05

Access

MoveCmdNum : UINT;

MoveCmdNum := pSProcessData^.W_MoveCmd;

Characteristics

Number of the M function of the spindle positioning function

Description

Number of the spindle positioning function (M19)

ST element

. W_PosCmd

Data type

UINT

Value range

0 No M function specified

19 stands for M19

Access

PosCmdNum : UINT;

PosCmdNum := pSProcessData^.W_PosCmd;

Characteristics

Axis number

Description

Number of a logical axis/spindle, unique system-wide

ST element

. W_log_AxeNr

Data type

UINT

Value range

[1, nAxis]

Access

LogAxisNum : UINT;

LogAxisNum := pSProcessData^.W_Log_AxeNr;

Characteristics


Data of the T function

Data of the T function

Description

All data for a tool change is combined in a T function. A structure of type TProzess features data structure HLIToolID_Data of type HLIToolId as the sole element.

Data type

Tprozess

ST path

pTProcessData : POINTER TO TProzess;
pHLIToolIdData : POINTER TO HLIToolId

Channel-specific, default synchronisation:

pTProcessData := ADR(pMC[channel_idx]^.addr^.ATechnoUnitChannel_Std[tech_unit_idx].MSTHProsessChannel_Attribut.AB_Data[1]);

Channel-specific, cross-block synchronisation:

pTProcessData := ADR(pMC[channel_idx]^.addr^.ATechnoUnitChannel_Late[tech_unit_idx].MSTHProsessChannel_Attribut.AB_Data[1]);

pHLIToolIdData := ADR(pTProcessData^.HLIToolIdData);

Access

PLC reads

Number of the tool to be substituted

Description

Number of the tool to be substituted

ST element

. D_Basic

Data type

DINT

Access

ToChangeToolNum : DINT;

ToChangeToolNum := pHLIToolIdData^.D_Basic;

Characteristics

Number of a sister tool

Description

Number of an identical sister tool

ST element

. D_Sister

Data type

DINT

Access

SisterToolNum : DINT;

SisterToolNum := pHLIToolIdData^.D_Sister;

Characteristics

Number of a variant tool

Description

Number of a similar variant tool

ST element

. D_Variant

Data type

DINT

Access

VariantToolNum : DINT;

VariantToolNum := pHLIToolIdData^.D_Variant;

Characteristics

Sister tool valid

Description

Validity identifier for the sister tool.

ST element

. X_SisterValid

Data type

BOOL

Access

SisterToolValid : BOOL;

SisterToolValid := pHLIToolIdData^.X_SisterValid;

Variant tool valid

Description

Validity identifier for the variant tool.

ST element

. X_VariantValid

Data type

BOOL

Access

VariantToolValid : BOOL;

SisterToolValid := pHLIToolIdData^.X_VariantValid;


External variables / V.E. variables

Data can be exchanged between the NC program and the PLC via the HLI with the aid of external variables. Each channel has a separate area for external variables known only on the channel. In addition, there is a cross-channel global data area which all channels may access.

At the PLC end, the data areas for the external variables are represented as an ARRAY OF UDINT. The index of the individual array elements starts with value 1.

A single external variable always takes up one memory block of HLI_VEByteCount (24) bytes, regardless of its data. If an array of external variables has been defined, the individual variables are saved packed in the memory area (several variables per memory block) whereby there may be several consecutive memory blocks used dependent on array size.

When accessing external variables by the PLC, the index of the variables in the memory area of the external variables must be determined initially:

Example, index computation: 4th variable (VarNo. = 4):

Offset = (VarNr 1 )* HLI_VEByteCount / 4 + 1

Thus, there is an offset in the memory of 13 for the variable with index = 3.

The memory area must then be accessed in accordance with the actual data type of the external variables. All information required for this is contained in the configuration list of the external variables.

Please refer to the documentation [EXTV] for further details of external variables.

If the NC kernel runs in the TwinCAT runtime environment, the number of external variables can be configured in the System Manager.

An example program for accessing external variables is available with name HLI-Ve1.pro.

External Variable
Description | Memory area for data exchange between NC program and PLC
Data type | VeData
ST path | pVeData : POINTER TO VEData; VeOffset :DINT; VeOffset := (VarNr 1) * HLI_VEByteCount / 4 + 1; CNC global: pVeData := ADR(pVeGlob^.addr); Channel-specific: pVeData := ADR(pVe[channelIdx]^.addr);
Access | pLRealVal : POINTER TO LREAL; LRealVal : LREAL; pLRealVal := ADR(pVeData^.AHLI_UNS32_Data[VeOffset]); LRealVal := pLRealVal^;
Characteristics | When accessing, access must be performed in accordance with the data type of the external variables.


Operating modes

The CNC distinguishes between five operating modes. It is possible to switch over between these operating modes via the operator-control and/or PLC interface, whereby only one operating mode may be active at any one time.

The following operating modes are define:

Operating mode | ST-Constant | Value | Description
Standby | GCW_250_HLIImcmStandbyMode | 1 | No operating mode is selected. Default after starting the control.
Automatic | GCW_250_HLIImcmAutomaticMode | 2 | The control can run a complete NC program automatically. In this case, program execution can be interrupted and resumed.
Manual-Block | GCW_250_HLIImcmMDIMode | 3 | Movements are commanded by the operator-control computer via a single NC block. The NC block is transferred as a string to the control and executed via a START command. Interruption and resumption of movement are possible in this case.
Manual mode | GCW_250_HLIImcmManualMode | 4 | Movements are commanded by peripherals connected directly to the control (keys, handwheels).
Homing | GCW_250_HLIImcmReferenceMode | 5 | The axes can be referenced. An NC program of name rpf.nc is started in this case.

Table 0.1: Operating modes

An operating mode may have different states. The states of the individual operating modes and their significance in respect of the operating mode are discussed in the Chapters which follow.

More:

button States graph of the operating modes

button Control commands/status information for operating modes


States graph of the operating modes

Note: There is no states graph for operating mode Standby.

Figure 0.10: States graph of an operating mode

A CNC reset is automatically executed with commissioning of the destination operation mode and the state, if the state change requires an abortion (see abort in Fig. 8.8).

The error state is left via an automatically executed reset, if an operation mode is commissioned.

Additional a CNC reset could be forced by following commands:

a) Selection of operation mode = STANDBY and state = SELECTED

b) Explicit command of transition = RESET in the actual active operation mode

c) command of destination state = RESETTING (see below)

More:

button States of operating mode: Automatic

button States of operating mode: Manual-Block

button States of operating mode: Manual mode

button States of operating mode: Homing


States of operating mode: Automatic

State | ST-Constant | Value | Description
DESELECTED | GCW_250_HLIImcmProcessDeselected | 1 | Operating mode is deselected
SELECTED | GCW_250_HLIImcmProcessSelected | 2 | Operating mode Automatic is selected
READY | GCW_250_HLIImcmProcessReady | 3 | NC program is selected
ACTIVE | GCW_250_HLIImcmProcessActive | 4 | NC program running
HOLD | GCW_250_HLIImcmProcessHold | 5 | NC program is interrupted
ERROR | GCW_250_HLIImcmProcessError | 6 | An error has occurred during execution of the NC program.

Table 0.2: States of operating mode Automatic

The NC program name must be transferred on transition from selected to ready.


States of operating mode: Manual-Block

State | ST constant | Value | Description
DESELECTED | GCW_250_HLIImcmProcessDeselected | 1 | Operating mode Manual-Block is deselected.
SELECTED | GCW_250_HLIImcmProcessSelected | 2 | Operating mode Manual-Block is selected. An NC block (NC blocks) can be programmed.
READY | GCW_250_HLIImcmProcessReady | 3 | MDI Block mode is selected. CNC has accepted the programmed NC block.
ACTIVE | GCW_250_HLIImcmProcessActive | 4 | The NC block is run.
HOLD | GCW_250_HLIImcmProcessHold | 5 | NC block is stopped.
ERROR | GCW_250_HLIImcmProcessError | 6 | Error state

Table 0.3 States of operating mode Manual-Block

The manual block (string) must be transferred on transition from selected to ready.


States of operating mode: Manual mode

State | ST constant | Value | Description
DESELECTED | GCW_250_HLIImcmProcessDeselected | 1 | Operating mode is deselected.
SELECTED | GCW_250_HLIImcmProcessSelected | 2 | Operating mode is selected. (Basic state).
READY | GCW_250_HLIImcmProcessReady | 3 | Manual mode is programmed.
ACTIVE | GCW_250_HLIImcmProcessActive | 4 | Manual mode is run.
HOLD | GCW_250_HLIImcmProcessHold | 5 | Manual mode is stopped.
ERROR | GCW_250_HLIImcmProcessError | 6 | Error state

Table 0.4 States of operating mode Manual mode


States of operating mode: Homing

State | ST constant | Value | Description
DESELECTED | GCW_250_HLIImcmProcessDeselected | 1 | Operating mode is deselected.
SELECTED | GCW_250_HLIImcmProcessSelected | 2 | Operating mode is selected. (Basic state).
READY | GCW_250_HLIImcmProcessReady | 3 | Homing is programmed (e.g. in respect of sequence).
ACTIVE | GCW_250_HLIImcmProcessActive | 4 | Homing is run.
HOLD | GCW_250_HLIImcmProcessHold | 5 | Homing is stopped.
ERROR | GCW_250_HLIImcmProcessError | 6 | Error state

Table 0.5 States of operating mode Homing

The axes to be referenced must be transferred in the form of a manual block string (MDI, e.g. G74 X2 Y2 Z1) on transition from selected to ready. If no manual block string is transferred, the default homing program rpf.nc is started.


Control commands/status information for operating modes

The control unit described below contains data with which a change of operating mode can be commanded and the current state of operating mode management can be polled.

More:

button Control unit

button User data


Control unit

Operating mode

Description

Control unit for switchover of the operating mode and polling the current state of operating mode management, including flow control of the user data.

Data type

MCControlMCMMode_State_Unit, see description Control Unit with usage check

ST path

pMC[channel_idx]^.addr^.MCControlChannel_Data.MCControlMCMMode_State_Unit

Commanded, requested data

ST element

.HLIProcTransTo_Mode_StateCommand .HLIProcTransTo_Mode_StateRequest

Data type

HLIProcTransTo_Mode_State

Access

PLC writes Command and reads Request

Return data

ST element

. HLI_EImCmProcState_ModeStateRequest

Data type

HLI_EImCmProcState_ModeState

Access

PLC reads

Usage check commanded, requested data

ST element

.X_McmCommandSemaphor

.X_McmRequestSemaphor

Data type

BOOL

Value range

[TRUE, FALSE]

Access

CNC accepts the commanded data if the command semaphore has the value TRUE and sets this element to the value FALSE after complete acceptance of the data.

PLC can write data for commanding if the command semaphore has the value FALSE. When all commanded data has been written, the PLC sets this element to the value TRUE.

CNC writes the data requested by the GUI if the request semaphore is FALSE and then sets this element to TRUE.

PLC reads the data requested by the GUI if the request semaphore is TRUE. The PLC sets this element to FALSE after the data has all been accepted in the PLC.

Redirection

ST path

MCControlMCMMode_State_Unit.X_McmEnable


User data

More:

button Requested and commanded user data

button Status information


Requested and commanded user data

Initial operating mode

Description

Operating mode from which the operating mode is to be changed.

ST path

Commanded value

pMC[channel_idx]^.addr^.MCControlChannel_Data.MCControlMCMMode_State_Unit.HLIProcTransTo_Mode_StateCommand

Requested value pMC[channel_idx]^.addr^.MCControlChannel_Data.MCControlMCMMode_State_Unit.HLIProcTransTo_Mode_StateRequest

Commanded, requested value

ST element

. X_McmCommandFromMode

Data type

UDINT

Value range

0 = don't care

1 = GCW_250_HLIImcmStandbyMode

2 = GCW_250_HLIImcmAutomaticMode

3 = GCW_250_HLIImcmMDIMode

4 = GCW_250_HLIImcmManualMode

5 = GCW_250_HLIImcmReferenceMode

Characteristics

This element does not need to be programmed when changing the operating mode. If, however, a value is specified, a check is conducted when changing the operating mode in order to establish whether the CNC actually is in the specified operating mode. A warning is issued if this is not the case.

Initial state of the operating mode in the case of operating mode change

Description

State within the operating mode from which the state switchover is to occur.

ST path

Commanded value

pMC[channel_idx]^.addr^.MCControlChannel_Data.MCControlMCMMode_State_Unit.HLIProcTransTo_Mode_StateCommand

Requested value pMC[channel_idx]^.addr^.MCControlChannel_Data.MCControlMCMMode_State_Unit.HLIProcTransTo_Mode_StateRequest.X_McmCommandFromState

Commanded, requested value

ST element

. X_McmCommandFromState

Data type

UDINT

Value range

0 = don't care

1 = GCW_250_HLIImcmProcessDeselected

2 = GCW_250_HLIImcmProcessSelected

3 = GCW_250_HLIImcmProcessReady

4 = GCW_250_HLIImcmProcessActive

5 = GCW_250_HLIImcmProcessHold

6 = GCW_250_HLIImcmProcessError

Characteristics

This element does not need to be programmed when changing the operating mode. If, however, a value is specified, a check is conducted when changing the operating mode in order to establish whether the CNC actually is in the specified operating mode. A warning is issued if this is not the case.

Target operating mode in the case of operating mode switchover

Description

Operating mode to which the system is to switch.

ST path

Commanded value

pMC[channel_idx]^.addr^.MCControlChannel_Data.MCControlMCMMode_State_Unit.HLIProcTransTo_Mode_StateCommand.

Requested value pMC[channel_idx]^.addr^.MCControlChannel_Data.MCControlMCMMode_State_Unit.HLIProcTransTo_Mode_StateRequest.

Commanded, requested value

ST element

. X_McmCommandToMode

Data type

UDINT

Value range

See Operating mode actual value in the case of operating mode change → value range

Target state in the case of operating mode change

Description

Target state within the target operating mode.

ST path

Commanded value

pMC[channel_idx]^.addr^.MCControlChannel_Data.MCControlMCMMode_State_Unit.HLIProcTransTo_Mode_StateCommand

Requested value pMC[channel_idx]^.addr^.MCControlChannel_Data.MCControlMCMMode_State_Unit.HLIProcTransTo_Mode_StateRequest

Commanded, requested value

ST element

. X_McmCommandToState

Data type

UDINT

Value range

See States actual value of the operating mode in the case of operating mode change → value range

If the destination state = RESETTING = 15 is commanded, an reset of the CNC is forced.

This functionality is available up from version :

V2.10.1033.01 and higher

V2.10.1507.02 and higher

V2.10.1800.04 and higher

Parameters in the case of operating mode change

Description

Parameters in the case of operating mode change.

It may be necessary to state parameters when commanding the operating mode change for a successful change to a specific state of an operating mode. These parameters are saved in this element.

ST path

pParameter : POINTER TO STRING;

Parameter : STRING;

Commanded value

pParameter := ADR(pMC[channel_idx]^.addr^.MCControlChannel_Data.MCControlMCMMode_State_Unit.HLIProcTransTo_Mode_StateCommand.AB_Data[1]);

Requested value

pParameter := pMC[channel_idx]^.addr^.MCControlChannel_Data.MCControlMCMMode_State_Unit.HLIProcTransTo_Mode_StateRequest.AB_Data[1]

Parameter := pParameter^;

Data type

ARRAY[1..GCW_250_HLIImCmProcModeStateParaSize] OF BYTE

Value range

If an operating mode change is commanded, it may be necessary to state a parameter so that commanding can be executed successfully. The table below indicates for what cases this is necessary and what type of parameter needs to be transferred. If one of the listed state transitions is involved in the operating mode and state change, the corresponding parameter must be stated. Consider the "states graph further operating modes" in order to determine whether one of the state transitions listed below is executed in the case of a commanded operating mode change.

Operating mode setpoint | State transition | Parameter
Automatic | prepare | The NC program name as character string.
Manual-Block | prepare | NC block (blocks)
Manual mode | prepare | · No parameter → all axes are activated (G200) · Explicit activation of specific axes with G200[Axis_1, ...]
Homing | prepare | · No parameter → NC program rpf.nc is started · Explicit selection of the axes via Manual-Block ( e.g.: G74 X1 Z2 )

Table 0.6 Parameters in the case of operating mode change

Channel number

Description

Number of the channel whose operating mode is to be switched over.

ST path

Commanded value

pMC[channel_idx]^.addr^.MCControlHB_Data.HBActivationControlUnit_Activation.HBActivation_Command.X_McmCommandChannelNo

Requested value pMC[channel_idx]^.addr^.MCControlHB_Data.HBActivationControlUnit_Activation.HBActivation_Request.X_McmCommandChannelNo

Data type

UDINT

Characteristics

Not used (only for compatibility with the HÜMNOS Standard).


Status information

Operating mode actual value
Description | Actual value of the operating mode.
ST path | pMC[channel_idx]^.addr^.MCControlChannel_Data.MCControlMCMMode_State_Unit.HLI_EimCmProcState_ModeStateRequest.X_McmRequestReadMode
Data type | UDINT
Value range | See Operating mode actual value in the case of operating mode change → value range

States actual value of the operating mode
Description | Actual value of the state of the operating mode.
ST path | pMC[channel_idx]^.addr^.MCControlChannel_Data.MCControlMCMMode_State_Unit.HLI_EImCmProcState_ModeStateRequest.X_McmRequestReadState
Data type | UDINT
Value range | See States actual value of the operating mode in the case of operating mode change → value range (on page 127)


Manual mode

The manual mode (HB) enables an external controlling of individual axes with physical elements of manual operation (handwheel, inching keys, joy stick) via the HLI. The following three manual operation modes for axis movements are possible.

q Handwheel function : Any desired path with any desired velocity by
definition of hand wheel increments.

q Continuous jog mode: Any desired path with parametrizable velocity by
switching operation.

q Jog mode: Pre-specified path with parametrizable velocity by
switching operation

It is possible to assign during operation the elements of manual operation to one single or multiple axis and to change the parametrization (e.g. the incremental jogging distance). The assignment of the control element to the logical axis is done via the logical axis number. The following figure shows as an example the assignment of control elements to NC-axes.

In the manual operation mode each axis can switch between three states:

· IDLE

· BEREIT

· AKTIV

Following steps for the use of manual mode for an axis are necessary:

· Activation of the state BEREIT for all axes

· Parametrization of the manual operation mode

· Activation of the manual mode (Transition to state AKTIV)

· Transfer of the operator commands (key contact, count of handwheel increments) to CNC.

Transition to state BEREIT

The transition to the state BEREIT can be executed by following two actions:

· Explicit switching of operation mode via HLI or GUI

· Programming of G200/G201 in NC-program or manual block

Now in state BEREIT the desired manual mode can be parametrized.

Transition to state AKTIV

Transition of the axis to the state AKTIV, as soon as a control element has been assigned.

Transfer of the operator input

To move the axis in the state AKTIV, now the operator input via the control elements can be transferred to the CNC.

Deselection of manual mode

The state AKTIV of an axis is decelecteby a Reset or if the axis is assigned to the control element 0

The structure AxeHBDisplayData_Data contains information about the state of an axis regarding manual operation (see chapter 9.1).

More:

button Status information of Manual mode

button Control commands of Manual mode


Status information of Manual mode

State of Manual mode
Description | Operating mode Manual mode is in one of the states described below.
Information flow | CNC -> PLC
ST path | pMC[channel_idx]^.addr^.StateBahn_Data.HLIBahnCoordDispData_Coord[axis_idx].AxeHBDisplayData_Data.W_State
Data type | UINT
Value range | 0 Operating mode deactivated 1 Operating mode enabled in NC program via G200, G201 but no operating device assigned. 2 Operating mode enabled in NC program via G200, G201, operating device assigned.
Access | PLC reads
Characteristics |

Operating mode of Manual mode
Description | The Look-Ahead function is waiting for receipt of request of an axis.
Information flow | CNC -> PLC
ST path | pMC[channel_idx]^.addr^.StateBahn_Data.HLIBahnCoordDispData_Coord[axis_idx].AxeHBDisplayData_Data.W_OperationMode
Data type | UINT
Value range | 0 No operating mode selected 1 Handwheel mode 2 Inching mode 3 Jog mode
Access | PLC reads
Characteristics |

Operating dwevice number
Description | Logical number of the operating device currently associated with the axis is question.
Information flow | CNC -> PLC
ST path | pMC[channel_idx]^.addr^.StateBahn_Data.HLIBahnCoordDispData_Coord[axis_idx].AxeHBDisplayData_Data.W_ControlElement
Data type | UINT
Access | PLC reads
Characteristics |

Handwheel resolution
Description | Resolution of the handwheel which is associated with the axis in question as the operating device.
Information flow | CNC -> PLC
Unit | Increments per handwheel pulse
ST path | pMC[channel_idx]^.addr^.StateBahn_Data.HLIBahnCoordDispData_Coord[axis_idx].AxeHBDisplayData_Data.D_HRAufloesung
Data type | DINT
Access | PLC reads
Characteristics |

Traversing speed in Inching mode
Description | Traversing speed of the axis is question if it is moved in Inching mode.
Information flow | CNC -> PLC
Unit | mm/min
ST path | pMC[channel_idx]^.addr^.StateBahn_Data.HLIBahnCoordDispData_Coord[axis_idx].AxeHBDisplayData_Data.D_TippGeschw
Data type | DINT
Access | PLC reads
Characteristics |

Traversing speed in Jog mode
Description | Traversing speed of the axis is question if it is moved in Jog mode
Information flow | CNC -> PLC
Unit | mm/min
ST path | pMC[channel_idx]^.addr^.StateBahn_Data.HLIBahnCoordDispData_Coord[axis_idx].AxeHBDisplayData_Data.D_JogGeschw
Data type | DINT
Access | PLC reads
Characteristics |

Traverse path in Jog mode
Description | Traverse path of the axis is question per keystroke when moved in Jog mode.
Information flow | CNC -> PLC
Unit | Mm
ST path | pMC[channel_idx]^.addr^.StateBahn_Data.HLIBahnCoordDispData_Coord[axis_idx].AxeHBDisplayData_Data.D_JogWeg
Data type | DINT
Access | PLC reads
Characteristics |


Control commands of Manual mode

The individual Manual operating modes are controlled via specific control units. These control units contain data for flow control of the user data and the user data itself. The user data generally comprises elements of a structure.

More:

button Activation of operating devices for Manual mode

button Parametrization of manual mode

button Control elements for manual mode


Activation of operating devices for Manual mode

After an axis by G200/G201 is prepared for the manual mode, a logical operation device (key/ handwheel) with parameter record can be assigned to this axis. This take place during the so-called activation of the axis.

For this the default values are defined in the axis specific parameter lists.

handbetrieb.default.operation_mode 2 # 1 handwheel, 2 continuous,

3 incremental

handbetrieb.default.control_element 1 # logical handwheel/key

For default the parameter record with index 0 of the manual mode parameters is used.

For every new selection of the manual operation mode or G200/G201 the latest known adjustment of the axis (Operation mode, Link to operation element and parameter record) is restored.

Activation of operating device for Manual mode

Description

Control unit for management of the data for activation of an operating device and its assignment to an axis in the case of Manual mode, including flow control of the user data.

Data type

HBActivationControlUnit, see description Control Unit with usage check

Characteristics

This control unit can be used only if the CNC is in Manual mode or if the axes explicitly are released for the Manual mode by a G200/G201.

Otherwise the activation is refused with an error message (e.g. 150048 -> Selection of operation mode during continous jog mode not allowed. ).

ST path

pMC[channel_idx]^.addr^.MCControlHB_Data.HBActivationControlUnit_Activation

Access

PLC reads HBActivation_Request and writes HBActivation_Command + X_Enable

Commanded, requested data

ST element

. HBActivation_Command

. HBActivation_Request

Data type

HBActivation, description see chapter User data

Usage check, commanded, requested data

ST element

.X_CommandSemaphor

.X_RequestSemaphor

Data type

BOOL

Value range

[TRUE, FALSE]

Access

CNC accepts the commanded data if the command semaphore has the value TRUE and sets this element to the value to FALSE after complete acceptance of the data.

PLC can write data for commanding if the command semaphore has the value FALSE. When all data to be commanded has been written, the PLC sets this element to the value TRUE.

CNC writes the data requested by the GUI if this request semaphore is FALSE and then sets this element to TRUE.

PLC reads the data requested by the GUI if the request semaphore is TRUE. After the data has all been accepted in the PLC, the PLC sets this element to FALSE.

Redirection

ST element

. X_Enable

More:

button User data


User data

Axis number

Description

Number of a logical axis unique system-wide.

The specified logical axis is assigned the operating device via which the axis is to be moved in Manual mode.

ST path

Commanded value

pMC[channel_idx]^.addr^.MCControlHB_Data.HBActivationControlUnit_Activation.HBActivation_Command.W_LogAchsNr

Requested value pMC[channel_idx]^.addr^.MCControlHB_Data.HBActivationControlUnit_Activation.HBActivation_Request.W_LogAchsNr

Data type

UINT

Value range

[1, nAxis]

Operating device number

Description

Number of the logical operating device to be assigned to the logical axis.

ST path

Commanded value

pMC[channel_idx]^.addr^.MCControlHB_Data.HBActivationControlUnit_Activation.HBActivation_Command.W_ControlElement

Requested value pMC[channel_idx]^.addr^.MCControlHB_Data.HBActivationControlUnit_Activation.HBActivation_Request.W_ControlElement

Data type

UINT

Value range

One of the values defined in the configuration list hand_mds.lis for the characteristic parameters tasten_data[X].log_tasten_nr as logical inching key pair number if the operating device comprises a key pair.

or

One of the values defined in the configuration list hand_mds.lis for the characteristic parameters hr_data[0].log_hr_nr as logical handwheel numbers if the operating device is a handwheel.

Characteristics

If 0 is predefined for a logical number, the current operation mode of an axis is deselected.

Manual operating mode

Description

Manual operating mode to be assigned to the logical axis.

ST path

Commanded value

pMC[channel_idx]^.addr^.MCControlHB_Data.HBActivationControlUnit_Activation.HBActivation_Command.W_OperationMode

Requested value pMC[channel_idx]^.addr^.MCControlHB_Data.HBActivationControlUnit_Activation.HBActivation_Request.W_OperationMode

Data type

UINT

Value range

0 No operating mode (deselection)

1 Handwheel mode

2 Inching mode

3 Jog mode

Manual mode parameter record

Description

Definition of the index of the parameter record, that should be used for the manual mode.

ST path

Commanded value
 pMC[channel_idx]^.addr^.MCControlHB_Data.HBActivationControlUnit_Activation.HBActivation_Command.W_ParameterIndex

Requested value
 pMC[channel_idx]^.addr^.MCControlHB_Data.HBActivationControlUnit_Activation.HBActivation_Request.W_ParameterIndex

Data type

UINT

Value range

[0; 2]

Characteristics

After input of individual parameters via the PLC-interface the first value record of the parameter table (index=0) is overwritten. The residual parameter records are not changed. This means, they corresponds to the values defined in the axis specific parameter lists.

Remark:

The current active axis can be deselected by deactivation of the operation mode as well as by assignment of the operation device 0.


Parametrization of manual mode

Basically every manual operation mode can be parametrized axis specific. E.g. for every axis the feedrate or the step sizes can be defined. The corresponding default values are defined in the axis specific parameter lists.

handbetrieb.hr.aufl[0] 10

handbetrieb.hr.aufl[1] 20

handbetrieb.hr.aufl[2] 30

#

handbetrieb.tipp.geschw[0] 30000

handbetrieb.tipp.geschw[1] 30000

handbetrieb.tipp.geschw[2] 40000

handbetrieb.tipp.vb_eilgang 40000

#

handbetrieb.jog.weg[0] 1000

handbetrieb.jog.weg[1] 2000

handbetrieb.jog.weg[2] 3000

handbetrieb.jog.geschw[0] 30000

handbetrieb.jog.geschw[1] 30000

handbetrieb.jog.geschw[2] 60000

Beside this an individual parameter value can be defined via the PLC-interface. This parameter value is stored in the table of default parameters as the first element (index 0). It can be selected during activation of an axis.

The parameters can be changed at any time, but they will be effective only in the moment of activation of an axis. The activation of an axis requires the definition of the operation mode, the operation element and the number (index) of the desired parameter record.

More:

button Programming Inching mode

button Programming Jog mode

button Programming Handwheel mode


Programming Inching mode

More:

button Control unit

button User data


Control unit

Programming Inching mode in the case of Manual mode

Description

Control unit for management of the data for programming Inching mode in the case of Manual mode, including flow control of the user data.

Data type

HBTipParameterControlUnit, see description Control Unit with usage check

Characteristics

The manual mode parameter can be written at any time and it is stored internal in a table under the index 0. This value is set effective in the corresponding operation mode after activation of the axis.

Access

PLC reads HBTipParameter_Request and writes HBTipParameter_Command + X_Enable

ST path

pMC[channel_idx]^.addr^.MCControlHB_Data.HBTipParameterControlUnit_TipParameter

Commanded, requested data

ST element

.HBTipParameter_Command

. HBTipParameter_Request

Data type

HBTipParameter, description see chapter User data

Usage check, commanded, requested data

ST element

. X_CommandSemaphor

.X_RequestSemaphor

Data type

BOOL

Access

CNC accepts the commanded data if the command semaphore has the value TRUE and sets this element to the value FALSE after complete acceptance of the data.

PLC can write data for commanding if the command semaphore has the value FALSE. If all data to be commanded has been written, the PLC sets this element to the value TRUE.

CNC writes the data requested by the GUI if the request semaphore is FALSE and then sets this element to TRUE.

PLC reads the data requested by the GUI if the request semaphore is TRUE. The PLC sets this element to FALSE after the data has all been accepted in the PLC,.

Redirection

ST path

.X_Enable


User data

Axis number

Description

Number of logical axis unique system-wide.

The specified logical axis is assigned the speed with which it is to be moved in Manual mode in Inching operating mode.

ST path

Commanded value

pMC[channel_idx]^.addr^.MCControlHB_Data.HBTipParameterControlUnit_TipParameter.HBTipParameter_Command.W_LogAchsNr

Requested value pMC[channel_idx]^.addr^.MCControlHB_Data.HBTipParameterControlUnit_TipParameter.HBTipParameter_Request.W_LogAchsNr

Data type

UINT

Value range

[1, nAxis]

Inching speed

Description

Speed to be assigned to the logical axis in Inching mode.

ST path

Commanded value

pMC[channel_idx]^.addr^.MCControlHB_Data.HBTipParameterControlUnit_TipParameter.HBTipParameter_Command.D_Speed

Requested value pMC[channel_idx]^.addr^.MCControlHB_Data.HBTipParameterControlUnit_TipParameter.HBTipParameter_Request.D_Speed

Unit

1 µm/s

Data type

UDINT


Programming Jog mode

More:

button Control unit

button User data


Control unit

Programming Jog mode in Manual mode

Description

Control unit for management of the data for programming Jog mode in Manual mode, including flow control of the user data.

Data type

HBJogParameterControlUnit, see description Control Unit with usage check

Characteristics

The manual mode parameter can be written at any time and it is stored internal in a table under the index 0. This value is set effective in the corresponding operation mode after activation of the axis.

ST path

pMC[channel_idx]^.addr^.MCControlHB_Data.HBJogParameterControlUnit_JogParameter

Access

PLC reads HBJogParameter_Request and writes HBJogParameter_Command + X_Enable

Commanded, requested data

ST element

.HBJogParameter_Command

.HBJogParameter_Request

Data type

HBJogParameter, description see chapter User data

Usage check, commanded, requested data

ST element

.X_CommandSemaphor

.X_RequestSemaphor

Data type

BOOL

Access

CNC accepts the commanded data if the command semaphore has the value TRUE and sets this element to value FALSE after complete acceptance of the data.

PLC can write data for commanding if the command semaphore has the value FALSE. The PLC sets this element to the value TRUE when all commanded data has been written.

CNC writes the data requested by the GUI if the request semaphore is FALSE and then sets this element to TRUE.

PLC reads the data requested by the GUI if the request semaphore is TRUE. The PLC sets this element to FALSE after the data has all been accepted in the PLC.

Redirection

ST element

. X_Enable


User data

Axis number

Description

Number of a logical axis unique system-wide.

The specified logical axis is assigned the speed and the increment per keystroke with which it is to be moved in Manual mode in Jog operating mode.

ST path

Commanded value

pMC[channel_idx]^.addr^.MCControlHB_Data.HBJogParameterControlUnit_JogParameter.HBJogParameter_Command.W_LogAchsNr

Requested value pMC[channel_idx]^.addr^.MCControlHB_Data.HBJogParameterControlUnit_JogParameter.HBJogParameter_Request.W_LogAchsNr

Data type

UINT

Value range

[1, nAxis]

Jog speed

Description

Speed which is to be assigned to the logical axis in Jog mode.

ST path

Commanded value

pMC[channel_idx]^.addr^.MCControlHB_Data.HBJogParameterControlUnit_JogParameter.HBJogParameter_Command.D_Speed

Requested value pMC[channel_idx]^.addr^.MCControlHB_Data.HBJogParameterControlUnit_JogParameter.HBJogParameter_Request.D_Speed

Unit

1 µm/s

Data type

UDINT

Jog path

Description

Path per keystroke of the Jog key which the logical axis is to move in Jog mode.

ST path

Commanded value

pMC[channel_idx]^.addr^.MCControlHB_Data.HBJogParameterControlUnit_JogParameter.HBJogParameter_Command.D_Distance

Requested value pMC[channel_idx]^.addr^.MCControlHB_Data.HBJogParameterControlUnit_JogParameter.HBJogParameter_Request.D_Distance

Unit

0.1 µm

Data type

UDINT


Programming Handwheel mode

More:

button Control unit

button User data


Control unit

Programming Handwheel mode in Manual mode

Description

Control unit for management of the data for programming Handwheel mode in Manual mode, including flow control of the user data.

Data type

HBHRParameterControlUnit, see description Control Unit with usage check

Characteristics

The manual mode parameter can be written at any time and it is stored internal in a table under the index 0. This value is set effective in the corresponding operation mode after activation of the axis.

ST path

pMC[channel_idx]^.addr^.MCControlHB_Data.HBHRParameterControlUnit_HRParameter.

Access

PLC reads HBHRParameter_Request and writes HBHRParameter_Command + X_Enable

Commanded, requested data

ST element

.HBHRParameter_Command

.HBHRParameter_Request

Data type

HBHRParameter, description see chapter User data

Usage check, commanded data

ST element

.X_CommandSemaphor

.X_RequestSemaphor

Data type

BOOL

Access

CNC accepts the commanded data if this element has the value TRUE and sets this element to the value FALSE after complete acceptance of the data.

PLC can write data for commanding if this element has the value FALSE. If all data to be commanded has been written, the PLC sets this element to the value TRUE.

CNC writes the data requested by the GUI if this element is FALSE and then sets this element to TRUE.

PLC reads the data requested by the GUI if this value is TRUE. The PLC sets this element to FALSE after the data has all been accepted in the PLC.

Redirection

ST element

.X_Enable


User data

Axis number

Description

Number of a logical axis unique system-wide.

The specified logical axis is assigned the handwheel resolution which is the basis for movement of the axis in Manual mode in Handwheel operating mode.

ST path

Commanded value

pMC[channel_idx]^.addr^.MCControlHB_Data.HBHRParameterControlUnit_HRParameter.HBHRParameter_Command.W_LogAchsNr

Requested value pMC[channel_idx]^.addr^.MCControlHB_Data.HBHRParameterControlUnit_HRParameter.HBHRParameter_Request.W_LogAchsNr

Data type

UINT

Value range

[1, nAxis]

Handwheel resolution

Description

Resolution of the handwheel assigned to the logical axis.

ST path

Commanded value

pMC[channel_idx]^.addr^.MCControlHB_Data.HBHRParameterControlUnit_HRParameter.HBHRParameter_Command.D_Resolution

Requested value pMC[channel_idx]^.addr^.MCControlHB_Data.HBHRParameterControlUnit_HRParameter.HBHRParameter_Request.D_Resolution

Unit

0.1 µm/handwheel increment

Data type

DINT


Control elements for manual mode

More:

button Ensuring compliance with a keystroke

button Rapid traverse speed during traverse motion

button Handwheel increments


Ensuring compliance with a keystroke

There are four similar control units on the HLI which can be used to command keypresses.

In this chapter the control units are called HBKeyControlX where the wildcard X can have the following values:  (nothing), 2, 3,  , 9. In the part ST-path of the following table the names of all present control units are listed.

Handover of GUI requests:

To hand over a keypress request arrived from the GUI to the PLC the enabled control units are scanned in the following order: HBKeyControlUnit_Key, HBKeyControlUnit_Key2, HBKeyControlUnit_Key3, , HBKeyControlUnit_Key9. The first unit with a request semaphore equal to FALSE is used to hand over the keypress request to the PLC. Therefore the PLC must check all control units with X_Enable set to TRUE if the X_requestSemaphore is set.

More:

button Control unit

button User data


Control unit

Ensuring compliance with a keystroke in Manual mode

Description

Control unit for management of the data for ensuring compliance with a keystroke in Manual mode, including flow control of the user data.

Data type

HBKeyControlUnit_Key, see description Control Unit

Characteristics

The report of a key stroke is possible at any time, but it is without any effect if there is no assigned axis in the jog operation mode.

ST path

pMC[channel_idx]^.addr^.MCControlHB_Data.HBKeyControlUnit_Key

pMC[channel_idx]^.addr^.MCControlHB_Data.HBKeyControlUnit_Key2

pMC[channel_idx]^.addr^.MCControlHB_Data.HBKeyControlUnit_Key3

pMC[channel_idx]^.addr^.MCControlHB_Data.HBKeyControlUnit_Key4

pMC[channel_idx]^.addr^.MCControlHB_Data.HBKeyControlUnit_Key5

pMC[channel_idx]^.addr^.MCControlHB_Data.HBKeyControlUnit_Key6

pMC[channel_idx]^.addr^.MCControlHB_Data.HBKeyControlUnit_Key7

pMC[channel_idx]^.addr^.MCControlHB_Data.HBKeyControlUnit_Key8

pMC[channel_idx]^.addr^.MCControlHB_Data.HBKeyControlUnit_Key9

Access

PLC reads HBKey_Request and writes HBKey_Command + X_Enable

Commanded, requested data

ST element

.HBKey_Command

. HBKey_Request

Data type

HBKey, description see chapter User data

Usage check, commanded, requested data

ST element

.X_CommandSemaphor

.X_RequestSemaphor

Data type

BOOL

Access

CNC accepts the commanded data if this element has the value TRUE and sets this element to the value FALSE after complete acceptance of the data.

PLC can write data for commanding if this element has the value FALSE. The PLC sets this element to the value TRUE if all data to be commanded has been written.

CNC writes the data requested by the GUI if this element is FALSE and then sets this element to TRUE.

PLC reads the data requested by the GUI if this value is TRUE. The PLC sets this element to FALSE after the data has all been accepted in the PLC.

Redirection

ST element

. X_Enable


User data

Key number
Description | Logical key number from which tasking originates.
ST path | Commanded value pMC[channel_idx]^.addr^.MCControlHB_Data.HBKeyControlUnit_KeyX.HBKey_Command.W_LogKeyNr Requested value pMC[channel_idx]^.addr^.MCControlHB_Data.HBKeyControlUnit_KeyX.HBKey_Request.W_LogKeyNr
Data type | UINT
Value range | One of the values defined in the configuration list hand_mds.lis for the characteristic parameters tasten_data[X].log_tasten_nr as logical inching key pair number.

Start/end of keystroke
Description | Start/end of keystroke event and traverse direction of the traversing direction keys in Manual mode
ST path | Commanded value pMC[channel_idx]^.addr^.MCControlHB_Data.HBKeyControlUnit_KeyX.HBKey_Command.W_Direction Requested value pMC[channel_idx]^.addr^.MCControlHB_Data.HBKeyControlUnit_KeyX.HBKey_Request.W_Direction
Data type | INT
Value range | -1 Start of keystroke, traversing direction negative 0 End of keystroke 1 Start of keystroke, traversing direction positive
Characteristics | Since compliance with a keystroke involves message-orientated transfer (usage data item), both the Start of keystroke event and the End of keystroke event must be generated by the PLC.

Lifetime of the key signal
Description | If this element has a value not equal to 0, the CNC independently generates the End of keystroke event after receipt of a Start of keystroke event after expiry of the period preset by the number of specified interpolator cycles.
ST path | Commanded value pMC[channel_idx]^.addr^.MCControlHB_Data.HBKeyControlUnit_KeyX.HBKey_Command.D_LifeTime Requested value pMC[channel_idx]^.addr^.MCControlHB_Data.HBKeyControlUnit_KeyX.HBKey_Request.D_LifeTime
Unit | Number of interpolator cycles
Data type | UDINT
Characteristics | See Note

Retriggering Start of keystroke event
Description | Retriggering the Start of keystroke event. If element Lifetime of the key signal has a value not equal to 0, the Start of keystroke event can be retriggered if the Lifetime of the key signal has not yet expired.
ST path | Commanded value pMC[channel_idx]^.addr^.MCControlHB_Data.HBKeyControlUnit_KeyX.HBKey_Command.X_FRefresh Requested value pMC[channel_idx]^.addr^.MCControlHB_Data.HBKeyControlUnit_KeyX.HBKey_Request.X_FRefresh
Data type | BOOL
Value range | [TRUE = Retriggering the Start of keystroke event, FALSE]
Characteristics | See Note

Note: The Lifetime of the key signal and Retriggering of Start of keystroke event elements represent a sort of watchdog function. Their use is indicated in particular if the time response of the PLC is not ensured (e.g. soft PLC as Windows task).


Rapid traverse speed during traverse motion

During continous jog mode there is the possibility to switch between the normal feed and rapid feed. The rapid feed is defined in the axis specific parameter list.

handbetrieb.tipp.vb_eilgang 4000

Here the rapid feed is a key specific feature and becomes effective, if the corresponding key is pushed and linked to an axis.

More:

button Control unit

button User data


Control unit

Rapid traverse speed during traverse motion in the case of Manual mode

Description

Control unit for management of data for compliance with the rapid traverse rate during a keystroke in Manual mode, including flow control of the user data.

Data type

HBRapidKeyControlUnit, see description Control Unit with usage check

Characteristics

This control unit can be used practically only if the CNC is in Manual mode.

Clarify:

Is there an error message if I command it and the CNC is in a different operating mode ?

ST path

pMC[channel_idx]^.addr^.MCControlHB_Data.HBRapidKeyControlUnit_RapidKey

Access

PLC reads HBRapidKey_Request and writes HBRapidKey_Command + X_Enable

Commanded, requested data

ST element

.HBRapidKey_Command

.HBRapidKey_Request

Data type

HBRapidKey, description see chapter User data

Usage check, commanded, requested data

ST element

.X_CommandSemaphor

.X_RequestSemaphor

Data type

BOOL

Access

CNC accepts the commanded data if this element has the value TRUE and sets this element to the value FALSE after complete acceptance of the data.

PLC can write data for commanding if this element has the value FALSE. The PLC sets this element to the value TRUE if all commanded data has been written.

CNC writes the data requested by the GUI if this element is FALSE and then sets this element to TRUE.

PLC reads the data requested by the GUI if this value is TRUE. The PLC sets this element to FALSE after the data has all been accepted in the PLC.

Redirection

ST element

. X_Enable


User data

Key number

Description

Logic key number, for which the rapid traverse mode should be selected/ deselected.

ST path

Commanded value

pMC[channel_idx]^.addr^.MCControlHB_Data.HBRapidKeyControlUnit_RapidKey.HBRapidKey_Command.W_LogKeyNr

Requested value pMC[channel_idx]^.addr^.MCControlHB_Data.HBRapidKeyControlUnit_RapidKey.HBRapidKey_Request.W_LogKeyNr

Data type

UINT

Value range

One of the values defined in the configuration list hand_mds.lis for the characteristic parameters tasten_data[X].log_tasten_nr as logical inching key pair number.

Rapid traverse rate during traverse movement

Description

Rapid traverse mode of the key on / off.

ST path

Commanded value

pMC[channel_idx]^.addr^.MCControlHB_Data.HBRapidKeyControlUnit_RapidKey.HBRapidKey_Command.W_KeyPressed

Requested value pMC[channel_idx]^.addr^.MCControlHB_Data.HBRapidKeyControlUnit_RapidKey.HBRapidKey_Request.W_KeyPressed

Data type

UINT

Value range

TRUE = Key for rapid traverse mode is active. During continous traverse movement the parameterized rapid traverse rate is used.

FALSE = Key for rapid traverse not active. During continous traverse movement the normal traverse rate is used.


Handwheel increments

Handwheel increments, count
Description | Array of control units for management of the counts of the handwheel increments of all handwheels, including flow control of the user data.
Data type | MCControlSGN32Unit, see description Control Unit
Characteristics | Handwheel counts can be changed at any time, but they have only an effect if there is an assigned axis in the hand wheel mode. Relative changes of a handwheel count are evaluated only after activation of manual mode.
ST path | pMC[channel_idx]^.addr^.MCControlHB_Data.AMCControlSGN32Unit_HandWheelIncs[idx]
Commanded, requested and return value
ST element | .D_Command .D_Request .D_State
Data type | DINT
Redirection
ST path | .X_Enable


Channel-specific interface

More:

button Watchdog mechanism


Watchdog mechanism

Watchdog, CNC monitors PLC

Description

The CNC uses the data of this unit in order to monitor whether the PLC is still ready for operation.

Data type

MCWatchDogUnit

ST path

pMC[channel_idx]^.addr^.HLIHeadChannel_Data.MCWatchDogUnit_mc

PLC operates functionality

Description

By setting this element to the value TRUE, the PLC indicates to the CNC that it supplies to the data for the watchdog functionality.

Monitoring PLC by CNC, PLC task which triggers PLCs sign of life alive_rw, must be executed with higher task priority than the two CNC-tasks SDA and COM (s. example TwinCAT). In order to prevent problems with CNC block preparation and large PLC projects it is additionally recommended to create an extra PLC task for the watchdog mechanism and to set a higher priority only for this task.

ST element

. X_enable_w

Data type

BOOL

Value range

[TRUE = PLC supplies the data for a watchdog monitor, FALSE]

Access

PLC writes

Signal of the PLC

Description

CNC uses this element to determine whether the PLC is still ready for operation. This check is performed if elements PLC operates functionality and PLC present  have the value TRUE.

ST element

. X_alive_rw

Data type

BOOL

Value range

[TRUE = PLC signals that it is ready for operation, FALSE]

Access

CNC detects whether this element changes from FALSE to TRUE within the time preset by element Watchdog cycle time. The CNC sets the value to FALSE after successful detection.

PLC writes the value TRUE to this element in each PLC cycle in order to confirm its readiness for operation.

Signal PLC not ready for operation

Description

If the CNC detects that the PLC is no longer ready for operation, it sets this element to TRUE.

ST element

.X_alive_state_r

Data type

BOOL

Value range

[TRUE = PLC is ready for operation, FALSE = PLC is not ready for operation]

Access

CNC writes

Watchdog cycle time

Description

The values for the watchdog cycle time must be greater than the cycle time of the PLC in order to allow practical monitoring of the PLC by the CNC.

ST element

.D_cycle_time_w

Unit

1 µs

Data type

UDINT

Access

PLC writes

Watchdog, PLC monitors CNC

Description

The PLC uses the data of this unit in order to monitor whether the CNC is still ready for operation.

Monitoring CNC by PLC, PLC task which monitors CNCs sign of life alive_rw, must be executed with higher task priority than the two CNC-tasks SDA and COM (s. example TwinCAT). In order to prevent problems with CNC block preparation and large PLC projects it is additionally recommended to create an extra PLC task for the watchdog mechanism and to set a higher priority only for this task.

Data type

LCWatchDogUnit

ST path

pMC[channel_idx]^.addr^.HLIHeadChannel_Data.LCWatchDogUnit_lc

Signal of the CNC

Description

The CNC writes the value TRUE in this element in each interpolation cycle in order to confirm that it is ready for operation.

ST path

.X_alive_rw

Data type

BOOL

Access

CNC writes the value TRUE in this element in each CNC cycle in order to confirm its readiness for operation.

PLC detects whether this element changes from FALSE to TRUE within the time preset by element Watchdog cycle time. The PLC sets the value to FALSE after successful detection.

Signal CNC not ready for operation

Description

If the PLC determines that the CNC is no longer ready for operation, it sets this element to TRUE.

ST path

.X_alive_state_w

Data type

BOOL

Value range

[TRUE = CNC is ready for operation, FALSE = CNC is not ready for operation]

Access

PLC writes

Watchdog cycle time

Description

The NC kernel writes the cycle time of the interpolator in this element. The values for the watchdog cycle time must be greater than the cycle time of the PLC in order to allow practical monitoring of the CNC by the PLC.

ST path

.D_cycle_time_r

Unit

1 µs

Data type

UDINT

Access

PLC reads

Figure 10- 1 : Priorities for watchdog mechanism (example TwinCAT)


Channel-specific interface

Figure 11-1: Management data of the channel-specific interface

Version identifier PLC → CNC
Description | If the version of the HLI at the NC kernel end is evaluated, the PLC stores the version identifier to be declared in this element. Evaluation at the NC kernel end must be agreed application-specifically.
ST path | pMC[channel_idx]^.addr^.HLIHeadChannel_Data.HLIIntfVersionName_VersionWrite.AB_Zeichen
Data type | ARRAY [1..GCW_250_HLIIntfVersionNameLength] OF BYTE
Access | PLC writes
Characteristics | Is currently not evaluated in the NC kernel.

Version identifier CNC → PLC
Description | If the version of the HLI is evaluated at the PLC end, the NC kernel stores the version identifier to be declared in this element. Evaluation at the PLC end must be agreed application-specifically.
ST path | pMC[channel_idx]^.addr^.HLIHeadChannel_Data.HLIIntfVersionName_VersionRead.AB_Zeichen
Data type | ARRAY [1..GCW_250_HLIIntfVersionNameLength] OF BYTE
Access | PLC reads

Size of the HLI
Description | The NC kernel writes the size of the entire channel-specific interface area in this element.
Unit | Byte
ST path | pMC[channel_idx]^.addr^.HLIHeadChannel_Data.D_SizeofInterface
Data type | UDINT
Access | PLC reads
Characteristics |

PLC present
Description | By setting the value to TRUE, the PLC signals that it is present. The PLC can influence the NC kernel and is supplied with technology commands by the NC kernel only if this value is set to TRUE.
ST path | pMC[channel_idx]^.addr^.HLIHeadChannel_Data.X_PLCPresent
Data type | BOOL
Value range | [TRUE = PLC present, FALSE]
Access | PLC writes
Characteristics |

Updating the HLI
Description | By setting this value to TRUE, the PLC can trigger updating of the entire axis-specific interface area. This value is reset to FALSE by the NC kernel after updating has occurred.
ST path | pMC[channel_idx]^.addr^.HLIHeadChannel_Data.X_FUpdateRequest
Data type | BOOL
Value range | [TRUE = Updating of the HLI activated, FALSE]
Access | Write/read
Characteristics | Is currently not supported, i.e. the HLI is updated in each NC cycle.

Update cycle of the HLI
Description | Using this element, the PLC informs the NC kernel over how many interrupt cycles the NC kernel may distribute updating of the axis-specific interface area. This leads to a lower loading of the interrupt task particularly in the case of multi-channel and multi-axis configurations.
Unit | Number of cycles of the NC kernel
ST path | pMC[channel_idx]^.addr^.HLIHeadChannel_Data.W_NUpdateTickCount
Data type | UINT
Access | PLC writes
Characteristics | Is currently not supported, i.e. the HLI is updated in each NC cycle.

Initialisation, NC kernel, complete
Description | By setting this value to TRUE, the NC kernel indicates to the PLC that initialisation of the NC kernel is complete and that the HLI is now being supplied cyclically. This means that the display data is valid and the control commands are issued to the NC kernel.
ST path | pMC[channel_idx]^.addr^.HLIHeadChannel_Data.X_hochlauf_quit_r
Data type | BOOL
Value range | [TRUE = Initialisation of NC kernel complete, FALSE]
Access | PLC reads
Characteristics |

Reserved elements
Description | Reserved elements
Information flow |
ST path | pMC[channel_idx]^.addr^.HLIHeadChannel_Data.X_reserved_2 pMC[channel_idx]^.addr^.HLIHeadChannel_Data.X_reserved_3 pMC[channel_idx]^.addr^.HLIHeadChannel_Data.X_reserved_4
Data type | BOOL
Value range | [TRUE, FALSE]
Access |
Characteristics |


Axis-specific interface

PLC present
Description | By setting the value to TRUE, the PLC signals that it is present. Only if this value is set to TRUE can the PLC influence the NC kernel and is supplied with the technology commands by the NC kernel.
Information flow | PLC -> CNC
ST path | pAC[axis_idx]^.addr^.HLIHeadAxe_Data.X_PLCPresent
Data type | BOOL
Value range | [TRUE = PLC present, FALSE]
Access | Write
Characteristics |

Updating the HLI
Description | By setting this value to TRUE, the PLC can trigger updating of the entire axis-specific interface area. This value is reset to FALSE by the NC kernel after updating is complete.
Information flow | CNC <-> PLC
ST path | pAC[axis_idx]^.addr^.HLIHeadAxe_Data.X_FUpdateRequest
Data type | BOOL
Value range | [TRUE = Updating of the HLI activated, FALSE]
Access | Write/read
Characteristics | Is currently still supported, i.e. the HLI is updated in each NC cycle.

Update cycle of the HLI
Description | Using this element, the PLC informs the NC kernel over how many interrupt cycles the NC kernel may distribute updating of the axis-specific interface area. This leads to a lower loading of the interrupt task particularly in the case of multi-channel and multi-axis configurations.
Information flow | PLC -> CNC
Unit | Number of cycles of the NC kernel
ST path | pAC[axis_idx]^.addr^.HLIHeadAxe_Data.W_NUpdateTickCount
Data type | UINT
Access | Write
Characteristics | Is currently not supported, i.e. the HLI is updated in each NC cycle.

Axis error
Description | The CNC sets this value to TRUE, if the axis is in error state.
Information flow | CNC -> PLC
ST-Pfad | pAC[axis_idx]^.addr^.HLIHeadAxe_Data.X_Error
Data type | BOOL
Value range | [TRUE = Axis is in error state, FALSE = No error]
Access | Read
Characteristics |


Error messages

Errors occurring in the NC kernel can be displayed on the HLI interface in order to provide the PLC with the option of responding to the error and logging it.

The significance of the individual structure elements is documented in [DIAG].

Each error message is identified by means of a unique error number and the error messages are documented in [DIAG].

More:

button Management data of an error message

button User data of an error message


Management data of an error message

More:

button Error message CNC -> PLC

button Error message PLC -> CNC


Error message CNC -> PLC

Error message CNC → PLC management data

Description

This structure contains the user data and data for flow control of an error message.

Data type

McError

ST path

pMC[channel_idx]^.addr^.MCErrorSatz_Data

User data

Description

User data of an error message.

ST element

. SatzR

Data type

ErrorSatz

Access

PLC reads

Flow control of the user data

Description

Validity flag of an error message.

ST element

.SemaphorRw

Data type

BOOL

Value range

[TRUE = User data is valid, FALSE]

Access

CNC sets this value to TRUE if the user data of an error message is written and, thus, the error message is valid.

PLC must set the value of this element to FALSE if the Redirection element has the value TRUE and the PLC has accepted the error message.

Redirection

ST element

.EnableW

Data type

BOOL


Error message PLC -> CNC

Error message PLC → CNC management data
Description | This structure contains the user data and data for flow control of an error message.
Data type | LcError
ST path | pMC[channel_idx]^.addr^.LCErrorSatz_Data
User data
Description | User data of an error message.
ST element | . SatzR
Data type | ErrorSatz
Access | PLC writes
Flow control of the user data
Description | Validity flag of an error message.
ST element | .SemaphorRw
Data type | BOOL
Value range | [TRUE = User data is valid, FALSE]
Access | PLC sets this value to TRUE if the user data of an error message is written and, thus, the error message is valid. CNC sets the value of this element to FALSE if the CNC has accepted the error message.


User data of an error message

Error number
Description | Unique error number.
ST path | pMC[channel_idx]^.addr^.MCErrorSatz_Data.SatzR.Kopf.ErrorId
Data type | UDINT
Access | PLC reads
Characteristics | Is used for internal diagnostic purposes.

Module name of the module signalling an error
Description | Module name of the module signalling an error
ST path | pMC[channel_idx]^.addr^.MCErrorSatz_Data.SatzR.Kopf.ModulName
Data type | STRING(GCW_250_HLIFileNameLaengeMinus1)
Access | PLC reads
Characteristics | Is used for internal diagnostic purposes.

Line number
Description | Line number in the module on which the error has occurred.
ST path | pMC[channel_idx]^.addr^.MCErrorSatz_Data.SatzR.Kopf.Line
Data type | INT
Access | PLC reads
Characteristics | Is used for internal diagnostic purposes.

Error number of a utility function
Description | Error number when using a utility function.
ST path | pMC[channel_idx]^.addr^.MCErrorSatz_Data.SatzR.Kopf.UtilErrorId
Data type | UDINT
Access | PLC reads
Characteristics | Is used for internal diagnostic purposes.

Module name of the module with utility function signalling an error
Description | Module name of the module with utility function signalling an error
Information flow | CNC -> PLC
ST path | pMC[channel_idx]^.addr^.MCErrorSatz_Data.SatzR.Kopf.UtilModulName
Data type | STRING(GCW_250_HLIFileNameLaengeMinus1)
Access | PLC reads
Characteristics | Is used for internal diagnostic purposes.

Line number of a utility function
Description | Line number of the line at which the error in a module with utility function has occurred.
ST path | PMC[channel_idx]^.addr^.MCErrorSatz_Data.SatzR.Kopf.UtilLine
Data type | INT
Characteristics | Is used for internal diagnostic purposes.

Multiple error number
Description | Error messages may be issued at several different points of the NC kernel. A unique multiple error number is issued for the purposes of distinction in the case of multiple usage.
ST path | pMC[channel_idx]^.addr^.MCErrorSatz_Data.SatzR.Kopf.MultipleId
Data type | UINT
Characteristics | Is used for internal diagnostic purposes.

Type of taskable function
Description | Type of taskable function in which an error has occurred.
ST path | pMC[channel_idx]^.addr^.MCErrorSatz_Data.SatzR.Kopf.BFType
Data type | UINT
Characteristics | Is used for internal diagnostic purposes.

Channel number
Description | Channel number of the channel in which the signalled error has occurred.
ST path | pMC[channel_idx]^.addr^.MCErrorSatz_Data.SatzR.Kopf.CncChannel
Data type | UINT

Communication ID
Description | Communication ID of the BF signalling an error in the CNC
ST path | pMC[channel_idx]^.addr^.MCErrorSatz_Data.SatzR.Kopf.KommuId
Data type | UINT
Access | PLC reads
Characteristics | Is used for internal diagnostic purposes.

Time specification with an error message: (???)
Description | Date of the instant of the error message
ST path | pMC[channel_idx]^.addr^.MCErrorSatz_Data.SatzR.Kopf.FbZeitangabe.DateCounter
Data type | UDINT
Characteristics | Currently not implemented, value is always 0.

Time specification of an error message: Interrupt cycles since system start
Description | Number of interrupt cycles since system start at the instant of an error message
ST path | pMC[channel_idx]^.addr^.MCErrorSatz_Data.SatzR.Kopf.FbZeitangabe.ZyklCounter
Data type | UDINT
Access | PLC reads

Version name CNC
Description | Version name of the CNC specified in the error message.
ST path | pMC[channel_idx]^.addr^.MCErrorSatz_Data.SatzR.Kopf.VersionName
Data type | STRING(GCW_250_HLIIntfVersNameLaengeMin1)

Recovery class
Description | Recovery class of an error
ST path | pMC[channel_idx]^.addr^.MCErrorSatz_Data.SatzR.Kopf.BehebungsKlasse
Data type | UINT
Value range | [0 ..8]

Reaction class of an error
Description | Reaction class of an error
ST path | pMC[channel_idx]^.addr^.MCErrorSatz_Data.SatzR.Kopf.ReaktionsKlasse
Data type | UINT
Value range | [0..8]

Body type of an error
Description | Body type of an error. Depending on the error type, the error record body contains further information on the error which has occurred. The individual structure elements are described in [DIAG].
ST path | pMC[channel_idx]^.addr^.MCErrorSatz_Data.SatzR.Kopf.RumpfTyp
Value range | 1 = HLI_RumpfTypNcProg, 2 = HLI_RumpfTypMds 3 = HLI_RumpfTypKommu 4 = HLI_RumpfTypRamDisk 5 = HLI_RumpfTypFile 6 = HLI_RumpfTypIntprFile 7 = HLI_RumpfTypListeBinaer 8 = HLI_RumpfTypGcm 9 = HLI_RumpfTypLeer 10 = HLI_RumpfTypHLI
Characteristics |

More:

button User data of an error message, body nc program

button User data of an error message, body machine data

button User data of an error message, body communication

button User data of an error message, body RAM disk

button User data of an error message, body file

button User data of an error message, body interprete file list

button User data of an error message, body binary list

button User data of an error message, body global channel manager

button Addition errror information value 1 - 5


User data of an error message, body nc program

NC program
Description | Error information in relation to an nc program
Data type | RumpfNcProg
ST path | pMC[channel_idx]^.addr^.MCErrorSatz_Data.SatzR.Rumpf.Maske.NCProg
Description | Logical path number (see startup list).
ST path | .logPfadNr
Data type | UINT
Value range | See startup list
Description | Program name
ST path | .ProgName
Data type | STRING(GCW_250_HLIProgNameLaengeMinus1)
Value range | CNC writes the value
Description | File name
ST path | .FileName
Data type | STRING(GCW_250_HLIProgNameLaengeMinus1)
Value range |
Description | File offset in bytes
ST path | .FileOffset
Data type | UDINT
Value range |
Description | Token offset in the actual nc line
ST path | .TokenOffset
Data type | UINT
Value range |
Description | Block number of the actual nc line
ST path | .SatzNumber
Data type | UDINT
Value range |
Description | Additional Programinformation
ST path | .SAddProgInfo
Data type | STRING(GCW_250_HLIProgNameLaengeMinus1)
Value range |


User data of an error message, body machine data

Machine data
Description | Error information in relation to an updata of a machine data
Data type | RumpfMds
ST path | pMC[channel_idx]^.addr^.MCErrorSatz_Data.SatzR.Rumpf.Maske.NCProg
Description | Type of list
ST path | .ListenTyp
Data type | UINT
Value range | 1 - manual data, 2  channel list, 3  axis list, 4  zero offsets, 5  tool data, 6  clamp position, 7  startup list, 9  axis compensations, 12  external variables
Description | Name of wrong structure
ST path | .StruktName
Data type | STRING(GCW_250_HLIStruktNameLaengeMinus1)
Value range |


User data of an error message, body communication

Communication
Description | Error information in relation to an protocol data unit (message)
Data type | RumpfKommu
ST path | pMC[channel_idx]^.addr^.MCErrorSatz_Data.SatzR.Rumpf.Maske.NCProg
Description | Type of list
ST path | .Medium
Data type | UINT
Value range | 1  function block, 2  PDU
Description | Code of message
ST path | .Typ
Data type | UDINT
Value range |
Description | Receiver or sender of message
ST path | .Partner
Data type | UDINT
Value range |


User data of an error message, body RAM disk

RAM disk
Description | Error information in relation to RAM disk access
Data type | RumpfRAMDisk
ST path | pMC[channel_idx]^.addr^.MCErrorSatz_Data.SatzR.Rumpf.Maske.NCProg
Description | Type of list
ST path | .Medium
Data type | UINT
Value range | 1  function block, 2  PDU
Description | Code of message
ST path | .Typ
Data type | UDINT
Value range |
Description | Receiver or sender of message
ST path | .Partner
Data type | UDINT
Value range |
Description | File name
ST path | .FileName
Data type | STRING(GCW_250_HLIProgNameLaengeMinus1)
Value range |
Description | File offset in bytes
ST path | .FileOffset
Data type | UDINT
Value range |


User data of an error message, body file

File
Description | Error information in relation to file access
Data type | RumpfFile
ST path | pMC[channel_idx]^.addr^.MCErrorSatz_Data.SatzR.Rumpf.Maske.NCProg
Description | File name
ST path | .FileName
Data type | STRING(GCW_250_HLIProgNameLaengeMinus1)
Value range |
Description | File offset in bytes
ST path | .FileOffset
Data type | UDINT
Value range |


User data of an error message, body interprete file list

Binary list
Description | Error information in relation to ASCII update of paramter list
Data type | RumpfIntprFile
ST path | pMC[channel_idx]^.addr^.MCErrorSatz_Data.SatzR.Rumpf.Maske.NCProg
Description | File name
ST path | .FileName
Data type | STRING(GCW_250_HLIProgNameLaengeMinus1)
Value range |
Description | File offset in bytes
ST path | .FileOffset
Data type | UDINT
Value range |
Description | Linenumber in actual file
ST path | .FileLine
Data type | UDINT
Value range |
Description | List type
ST path | .ListenTyp
Data type | UINT
Value range | 1 = manual mode parameter list 2 = channel parameter list 3 = axis parameter list 4 = zero point parameter list 5 = tool parameter list 6 = clamp position offset parameter list 7 = start up parameter list 9 = axis compensation parameter list
Description | Name of wrong structure
ST path | .StruktName
Data type | STRING(GCW_250_HLIStruktNameLaengeMinus1)
Value range |


User data of an error message, body binary list

Binary list
Description | Error information in relation to binary list update
Data type | RumpfListeBinaer
ST path | pMC[channel_idx]^.addr^.MCErrorSatz_Data.SatzR.Rumpf.Maske.NCProg
Description | Name of wrong structure
ST path | .StruktName
Data type | STRING(GCW_250_HLIStruktNameLaengeMinus1)
Value range |


User data of an error message, body global channel manager

Global channel manager
Description | Error information in relation to global channel manager
Data type | RumpfListeGcm
ST path | pMC[channel_idx]^.addr^.MCErrorSatz_Data.SatzR.Rumpf.Maske.NCProg
Description | Name of wrong structure
ST path | .VarString
Data type | STRING(GCW_250_HLIVarStringLaengeMinus1
Value range |
Description | File name
ST path | .FileName
Data type | STRING(GCW_250_HLIProgNameLaengeMinus1)
Value range |
Description | number of interpreter
ST path | .InterpNo
Data type | UDINT
Value range |
Description | number of line
ST path | .LineNo
Data type | UDINT
Value range |
Description | number of column
ST path | .ColNo
Data type | UDINT
Value range |
Description | Offset
ST path | .OffsetNo
Data type | UDINT
Value range |
Description | number of command
ST path | .CommandNo
Data type | UDINT
Value range |
Description | Id of part
ST path | .PartId
Data type | UDINT
Value range |
Description | Id of step
ST path | .StepId
Data type | UDINT
Value range |
Description | Level of if construct
ST path | .IfLevel
Data type | UDINT
Value range |


Addition errror information value 1 - 5

Additional error information
Description | Individual error information
Data type | WertB
ST path | pMC[channel_idx]^.addr^.MCErrorSatz_Data.SatzR.Rumpf.Wert1 ... Wert5
Description | Type of data
ST path | .Typ
Data type | INT
Value range | 1 = BOOL 2 = USINT 3 = SINT 4 = SINT 5 = INT 6 = UDINT 7 = DINT 10 = LREAL 19 = STRING
Description | Dimension of data
ST path | .Dimension
Data type | INT
Value range | 1 = Position 2 = Velocity 3 = Acceleration 4 = Jerk 5 = Time 6 = Per cent 7 = Address 8 = Inkrements 9 = Revolution 10 = Cutting velocity
Description | Meaning of data
ST path | .Bedeutung
Data type | INT
Value range | 1 = limit 2 = actual value 3 = wrong value 4 = expected value 5 = corrected value 6 = logical axis id 7 = drive type 8 = logical control element 9 = state 10 = transition 11 = sender 12 = class 13 = instance 14 = indent number 15 = status 16 = ring 17 = block number
Description | Content of data
ST path | .Inhalt
Data type | (as union, must be type casted corresponding to type of data)


Platform data

Platform data are data, which cannot be assigned to a specific axis or a channel, but have an effect on the entire NC control.

More:

button Retain data


Retain data

TwinCAT CNC: Overview

Reta in data

The NC kernel offers the possibility, to save state data of the control during shut down and to reload this data during start up. In the following this kind of data is called retain data. Examples for such data are:

q Axis positions

q Axis state regarding the homing

This retain data are stored in a file on the hard disk. The retain data from the previous shut down of the control are stored in an additional file. So normally always two records of retain data are available.

The stored retain data became invalid at changings of the NC configuration (adding/ removing of an axis or a channel).

More:

button State informations of a platform

button Control commands of a platform


State informations of a platform

At first it is tried at start up of the control to load the retain data record, stored during the last shut down. If this is not successful, it is tried to load the data record of the previous shut down of the control.

If a data record could been loaded, before taking over it is checked for valid data. The taking over of the retain data is started by a HLI command (see also chapter 13.1.2).

The read retain data record is valid
Description | The read data record contains valid retain data.
Information flow | CNC -> PLC
Unit | -
ST path | pPlatform^.addr^.StatePlatform_Data.Retain_Data.RetainDataValid
Data type | BOOL
Access | PLC reads

Last retain data record could been loaded.
Description | The read data record contains the retain data, which were stored during the last shut down of the control.
Information flow | CNC -> PLC
Unit | -
ST path | pPlatform^.addr^.StatePlatform_Data.Retain_Data.ActDataPresent
Data type | BOOL
Access | PLC reads

Previous retain data record could been loaded
Description | The read data record contains the retain data, which were stored during the previous shut down of the control.
Information flow | CNC -> PLC
Unit | -
ST path | pPlatform^.addr^.StatePlatform_Data.Retain_Data.OldDataPresent
Data type | BOOL
Access | PLC reads


Control commands of a platform

Based on the retain data regarding the internal state of the NC control, after restart the control has the same state like before the shut down.

The reloading of the retain data is started by a HLI command. Because the stored axis positions became invalid before the execution of the command, no axis of the NC control may be moved.

If before the taking over of the retain data an axis has been moved, the error message 70191 is output.

Taking over retain data
Description | Starts the taking over of the loaded retain data. This can only take place, if a valid data record is available (see also 13.1.1 ) and no axes were moved since start up of the control.
Data type | MCControlBoolUnit, see description Control Unit
Access | PLC reads request + state and writes command + enable
ST path | pPlatform^.addr^.MCPlatformControl_Data.SetRetainData
Commanded, requested data
ST element | .X_Command .X_Request
Data type | BOOL
Value range | [TRUE = Taking over of retain data]
Return value
ST element | .X_State
Data type | BOOL
Value range | [TRUE = Taking over of retain data was successful]
Redirection
ST element | . X_Enable


Control Unit

Message to/from PLC

Description

Messages sent from the CNC to the PLC and others that are send from PLC to other members of the communication process, provided by the CNC, could be handled with this control unit.

The CNC can send a message to the PLC using #MSG PLC [""] or #MSG SYN PLC [...] (see [PROG]). The information which CNC command was used sending a message is included in the data of the control unit.

Data type

McControlMsgUnit, see description Control Unit with usage check

ST path

pMC[channel_idx]^.addr^.MsgMcControl_Data

Commanded, requested data

ST element

.CommandW

. RequestR

Data type

HliMsgSendung

Access

PLC writes CommandW and reads RequestR

Usage check, commanded, requested data

ST element

.CommandSemaphorRw

. RequestSemaphorRw

Data type

BOOL

Value range

[TRUE, FALSE]

Access

commanded data

PLC can write data for commanding if flag CommandSemaphorRw is FALSE. Are all data written, PLC sets CommandSemaphorRw to TRUE.

CNC takes the commanded data if CommandSemaphorRw is TRUE and afterwards set it to FALSE.

requested data

The data a GUI wants to command could be written if RequestSemaphorRw is FALSE. If they are complete RequestSemaphorRw is set to TRUE.

PLC reads the data a GUI wants to command if RequestSemaphorRw is TRUE. After the PLC has taken the data the PLC sets RequestSemaphorRw to FALSE

Redirection

ST path

.EnableW


User data

More:

button Requested and commanded user data


Requested and commanded user data

Content of message to/from PLC
Description | Data of message which was received or sent.
ST path | Commanded vlue pMC[channel_idx]^.addr^.MsgMcControl_Data.CommandW Requested value pMC[channel_idx]^.addr^.MsgMcControl_Data.RequestR
ST element | . Inhalt
Data type | ARRAY [ 1 .. GCW_250_HliMessageLaenge] OF BYTE

Type of message to/from PLC
Description | Marks if a message was sent by CNC using #MSG or #MSGINFO command (see [PROG])
ST path | Commanded value pMC[channel_idx]^.addr^.MsgMcControl_Data.CommandW Requested Wert pMC[channel_idx]^.addr^. MsgMcControl_Data.RequestR
ST element | . Typ
Data type | UDINT
Value range | 0 Initial value 1 Type of message which was sent using #MSG command (if CNC sent the message) 2 Type of message, which was sent using #MSGINFO command (if CNC sent the message)


Implementation as PLC library

To access the HLI a PLC library is available for use by PLC application developer. These library is implemented for several PLC systems specifically. The following table contains the name of the library for each of the supported PLC systems.

PLC system | TwinCAT
HLI PLC library | tccnchli1.lib

The library contains

· data structure definitions, which are components of the HLI

· global variable definitions, that are used to access the elements of the HLI

· function blocks, which are used to initialize global pointers to the elements of the HLI

More:

button Access to HLI elements

button Function blocks within PLC library


Access to HLI elements

More:

button PLC system TwinCAT


PLC system TwinCAT

The implementation of the HLI PLC library for both PLC systems contains global pointers to the specific areas of the HLI. That pointers are used to access control units and status data or other data of such an HLI area. The following table shows the name of the pointers and the availability for each PLC system:

 | Description | PLC system
Global Pointer |  | TwinCAT
pPlatform | Platform specific area | X
pMC | Array of pointers to channel specific area | X
pAC | Array of pointers to axis specific area | X
pCTM | Array of pointers to area concerning order administration | X
pVEGlob | Pointer to global V.E. variables | X
pVE | Array of pointers to channel specific V.E. variables | X

Table 15-1: Global pointer to HLI areas

Please take care, only that pointers are initialized, which are supported by the PLC system and make sense concerning the number of channels or axes of the running configuration of the NC kernel. All other pointers are NULL-pointers.


Function blocks within PLC library

More:

button Overview of functions blocks

button ISG_HliInterface


Overview of functions blocks

Following table shows which functions blocks are implemented for each PLC system.

Function block | PLC system
 | TwinCAT
ISG_HliInterface | X


ISG_HliInterface

For each PLC system that PLC library contains the function block its urgent to call an instance of the function block if the application needs to get access to the HLI.

Rasing edge at input bStart starts a request to NC-Kernel to get information about number of channels, number of axes of actual configuration. The result of the request is checked against the values inside the PLC. If differences occur output bError becomes TRUE and at output bErrorId appears an error value. If the check is successful output bInitialized changes to TRUE and the PLC application can access via global defined pointers (see Table 15-1) the specific areas of the HLI (see PLC program frame).

Block diagram

Parameters of FB

VAR_INPUT
 | bStart | BOOL | Raising edge leads to check if HLI definition on PLC side is the same as on NC-Kernel side.
VAR_OUTPUT
 | bBusy | BOOL | Request of information about HLI from NC-Kernel and checking of information is still active.
 | bInitialized | BOOL | Check was successful and now its first time allowed to access the HLI.
 | bError | BOOL | Is TRUE, if error occurs.
 | iErrorId | UDINT | Errror identification. Possible values see Table 15-2.
 | iPlcErrorId | UDINT | Specific error value of used PLC system. Detailed explanations see Table 15-2, error value 9 (ISG_PLC_PFORM_ERROR).
 | expectedHli | HLI_DIAGNOSTIC | Information about characteristic of HLI on side of PLC. Data structure contains number of some HLI areas and version identifier.
 | actualHli | HLI_DIAGNOSTIC | Information about characteristic of HLI on side of NC-Kernel.

Behaviour of the FB

q Table of error identifiers

Error ID | Global constant Defined within PLC library | Description
0 | ISG_NO_ERROR | All OK  no error occurred
1 | ISG_WRONG_PARAMETER | Version identifier of HLI of and NC-Kernel are different.
2 | ISG_WRONG_PARAMETER | Different characteristic (number channels, number axes, ) of HLI at PLC and NC-Kernel.
9 | ISG_PLC_PFORM_ERROR | Error occured in relation with used PLC system. PLC system specific error value is displayed at output iPlcErrorId if available. Example: In case of TwinCAT this may be a ADS error. ADS error value than will be displayed.

Table 15-2: Values for ErrroID of ISG_HliInterface


PLC program frame

PROGRAM MAIN

VAR

Hli : ISG_HliInterface;

HliInitError : BOOL := FALSE; (* Error at initialisation of HLI *)

UserInitialisationDone : BOOL := FALSE; (* User initialisation done *)

END_VAR

(* Request description of the HLI from the CNC *)

Hli(bStart := TRUE);

(* Check if initialization of HLI finished successful and if

errors occured during initialization phase. *)

IF Hli.bInitialized = TRUEAND Hli.bError = FALSE

THEN

(* Do the initialization we do once the PLC starts up. *)

IF UserInitialisationDone = FALSETHEN

(* Get the result of the user defined initialization *)

UserInitialisationDone := UserInitialisations(dummy:=TRUE);

END_IF;

(* --------------------------------------------------- *)

(* Insert your PLC application code after this comment *)

(* --------------------------------------------------- *)

IF Hli.bError = TRUETHEN

(* Fehler beim Initialisieren des HLI *)

(* iErrorId enthaelt Fehlernummer *)

HliInitError := TRUE;

END_IF;

END_IF;

More:

button Initialisation function UserInitialisations()


Initialisation function UserInitialisations()

FUNCTION UserInitialisations : BOOL

VAR_INPUT

dummy : BOOL := FALSE; (* not used *)

END_VAR

VAR

AxIdx : UDINT;

ChIdx : UDINT;

END_VAR

(* Register PLC at all axes interfaces *)

FOR AxIdx := 0 TO gNrAx - 1 DO

(* Set plc_present_w at each axis *)

gpAx[AxIdx]^.head.plc_present_w := TRUE;

(* Register at all axis specific control units you want to handle by PLC *)

(* Register at all control units to enable a drive *)

gpAx[AxIdx]^.lr_mc_control.torque_permission.enable_w := TRUE;

gpAx[AxIdx]^.lr_mc_control.release_feedhold.enable_w := TRUE;

gpAx[AxIdx]^.lr_mc_control.drive_on.enable_w := TRUE;

END_FOR;

(* Register PLC at all channel interfaces *)

FOR ChIdx := 0 TO gNrCh - 1 DO

(* Set plc_present_w at each channel *)

gpCh[ChIdx]^.head.plc_present_w := TRUE;

(* Register at all channel specific control units you want to handle by PLC *)

END_FOR;

UserInitialisations := TRUE;