Dichiarazione ST: FOR
Il FOR loop viene utilizzato per eseguire istruzioni con un certo numero di ripetizioni.
Sintassi:
FOR <counter> := <start value> TO <end value> {BY <increment> } DO
<instructions>
END_FOR;La sezione all'interno delle parentesi graffe {} è facoltativa.
CODESYS esegue il <instructions> fintanto che il <counter> non è maggiore di - o in caso di negativo increment passo meno di – il <end value>. Questo viene verificato prima dell'esecuzione del <instructions>.
Ogni volta il <instructions> istruzione sono state eseguite, il contatore <counter> viene automaticamente aumentato dell'incremento <increment>. L'incremento <increment> può avere qualsiasi valore integrale. Se non si specifica un incremento, l'incremento standard è 1.
FOR iCounter := 1 TO 5 BY 1 DO iVar1 := iVar1*2; END_FOR; Erg := iVar1;
Se hai preconfigurato iVar1 con 1, iVar1 ha il valore 32 dopo il ciclo FOR.
Attenzione
Il valore finale <valore finale> non deve assumere lo stesso valore del limite superiore del tipo di dati del contatore.
Se il valore finale del contatore è uguale al limite superiore del tipo di dati del contatore, si ottiene un ciclo infinito. Ad esempio, un ciclo infinito risulta nell'esempio precedente if iCounter è del tipo di dati SINT e il <end value> equivale 127, poiché il tipo di dati SINT ha il limite superiore 127.
Come estensione della norma IEC 61131-3 è possibile utilizzare il CONTINUA dichiarazione all'interno del FOR ciclo continuo.