Counting loops

Counting loops permit the processing of statements n times. The number of loop passages is checked by a counting variable.

The syntax of a counting loop starts with:

 \$FOR P = , ,

and always ends with:

 \$ENDFOR

Here, P<expr> is the counting variable. Its start value is specified by <expr1>, its end value by <expr2> and the counting increment by <expr3>.

Notice

Only integer values may be used as counting variables.

If decimal numbers are used, it is not possible to precisely represent the increment exactly (exception: powers of two) since a rounding error accumulates when added. This may lead to a loop that passes through one loop too few.

Instead of the P parameters, it is also possible to use variables ("V.”) with write access.

If the counting increment is negative, the loop is aborted if the end value is undershot; if the counting increment is positive, the loop is aborted if the end value is exceeded. Programming the counting increment 0 leads to an endless loop and to the output of a warning.

Programing Example

Counting loops

N100 \$FOR P1= 10, 100, 2  P1 is pre-assigned the value 10 at loop start.
The counting loop is passed until P1
exceeds the value 100; then P1 is
incremented by 2 at the end of every loop
pass.

N110 X SIN [P1 * 5]       Within the counting loop, the NC blocks N110
to N130 are executed..

N120 Y COS [P1 * 5]

N130 ...

N150 \$ENDFOR

Programing Example

Negative step width:

N100 \$FOR P1= 100, 10, -2  P1 is pre-assigned the value 100 at loop start.
The counting loop is passed until
N110     X SIN [P1 * 5]    P1 undershoots the value 10; then P1 is
decremented by 2 at the end of every loop
pass. In the counting loops, the NC blocks N110 to

to N130 are executed..

N120 Y COS [P1 * 5]

N130 ...

N150 \$ENDFOR

Loops not executed:

N100 \$FOR P1= 100, 10, 1   P1 is pre-assigned the value 100 at loop start.
The counting loop is passed until
P1 exceeds the value 10.
N110 X SIN [P1 * 5]        But here no loop since P1 is pre-assigned the
value 100.

N120 Y COS [P1 * 5]

N130 ...

N150 \$ENDFOR

Endless loop:

N100 P2=20

N110 \$FOR P1= 100, 10, 0 Endless loop

N120 \$IF P2 == 50

N130 \$BREAK

N140 \$ENDIF

N150 \$ENDFOR