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
Ausgang
xComplete
BOOL
iErrorID
INT