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.
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.