repeat_until

Use the repeat_until loop to continue performing an action until conditions are true.
Operands
REPEAT
<statement>;
Structured Text
Operand
Type
Format
Enter
bool_
expression
BOOL
Tag expression
BOOL tag or expression that evaluates to a BOOL value
(BOOL expression)
IMPORTANT:
  • Do not iterate within the loop too many times in a single scan.
  • The controller does not execute other statements in the routine until it completes the loop.
  • A major fault occurs when completing the loop takes longer than the watchdog timer for the task.
  • Consider using a different construct, such as if_then.
Description
The syntax is:
The following diagrams show how a repeat_until loop executes and how an exit statement leaves the loop early.
While the bool_expression is false, the controller executes only the statements within the repeat_until loop.
To stop the loop before the conditions are false, use an exit statement.
Affects Math Status Flags
No
Fault Conditions
A major fault will occur if:
Fault type
Fault code
The construct loops too long
6
1
Example 1
If performing this:
Enter this structured text:
The repeat_until loop executes the statements in the construct and then determines if the conditions are true before executing the statements again. This differs from the while_do loop because the while_do the while_do loop evaluates its conditions first.
If the conditions are true, the controller then executes the statements within the loop. The statements in a repeat_until loop are always executed at least once. The statements in a while_do loop might never be executed.
pos := -1;
REPEAT
pos := pos + 2;
UNTIL ((pos = 101) OR (structarray[pos].value = targetvalue))
end_repeat;
Provide Feedback
Have questions or feedback about this documentation? Please submit your feedback here.
Normal