Documentation MCS32
E) Tests
a)
Les instructions conditionnelles sont un moyen pratique d'exécuter ou non un groupe
d'instructions selon qu'une condition est vraie ou fausse. Les deux syntaxes possibles de
l'instruction IF sont :
IF <Expression> THEN <Instruction1> [ELSE <Instruction2>]
ou
IF <Expression> THEN
<Instruction1>
...
[ELSE
<Instruction2>
...]
END IF
<Expression> doit être une valeur de type bit. Si <Expression> est vraie alors <Instruction1> et
les instructions suivantes sont exécutées. Si <Expression> est fausse <Instruction2> et les
instructions suivantes sont exécutées. Dans la seconde forme de syntaxe, une instruction
seulement est exécutée pour chaque condition, toutes les instructions sont sur la même ligne et
l'on n'emploie pas de END IF. Il est possible d'imbriquer des instructions IF, mais une
terminaison ELSE se réfère toujours à l'instruction IF la plus proche. Par exemple :
VEL%(X)=100
STTA(X=2000)
MOVE_ON:
IF POS_S(X) >1000 THEN VEL%(X)=50 ' Vitesse lente à la moitié
IF POS_S(X)>1500 THEN OUT(S1)=1 ELSE OUT(S2)=1
IF POS_S(X)>1700 THEN
FlagInfo1=1
IF OUT(S2)=1 THEN OUT(S2)=NOT OUT(S2) ' Sortie clignotante
ELSE
FlagInfo2=1
OUT(S2)=0
END IF
IF MOVE_S(X)=On THEN GOTO MOVE_ON
b)
Les tests multiples sont obtenus avec l'instruction CASE.
La syntaxe de l'instruction CASE est décrite comme telle :
CASE <Expression> [ GOTO | CALL ] <Identif. Sous-prog. 1> [ { , <Identif.
Sous-prog. 2> } ]
<Expression> doit être de type octet ou entier. Avec cette instruction, des sous-programmes
seront appelés selon la valeur d'<Expression>. Pour <Expression>=1 le premier sous-
programme est appelé, pour <Expression>=2 le second programme 2 est appelé... Par exemple :
INPUT #1,Choix%
CASE Choix% GOTO Choix1, Choix2, Choix3
GOTO Fin
Choix1:
....
GOTO Fin
Choix2:
....
GOTO Fin
Choix3
:
....
GOTO Fin
....
Fin:
R342
EX
Tests simples
Tests multiples
' Lecture sur le lien série
' Choix%=0 ou Choix%>3
' Traitement choix1
' Traitement choix2
' Traitement choix3
' Vitesse rapide
' Start absolu à la position 2000
' de la distance
' Reset de la sorties
- 84 -
SERAD S.A.