IF_THEN
Utiliser IF_THEN pour faire quelque chose quand une condition spécifique se produit.
Opérandes
IF bool_expression THEN
<statement>;
Opérande | Type | Format | Saisir |
Bool_ expression | BOOL | Expression de balise | Étiquette ou expression BOOL qui est évaluée pour donner une valeur BOOL (Expression BOOL) |
Description
La syntaxe est décrite dans le tableau.

Pour utiliser ELSIF ou ELSE, observez ces recommandations.
Pour choisir à partir de plusieurs groupes d'instructions possibles, ajoutez une ou plusieurs instructions ELSIF.
Chaque ELSIF représente un chemin alternatif.
Spécifiez autant de chemins ELSIF que nécessaire.
L'automate exécute le premier IF ou ELSIF vrai et saute le reste des ELSIF et le ELSE.
Pour effectuer une action quand toutes les conditions IF ou ELSIF sont fausses, ajoutez une instruction ELSE.
Le tableau résume les différentes combinaisons de IF, THEN, ELSIF et ELSE.
Si | Et | Utilisez cette construction |
Faire quelque chose si ou quand les conditions sont vraies | Ne rien faire si les conditions sont fausses | IF_THEN |
Faire quelque chose d'autre si les conditions sont fausses | IF_THEN_ELSE | |
Choix d'instructions alternatives ou groupes d'instructions en fonction des conditions d'entrées | Ne rien faire si les conditions sont fausses | IF_THEN_ELSIF |
Affecter des instructions par défaut si toutes les conditions sont fausses | IF_THEN_ELSIF_ELSE |
Affecte les indicateurs d'état mathématique
Non
Défauts majeurs/mineurs
Aucun.
Exemples
Exemple 1
IF…THEN
Pour exécuter ceci | Saisissez ce texte structuré |
Si rejets > 3 alors | IF rejets > 3 THEN |
convoyeur = off (0) | convoyeur := 0; |
alarme = on (1) | alarm := 1; |
END_IF; |
Exemple 2
IF_THEN_ELSE
Pour exécuter ceci | Saisissez ce texte structuré |
Si direction du contact du convoyeur = avant (1) alors | IF convoyeur_direction THEN |
lumière = off | light := 0; |
Sinon lumière = on | ELSE |
light [:=] 1; | |
END_IF; |
Le [:=] dit à l'automate de mettre lumière à zéro chaque fois que l'automate fait ce qui suit :
Il entre dans le mode EXÉCUTION.
Il quitte l'étape d'un SFC, si vous configurez le SFC pour qu'il se réinitialise automatiquement. (Cela s'applique seulement si vous incluez l'affectation dans l'action de l'étape ou si vous utilisez l'action pour appeler un routine de texte structuré via une instruction JSR.)
Exemple 3
IF…THEN…ELSIF
Pour exécuter ceci | Saisissez ce texte structuré |
Si l'interrupteur de limite basse en sucre = bas (on) et interrupteur de limite haute en sucre = non haut (on) alors | IF Sugar.Low & Sugar.High THEN |
vanne d'entrée = ouverte (on) | Sugar.Inlet [:=] 1; |
Jusqu'à ce que l'interrupteur de limite haute en sucre = haut (off) | ELSIF NOT(Sugar.High) THEN |
Sugar.Inlet := 0; | |
END_IF; |
Le [:=] dit à l'automate de mettre Sugar.Inlet à zéro chaque fois que l'automate fait ce qui suit :
Il entre dans le mode EXÉCUTION.
Il quitte l'étape d'un SFC, si vous configurez le SFC pour qu'il se réinitialise automatiquement. (Cela s'applique seulement si vous incluez l'affectation dans l'action de l'étape ou si vous utilisez l'action pour appeler un routine de texte structuré via une instruction JSR.)
Exemple 4
IF…THEN…ELSIF…ELSE
Pour exécuter ceci | Saisissez ce texte structuré |
Si la température du réservoir > 100 | IF tank.temp > 200 THEN |
alors pompe = lente | pump.fast :=1; pump.slow :=0; pump.off :=0; |
Si la température du réservoir > 200 | ELSIF tank.temp > 100 THEN |
alors pompe = rapide | pump.fast :=0; pump.slow :=1; pump.off :=0; |
Sinon pompe = off | ELSE |
pump.fast :=0; pump.slow :=0; pump.off :=1; | |
END_IF; |
Fournir une réponse