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.