ICyclicActionProvider.CyclicAction (METH)

METHOD CyclicAction

CyclicAction wird solange ausgeführt, bis xComplete TRUE ist oder iErrorID ≠ 0 (Zero). Wenn xComplete TRUE oder iErrorID ≠ 0 (Zero) ist, wird der Zustand STATE.CLEANING erreicht. Mit itfTimingController ≠ 0 (Zero) ist es möglich, die aktuelle Aufrufzeit zu überprüfen (siehe ITimingController.ControllerCheckTiming). Funktionsbausteine mit einer Eingangsvariablen udiTimeLimit (siehe IETrigTl, IETrigATl, IETrigTlTo, IETrigATlTo, ILConTl, ILConTlTo, ILConTlC) sollten so implementiert werden, dass der aktuelle Aufruf beendet werden kann, wenn die für diesen Aufruf verbrauchte Zeit die Einstellungen von udiTimeLimit überschreitet.

Beispiel

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
Ein-/Ausgänge:

Gültigkeitsbereich

Name

Typ

Eingang

itfTimingController

ITimingController

Ausgang

xComplete

BOOL

iErrorID

INT