ICyclicActionProvider.CyclicAction (METH)

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:

Scope

Name

Type

Input

itfTimingController

ITimingController

Output

xComplete

BOOL

iErrorID

INT