CASE_OF

Utilisez CASE_OF pour sélectionner quoi faire en fonction d'une valeur numérique.
Opérandes
CASE numeric_expression OF
selector1: statement;
selectorN: statement; ELSE
Texte structuré
Opérande
Type
Format
Saisir
Numeric_
expression
SINT INT DINT REAL
Expression de balise
Étiquette ou expression qui est évaluée pour produire un nombre
(expression numérique)
Selector
SINT INT DINT REAL
Immédiat
Même type que numeric_expression
IMPORTANT: Si vous utilisez des valeurs REAL, utilisez une plage de valeurs pour un sélecteur car une valeur REAL aura plus de chance d'être à l'intérieur d'une plage de valeurs que de correspondre exactement à une valeur spécifique.
Description
La syntaxe est décrite dans le tableau.
CASE_OF
Voilà la syntaxe pour saisir des valeurs de sélecteurs.
Quand le sélecteur est
Saisir
Une valeur
value: statement
Des valeurs multiples et distinctes
value1, value2, valueN : <statement>
Utilisez une virgule (,) pour séparer chaque valeur.
Une plage de valeurs
value1..valueN : <statement>
Utilisez deux points (..) pour identifier la plage.
Des valeurs distinctes plus une plage de valeurs
valuea, valueb, value1..valueN : <statement>
La construction CASE est similaire à une instruction switch dans les langages de programmation C ou C++. Avec la construction CASE, l'automate exécute seulement les instructions qui associées avec la première valeur de sélecteur correspondante. L'exécution s'arrête toujours après les instructions de ce sélecteur puis passe à l'instruction END_CASE.
Affecte les indicateurs d'état mathématique
Non
Défauts majeurs/mineurs
Aucun
Exemple
Si vous voulez
Saisissez ce texte structuré
If numéro de recette = 1 alors ingrédient A sortie 1 = ouverte (1) Ingrédient B sortie 4 = ouverte (1)
CASE recipe_number OF
1 :
Ingredient_A.Outlet_1 :=1; Ingredient_B.Outlet_4 :=1;
Si numéro de recette = 2 ou 3 alors
Ingrédient A sortie 4 = ouverte (1)
Ingrédient B sortie 2 = ouverte (1)
2,3 :
Ingredient_A.Outlet_4 :=1; Ingredient_B.Outlet_2 :=1;
If numéro de recette = 4, 5, 6 ou 7 alors Ingrédient A sortie 4 = ouverte (1) Ingrédient B sortie 2 = ouverte (1)
4..7: Ingredient_A.Outlet_4 :=1; Ingredient_B.Outlet_2 :=1;
If numéro de recette = 8, 11, 12 ou 13 alors Ingrédient A sortie 1 = ouverte (1) Ingrédient B sortie 4 = ouverte (1)
8,11..13
Ingredient_A.Outlet_1 :=1; Ingredient_B.Outlet_4 :=1;
Sinon toutes les sorties = fermées (0)
ELSE
Ingredient_A.Outlet_1 [:=]0; Ingredient_A.Outlet_4 [:=]0; Ingredient_B.Outlet_2 [:=]0; Ingredient_B.Outlet_4 [:=]0;
END_CASE;
Le [:=] dit à l'automate de mettre les étiquettes de sortie à 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 le SFC est configuré pour se réinitialiser automatiquement. Cela applique seulement à l'intégration de l'affectation dans l'action de l'étape ou à l'utilisation de l'action pour appeler une routine de texte structuré via une instruction JSR.
Fournir une réponse
Vous avez des questions ou des commentaires sur cette documentation ? Veuillez envoyer vos commentaires ici.
Normal