While_Do - Rockwell Automation Allen-Bradley Logix 5000 Série Manuel De Référence

Masquer les pouces Voir aussi pour Allen-Bradley Logix 5000 Série:
Table des Matières

Publicité

Programmation de texte structuré
Si vous exécutez les actions suivantes,
La boucle REPEAT_UNTIL exécute d'abord les
instructions de la construction, et ce n'est qu'ensuite
qu'elle détermine si les conditions sont vraies avant
d'exécuter à nouveau les instructions. Cela diffère de la
boucle WHILE_DO parce que la boucle WHILE_DO The
WHILE_DO évalue d'abord ses conditions.
Si les conditions sont vraies, l'automate exécute alors
les instructions à l'intérieur de la boucle. Les instructions
dans la boucle REPEAT_UNTIL sont toujours exécutées
au moins une fois. Les instructions dans une boucle
WHILE_DO peuvent ne jamais être exécutées.
Si vous exécutez les actions suivantes,
Déplacer les caractères ASCII d'un tableau SINT dans
une étiquette de la chaîne. (Dans un tableau SINT,
chaque élément contient un seul caractère.) Arrêter
quand vous atteignez le retour chariot.
Initialiser Element_number à 0.
Compter le nombre d'éléments dans SINT_array
(tableau contenant les caractères ASCII) et stocker le
résultat dans SINT_array_size (étiquette DINT).
Définir String_tag[element_number] = le caractère
stocké dans SINT_array[element_number].
Ajouter 1 à element_number. Cela permet à l'automate
de vérifier le prochain caractère dans
SINT_array.
Définir le membre Longueur de String_tag =
element_number. (Cela enregistre le nombre de
caractères stockés dans String_tag jusqu'à présent.)
If element_number = SINT_array_size, alors arrêter.
(Vous êtes à la fin du tableau et il ne contient pas de
retour chariot.)
Si le caractère SINT_array[element_number] = 13
(valeur décimale du retour chariot), alors arrête.

WHILE_DO

Exemple 1
Exemple 2
Utilisez la boucle WHILE_DO pour continuer à effectuer une action tant que
certaines conditions sont vraies.
Opérandes
WHILE bool_expression DO
<statement>;
Publication Rockwell Automation 1756-RM003T-FR-P - Novembre 2018
Saisissez ce texte structuré
pos := -1;
REPEAT
pos := pos + 2;
UNTIL ((pos = 101) OR (structarray[pos].value = targetvalue))
end_repeat;
Saisissez ce texte structuré
element_number := 0;
SIZE(SINT_array, 0, SINT_array_size);
Repeat
String_tag.DATA[element_number] :=
SINT_array[element_number];
element_number := element_number + 1;
String_tag.LEN := element_number;
If element_number = SINT_array_size then
exit;
end_if;
Until SINT_array[element_number] = 13
end_repeat;
Chapitre 24
943

Publicité

Table des Matières
loading

Table des Matières