Skip to main content

Dichiarazione ST: WHILE

Il WHILE loop è usato come il PER loop per eseguire istruzioni più volte fino a quando non si verifica la condizione di interruzione. La condizione di interruzione di a WHILE loop è un'espressione booleana.

Sintassi:

WHILE <boolean expression> DO
  <instructions>
END_WHILE;

CODESYS esegue ripetutamente il <instructions> dichiarazioni per tutto il tempo <Boolean expression> restituisce VERO. Se l'espressione booleana è già FALSE alla prima valutazione, quindi CODESYS non esegue mai le istruzioni. Se l'espressione booleana non applica mai il valore FALSE, quindi le istruzioni vengono ripetute all'infinito, di conseguenza si verifica un errore di runtime.

Esempio 73. Esempio
WHILE iCounter <> 0 DO
  Var1 := Var1*2
  iCounter := iCounter-1;
END_WHILE;


Importante

È necessario utilizzare la programmazione per assicurarsi che non vengano causati loop infiniti.

In un certo senso il WHILE e RIPETERE i loop sono più potenti del ciclo FOR, poiché non è necessario conoscere già il numero di esecuzioni del ciclo prima della sua esecuzione. In alcuni casi è quindi possibile lavorare solo con questi due tipi di loop. Tuttavia, se il numero di esecuzioni del ciclo è chiaro, a FOR loop è preferibile per evitare loop infiniti.

Come estensione della norma IEC 61131-3 è possibile utilizzare il CONTINUA istruzione all'interno del ciclo WHILE.