The use of this FB is recommended when high-precision positioning is required to compensate for a position error that depends on the position of a second axis.
Examples of this include deflections of horizontal axes on gantries or angular errors in x-y tables.
WARNUNG!
The combination of cross compensation with position control on an external encoder is not permitted. The FB L_CT1P_CrossComp does not support modulo axes.
Please note when using this setpoint-correcting 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) also switch their status outputs (x)Busy, (x)Done etc. on the basis of the uncompensated setpoints.
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 need to be connected to the application.
|
|
|
|
L_CT1P_CrossComp |
|
|
|
|
|---|---|---|---|---|---|---|---|
|
AXIS_REF |
- |
|
Axis |
xBusy |
|
- |
BOOL |
|
BOOL |
- |
|
xEnable |
xActive |
|
- |
BOOL |
|
- |
|
eExecutionIndex |
xError |
|
- |
BOOL |
|
|
AXIS_REF |
- |
|
Base |
eErrorID |
|
- |
L_IE1P_Error |
|
ARRAY[*] OF LREAL |
- |
|
alrBasePosition |
lrSetPosOut |
|
- |
LREAL |
|
ARRAY[*] OF LREAL |
- |
|
alrAxisCorrection |
lrSetVelOut |
|
- |
LREAL |
|
|
|
|
|
lrSetAccOut |
|
- |
LREAL |
|
|
|
lrSetTorqueOut |
|
- |
LREAL |
||
|
|
|
|
|
lrActCorrection |
|
- |
LREAL |
|
|
|
|
|
|
|
|
|
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). |
|
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 |
|
|
Base AXIS_REF |
Transfer of the axis data structure of the base axis |
|
|
alrBasePosition ARRAY[*] OF LREAL |
Position vector of the AxisRef Base for determining the position correction |
|
|
alrAxisCorrection ARRAY[*] OF LREAL |
Correction values of the AxisRef Axis at the positions alrBasePosition The number of values in alrBasePosition and alrAxisCorrection must be identical.. |
|
Outputs
|
Name Data type |
Value/meaning |
|
|---|---|---|
|
xBusy BOOL |
TRUE |
The FB was added to the AXIS_REF setpoint path. |
|
xActive BOOL |
TRUE |
Cross 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. Note: The cross compensation does not affect the torque. |
|
|
lrActCorrection LREAL |
Current correction value This output is used for diagnostics.It isnot necessary to switch the output. |
|