FB_PositionCompensation
[This is preliminary documentation and subject to change.]
 
The function block FB_PositionCompensation returns the compensation value for e.g. pitch- and cross-compensation. If the FB is enabled, the compensation value is calculated by the position of the reference axis and a look-up in the correction table (pTable). In case of pitch-compensation the reference axis and compensated axis are the same. If this FB is used for cross-compensation they are different.
The compensation value that is returned by this FB is written to the axis by using FB_WritePositionCompensation.
VAR_INPUT
VAR_INPUT
   Enable: BOOL;
   pTable: POINTER TO ST_CompensationElement;
   cbSize: UDINT;
ND_VAR
Enable: Continuous calculation of the compensation value is enabled with a rising edge on this input. It must be true as long as compensation data should be calculated.
pTable: Pointer to the compensation table. This table is an array of type ST_CompensationElement
cbSize: Size in bytes of the compensation table
VAR_IN_OUT
VAR_IN_OUT
   ReferenceAxis : NCTOPLC_AXLESTRUCT;
   Desc          : ST_CompensationDesc;
END_VAR
ReferenceAxis: Axis structure from NC. This axis can be different to that axis that should be compensated. E.g. in case of a cross-compensation this will not be the compensated axis.
Desc: Description structure for the compensation.
VAR_OUTPUT
VAR_OUTPUT
   Compensation : LREAL;
   Error        : BOOL;
   ErrorId      : UDINT;
   Active       : BOOL;
ND_VAR
Compensation: Calculated compensation value. Compensation will be 0.0 if Enable or Active is FALSE.
Error : Becomes TRUE, as soon as an error occurs.
ErrorId : If the error output is set, this parameter supplies the error number.
Active: Becomes TRUE, if compensation is active. If the working direction does not match to the current direction, it will be false.
Requirements
Development environment  | Target system type  | PLC libraries to be linked  | 
|---|---|---|
from TwinCAT v2.10 Build 1314  | PC (i386)  | TcNc.Lib  |