Leadscrew error compensation

Compensation process

Leadscrew error compensation (referred to below as SSFK) is an axial correction. The position setpoint of the compensated axis is changed by a compensation value based on position controller timing, in order, for instance, to compensate for leadscrew errors. This correction is cancelled by computation again for the measured actual position values so that the correction performed does not appear in the display data of the control system.

Compensation table

The compensation values are taken from a table in which the characteristic of the compensation curve as a function of the axis position is saved. The axis positions entered in the table are designated as interpolation points and the related values of the compensation curve are referred to as compensation values. The compensation value is subject to linear interpolation for axis positions lying between interpolation points. The table of compensation values is referred to below as compensation table.

Bilateral/ unilateral SSFK

It is possible to state a separate compensation table for each movement direction of an axis. This method of compensation is referred to as bilateral compensation. If a table is used for both directions of movement of one axis, we speak of unilateral compensation.

The compensation tables are saved axis-specifically in a file (compensation value list).

The axis dynamics are ignored on output of the compensation values.

The diagram below shows a compensation value curve by way of example. The significance of the parameters used in the diagram is explained later.

Leadscrew error compensation 1:
Figure 1-6: Compensation table with equidistant interpolation point grid and unilateral compensation

Characteristics

This functionality features the following characteristics:

Action

SSFK acts under the following preconditions.

Activation

The SSFK is activated for the specified axis with P-AXIS-00175 in the axis parameter list [AXIS]:

Variable name

Type

Significance

lr_param.ssfk

BOOLEAN

0: no SSFK
1: SSFK active

Example

Excerpt from axis parameter list:

:
lr_param.ssfk     1
:

General data of SSFK-table

The general data of the list body is used to program the mode of operation of compensation, e.g. unilateral or bilateral. Adding ssfk turns the general data into kw.ssfk.* It contains following elements:

Elements of general data

Variable name

Type

Significance

unit

BOOLEAN

Unit of the position entries
0: Encoder increments
1: Metric (in 0.1μm)

interval

SGN32

Spacing between interpolation points of the compensation table if using equidistant interpolation points. If this parameter is = 0, the position of each interpolation point must be specified separately

kw_startpos

SGN32

Start position of the compensation table

kw_nr_max

SGN32

Number of entries in the compensation table.

bilateral

BOOLEAN

0: Unilateral compensation
1: Bilateral compensation

modulo

BOOLEAN

Compensation is performed for a modulo axis.

Compensation values of SSFK

The compensation values are specified in the tablekw.ssfk.table[i].*.

The field index i may assume values 0 tokw.ssfk.kw_nr_max– 1.

The compensation values are specified as absolute position errors in the unit specified inkw.ssfk.(metric in 0.1 µm or incremental).

Leadscrew error compensation 2:

where: Leadscrew error compensation 3:ith compensation value

Leadscrew error compensation 4:ith setpoint (interpolation point in the compensation table)

Leadscrew error compensation 5:ith actual value (measured with reference gauging device)

The table contains the following elements:

Compensation table

Variable name

Type

Significance

pos

SGN16

Compensation value in the case of movement in positive direction respectively kompensation value for unilateral compensation.

neg

SGN16

Compensation value in the case of movement in negative direction, not used for unilateral compensation.

setpoint

SGN32

Setpoint of the axis (programmed value). Only for non-equidistant interpolation points.

If using bilateral compensation, the position errors in the case of movement in positive direction must be entered in entry pos. The specification of the interpolation points applies to both directions.

If using unilateral compensation, the position errors must also be entered in entry pos and there is no neg entry.

By contrast with specification of individual interpolation points for the compensation table, it is also possible to use a system of fixed increments. In this case, specification of the interpolation points in variable setpoint can be omitted.

In order to use a fixed interpolation point increment system, the increment of the interpolation point increment system must be specified in variable kw.ssfk.intervall. The interpolation points are then computed internally from the start position (kw.ssfk.kw_startpos) and the increment.

Special features applicable to modulo axes

If a compensation table is configured for a modulo axis(kw.ssfk.modulo = 1), a "modulo transition" also occurs in the compensation table at the modulo transition of the axis position.

This can be used to compensate for position errors caused by gears or transmissions for instance.

The following special aspects must be noted: