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ée | AND | OR | XOR |
|---|---|---|---|
| 0 0 | 0 | 0 | 0 |
| 0 1 | 0 | 1 | 1 |
| 1 0 | 0 | 1 | 1 |
| 1 1 | 1 | 1 | 0 |
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.
| Symbole | Opération de calcul | Exemple |
|---|---|---|
:= | Attribution | a := b ; |
+ | Addition | a := b + c ; |
- | Soustraction | a := b - c ; |
* | Multiplication | a := b * c ; |
/ | Division | a := b / c ; |
MOD | Modulo, 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 comparaison | Exemple | |
|---|---|---|---|
= | A venir : | IF a = b THEN | |
<> | Inégal | IF a <> b THEN | |
> | Plus grand que | IF a > b THEN | |
>= | Supérieur ou égal à | IF a >= b THEN | |
< | Plus petit que | IF 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