FB_AxisPlsPosModulo
Description
This function block can be used for any position of a modulo axis in both directions. The Boolean output oPLS is set to TRUE if the position has crossed the start position and is set to FALSE if the position has crossed the end position. The function block is executed cyclically. The function block has the possibility to compensate a delay time of the connected device, e .g. glue nozzles. It is also possible to define a hysteresis for switching on and off of the PLS.
Arguments
Input
ibExecute |
Description |
Enable PLS |
Data type |
BOOL |
|
iPosition |
Description |
Any position of a modulo axis |
Data type |
LREAL |
|
iModuloPosition |
Description |
Modulo position of axis |
Data type |
LREAL |
|
iStartPos |
Description |
Start position of PLS |
Data type |
LREAL |
|
iEndPos |
Description |
End position of PLS |
Data type |
LREAL |
|
iDelayTime |
Description |
Delay time for compensation |
Data type |
TIME |
|
iHysteresis |
Description |
Hysteresis |
Data type |
LREAL |
|
ibForce |
Description |
Force PLS |
Data type |
BOOL |
Output
oPLS |
Description |
Position limit switch |
Data type |
BOOL |
Example
Timing
Hysteresis
ST
//PLSOutput is True when position input is between 180 and 270 with a T#2ms delay
//Can also force the output to be true with ForceOuput variable
//Hysteresis is on for 3 user units in case direction changes around start point
Inst_FB_AxisPlsPosModulo( EnablePLS, ActualPosition, ModuloPosition, 180, 270, T#2ms, 3, ForcePLS );
PLSOutput := Inst_FB_AxisPlsPosModulo.oPLS;
Function Block Diagram
FFLD