FOR_DO
Utilisez la boucle FOR_DO pour effectuer une action un certain nombre de fois avant de faire quoi que ce soit d’autre.
Lorsqu’elle est activée, l'instruction FOR exécute la routine de façon répétée jusqu'à ce que la valeur Index dépasse la valeur Terminal. La valeur Step peut être positive ou négative. Si la valeur est négative, la boucle se termine lorsque Index est inférieur à Terminal value. Si la valeur est positive, la boucle se termine lorsque Index est supérieur à Terminal value.
Chaque fois que l'instruction FOR exécute la routine, elle ajoute la taille de l'incrément à Index.
Ne faites pas trop de boucles lors d’une seule scrutation. Un nombre excessif de répétitions provoque un délai d’expiration du chien de garde d’un automate et entraîne un défaut majeur.
Opérandes
FOR count:= initial_value TO
final_value BY increment DO
<statement>;
END_FOR;
Opérande | Type | Format | Description |
count | SINT INT DINT | Balise | Étiquette pour stocker la position du comptage durant l’exécution de FOR_DO |
initial_ value | SINT INT DINT | Expression de balise immédiate | Son évaluation doit produire un nombre Spécifie la valeur initiale du comptage |
final_ value | SINT INT DINT | Expression de balise immédiate | Spécifier la valeur finale du comptage, qui détermine à quel moment sortir de la boucle |
increment | SINT INT DINT | Expression de balise immédiate | (Facultatif) quantité utilisée pour incrémenter le comptage après chaque fin de boucle Si vous ne spécifiez pas un incrément, le compteur est incrémenté de 1. |
IMPORTANT:
- N’exécutez pas la boucle un trop grand nombre de fois lors d’une seule scrutation.
- L’automate n’exécute aucune autre instruction de la routine tant qu’il n’a pas terminé la boucle.
- Un défaut majeur survient lorsque l’achèvement de la boucle prend plus de temps que le temporisateur du chien de garde pour la tâche.
- Envisagez d’utiliser une construction différente, telle que IF_THEN.
Description
La syntaxe est décrite dans le tableau.

Le diagramme explique comment s’exécute une boucle FOR_DO et comment une instruction EXIT peut permettre de sortir plus tôt de la boucle.
![]() | ![]() |
La boucle FOR_DO est exécutée un nombre spécifique de fois. | Pour arrêter la boucle avant que le comptage n’atteigne la dernière value, utilisez une instruction EXIT. |
Affecte les indicateurs d'état mathématique
Non
Défauts majeurs/mineurs
Un défaut majeur se produira si | Type de défaut | Code de défaut |
La construction fait des boucles pendant trop longtemps. | 6 | 1 |
Exemple 1
Si vous exécutez les actions suivantes, | Saisissez ce texte structuré |
Mis à zéro les bits 0...31 d’un tableau de BOOL : Initialiser l’étiquette de l’indice à 0. Mettre i à zéro. Par exemple, lorsque l’indice = 5, mettre array[5] à zéro. Ajouter 1 à l’indice. Si l’indice est ≤ 31, répéter 2 et 3. Sinon, arrêter. | For subscript:=0 to 31 by 1 do |
array[subscript] := 0; | |
End_for; |
Exemple 2
Si vous exécutez les actions suivantes, | Saisissez ce texte structuré |
Un type de données défini par l’utilisateur (structure) stocke les informations suivantes au sujet d’un article dans votre inventaire :
Un tableau de la structure ci-dessus contient un élément pour chaque article différent de votre inventaire. Vous voulez faire une recherche dans le tableau pour trouver un produit spécifique (en utilisant le code-barres) et déterminer la quantité en stock pour cet article.
Initialiser la balise de position à 0.
Définir la balise Quantity = Inventory[position].Qty. Cela produit la quantité en stock de l’article. Arrêt. Code-barres est une balise de chaîne qui stocke le code-barres de l’article que vous recherchez. Par exemple, lorsque position = 5, compare Barcode à Inventory[5].ID.
Sinon, arrêter. | SIZE(Inventory,0,Inventory_Items); |
For position:=0 to Inventory_Items - 1 do | |
If Barcode = Inventory[position].ID then | |
Quantity := Inventory[position].Qty; | |
Exit; | |
End_if; | |
End_for; |
Fournir une réponse

