METHOD CyclicAction
The CyclicAction is running until either xComplete is TRUE or iErrorID ≠ 0 (Zero). If xComplete is TRUE or iErrorID ≠ 0 (Zero) the state STATE.CLEANING is reached. With itfTimingController ≠ 0 (Zero) it is possible to check the current invocation time (see: ITimingController.ControllerCheckTiming). Function blocks with a udiTimeLimit input variable (see: IETrigTl, IETrigATl, IETrigTlTo, IETrigATlTo, ILConTl, ILConTlTo, ILConTlC) should be implement in such a way that the current invocation is exited when the consumed time for this invocation has exceeded the settings from udiTimeLimit.
Example
REPEAT
// working to reach the ready condition
// ⇒ xComplete := TRUE
// if the maximum invocation time is reached
// ⇒ xTimeLimit := TRUE
// if the maximum operating time is reached
// ⇒ xTimeOut := TRUE
// if an error condition is reached
// ⇒ set iErrorID to a value other than 0 (Zero)
itfTimingController.ControllerCheckTiming(
xTimeOut=>xTimeOut,
xTimeLimit=>xTimeLimit
);
xComplete := TRUE;
iErrorID := ERROR.NO_ERROR;
UNTIL xComplete OR
xTimeOut OR xTimeLimit OR
iErrorID <> ERROR.NO_ERROR
END_REPEAT
InOut: |
|