Aller au contenu principal

Groupes de commandes

Les groupes de commandes suivants sont les constructions de base du texte structuré et peuvent être combinés et imbriqués de manière flexible.

Raccourcis booléens

Les opérations booléennes servent à relier des variables de manière binaire.

| symbole | lien logique | exemple | | --- | --- | --- | |NOT | négation binaire | a := NOT b ;| | AND| ET logique | a := b AND c ;| | OR | OU logique | a := b OR c ;| | XOR| OU exclusif | a := b XOR c ;|

La table de vérité des opérations booléennes se présente comme suit :

EntréeANDOR XOR
0 0000
0 1011
1 0011
1 1110

Opérations arithmétiques

Le texte structuré contient des opérations arithmétiques de base pour l'application. Les priorités doivent être respectées lors de l'exécution.

SymboleOpération de calculExemple
:= Attributiona := b ;
+Additiona := b + c ;
-Soustractiona := b - c ;
*Multiplicationa := b * c ;
/Divisiona := b / c ;
MODModulo, reste entier de la division a := b MOD c ;

Le type de données des variables et des valeurs est toujours décisif pour leur calcul.

| expression / syntaxe | Var1 | Var2 | Var3 | résultat | | --- | --- | --- | -- | | Var 1 := 10 / 4 ; | INT | INT | INT | 2 | | Var1 := 10 / 4 ; | REAL | INT | INT | 2.0 | | Var1 := 10.0 / 4 ; | REAL | REAL | INT | 2.5 |

Opérateurs de comparaison

Symbole Expression de comparaisonExemple 
=A venir :IF a = b THEN
<>InégalIF a <> b THEN 
>Plus grand queIF a > b THEN 
>=Supérieur ou égal àIF a >= b THEN
<Plus petit queIF a < b THEN
<=Inférieur ou égal àIF a <= b THEN

Décisions

IF a > b THEN // 1. Comparaison
c := 1 ; // Instruction si 1. Comparaison VRAI
ELSIF a > d THEN // 2. Comparaison
e := 1 ; // Instruction si 2. Comparaison VRAI
ELSE // Branche alternative, pas de comparaison VRAI
f := 1 ; // Instruction de la branche alternative
END_IF // Fin de la décision

Instruction IF - ELSE

IF - Instruction ELSIF

Instruction CASE

L'instruction CASE est utilisée pour regrouper plusieurs instructions conditionnelles avec la même variable conditionnelle.

CASE newCase OF // Début du Case         
1,5 : // pour 1 et 5
StateDescription := "Stopped" ;
2 : // pour 2
Statedescription := "Running" ;
3, 4, 6 ... 8 : // pour 3, 4, 6, 7, 8
Statedescription := "Failed" ;
ELSE // Branche alternative
(* .. *)
END_CASE // Fin de Case

Dans un cycle de programme, une seule étape de l'instruction CASE est exécutée à la fois. La variable d'étape doit être un type de données entier.

Ponçage

Les boucles sont traitées de manière répétée au cours d'un cycle. Le code est exécuté jusqu'à ce qu'une condition d'interruption définie soit remplie.

Pour éviter les boucles sans fin, il faut toujours prévoir un moyen de terminer la boucle après un certain nombre de répétitions.

Les boucles contrôlées par l'en-tête (FOR, WHILE) vérifient la condition d'interruption avant le passage, les boucles contrôlées par le pied (REPEAT) à la fin.

Instruction FOR

L'instruction FOR est utilisée pour exécuter un certain nombre de répétitions d'une partie de programme.

Sum := 0 ;
FOR Index := 0 TO 3 DO
Sum := Sum + Values[ Index ] ;
END_FOR ;

WHILE Instruction

L'instruction WHILE ne dispose pas d'un compteur de boucle. Celle-ci est appelée jusqu'à ce qu'une condition ou une expression soit FALSE.

WHILE Index < 10 DO
Sum := Sum + Values[ Index ] ;
Index := Index + 1 ;
END_WHILE ;

Instruction REPEAT

Dans la boucle REPEAT, la condition d'interruption n'est vérifiée qu'après l'exécution.

Index := 0 ;
Sum := 0 ;
REPEAT
Sum := Sum + Values[ Index ] ;
Index := Index + 1 ;
UNTIL Index >= 10 END_REPEAT ;

Instruction EXIT

Peut être utilisé pour tous les types de boucles et entraîne une interruption immédiate.

REPEAT
IF Exit = TRUE THEN
EXIT ;
END_IF
UNTIL Index >5
END_REPEAT