FB_AxisPlsPosModulo
Function Block - Used for any position of a modulo axis in both directions.
Inputs
Input |
Data Type |
Range |
Unit |
Default |
Description |
---|---|---|---|---|---|
ibExecute |
BOOL |
FALSE, TRUE |
N/A |
No default |
Enable PLS. |
iPosition |
LREAL |
No range |
User units |
No default |
Any position of a modulo axis. |
iModuloPosition |
LREAL |
No range |
User units |
No default |
Modulo position of the axis. |
iStartPos |
LREAL |
No range |
User units |
No default |
Start position of PLS. |
iEndPos |
LREAL |
No range |
User units |
No default |
End position of PLS. |
iDelayTime |
TIME |
0ms - 24hr |
TIME |
No default |
Delay time for compensation. |
iHysteresis |
LREAL |
No range |
User units |
No default |
Hysteresis. |
ibForce |
BOOL |
FALSE, TRUE |
N/A |
No default |
Force PLS. |
Outputs
Output |
Data Type |
Range |
Unit |
Description |
---|---|---|---|---|
oPLS |
BOOL |
FALSE, TRUE |
N/A |
Position limit switch. |
Remarks
- The Boolean output oPLS is set to:
- TRUE if the position has crossed the start position.
- 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 possible to define a hysteresis for switching on and off of the PLS.
Timing
Hysteresis
FBD Language Example
FFLD Language Example
IL Language Example
Not available.
ST Language Example
//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;