The use of this FB is recommended if high-precision positioning has to be carried out where a direction-dependent drive backlash (e.g. backlash of a gearbox or a spindle) has to be compensated.
WARNiNG!
The combination of backlash compensation with position control on an external encoder is not permitted.
Please note when using this FB:
The PLCopen status "Standstill" is entered as soon as the uncompensated setpoint specification has reached standstill. The motion FBs (e.g. MC_MoveAbsolute, MC_MoveVelocity, L_MC1P_AxisBasicControl) their status outputs (x)Busy, (x)Done etc. on the basis of the uncompensated setpoints.
If required, the xInPosition output in the MC_ReadMotionState or L_MC1P_AxisBasicControl FBs and the eContactState output of this FB can also be used for standstill detection in the application.
The compensation has an additive effect on the setpoint and is subtracted from the actual value.
The corrected setpoints are output on the FB for analysis purposes. These do not have to be connected by application.
|
|
|
|
L_CT1P_BacklashComp |
|
|
|
|
|---|---|---|---|---|---|---|---|
|
AXIS_REF |
- |
|
Axis |
xBusy |
|
- |
BOOL |
|
BOOL |
- |
|
xEnable |
xActive |
|
- |
BOOL |
|
- |
|
eExecutionIndex |
xError |
|
- |
BOOL |
|
|
LREAL |
- |
|
lrBacklashWidth |
eErrorID |
|
- |
L_IE1P_Error |
|
LREAL |
- |
|
lrCompTime |
lrSetPosOut |
|
- |
LREAL |
|
L_CT1P_BacklashCompMode |
- |
|
eCompMode |
lrSetVelOut |
|
- |
LREAL |
|
|
|
|
|
lrSetAccOut |
|
- |
LREAL |
|
|
|
lrSetTorqueOut |
|
- |
LREAL |
||
|
|
|
|
|
eContactState |
|
- |
L_CT1P_BacklashContactState |
|
|
|
|
|
|
|
|
|
Inputs
|
Name Data type |
Info/adjustment options |
|
|---|---|---|
|
Axis AXIS_REF |
Transfer of the axis data structure |
|
|
xEnable BOOL
|
FALSE -> TRUE |
Activation of the FB |
|
Activation or deactivation (TRUE <-> FALSE) can only take place when the axis is locked ("Disabled" status) |
||
|
eExecutionIndex |
Execution index A maximum of two setpoint-correcting FBs can be connected to one axis. The call sequence is defined via this input. Selection: L_MC1P_ExecutionIndex.First := 1, L_MC1P_ExecutionIndex.Second := 2 |
|
|
lrBacklashWidth LREAL |
Width of the backlash on the output side. Initial value: 0 For modulo axes, the value must be smaller than the cycle length of the axis Note: The value can be adapted during operation and is adopted if the compensation does not add a position correction, i.e. if one of the conditions applies: eCompMode = NegativeComp and eContactState = PositiveContact or eCompMode = PositiveComp and eContactState = NegativeContact |
|
|
lrCompTime LREAL |
Duration for backlash compensation in seconds Initial value: 0.1s Note: The value can be adapted during operation and is adopted if no transition trajectory is active,i.e: eContactState = PositiveContact or eContactState = NegativeContact |
|
|
eCompMode L_CT1P_BacklashCompMode |
Direction selection for compensation Typically, the compensation direction should be the inverse of the referencing direction. The value is accepted once with a positive xEnable edge 1: NegativeComp (initial value)
2: PositiveComp
|
|
Outputs
|
Name Data type |
Value/meaning |
|
|---|---|---|
|
xBusy BOOL |
TRUE |
The FB was added to the AXIS_REF setpoint path. |
|
xActive BOOL |
TRUE |
The backlash compensation is active |
|
xError BOOL |
TRUE |
An error has occurred. For details, see eErrorID . |
|
eErrorID |
If xError = TRUE: Error number for the error that has occurred. |
|
|
lrSetPosOut LREAL |
Modified target position This output is used for analysis. It is not necessary to connect the output. |
|
|
lrSetVelOut LREAL |
Modified target speed This output is used for diagnostics. It is not necessary to switch the output. |
|
|
lrSetAccOut LREAL |
Modified target acceleration This output is used for diagnostics. It is not necessary to switch the output. |
|
|
lrSetTorqueOut LREAL |
Modified target torque This output is used for diagnostics. It is not necessary to switch the output. |
|
|
eContactState L_CT1P_BacklashContactState |
State of the backlash compensation 0: Unknown Initial state of the function block. It is not known whether/which contact is present 1: NegativeContact The backlash compensation compensates in the negative direction 2: PositiveContact The backlash compensation compensates in the positive direction 3: PositiveToNegative The backlash compensation changes from positive to negative compensation 4: NegativeToPositive The backlash compensation changes from negative to positive compensation |
|