Description de l'application | Rexroth IndraMotion MTX
Exemple :
3.11.4
Instruction CPL : CASE-LABEL...LABEL-OTHERWISE-ENDCASE
●
Les routines THEN et ELSE sont des branchements du programme qui
ne doivent pas être parcourues toujours.
●
Si on renonce à la partie ELSE, le programme poursuit son déroulement
immédiatement après l'instruction ENDIF, lorsque la condition n'est pas
remplie.
De manière similaire aux conditions d'interruption pour les instructions de bou‐
cles, les liaisons arithmétiques, trigonométriques et logiques peuvent être
utilisées dans la condition de l'ordre IF. Une imbrication est également possible.
L'ordre IF doit toujours être terminé avec une instruction ENDIF, car autrement
la fin de la routine ou de la routine alternative ne sera pas reconnue. Etant
donné que le positionnement de l'instruction ENDIF dépend de la logique du
déroulement du programme, la commande ne peut pas toujours reconnaître de
manière claire une instruction ENDIF manquante. Cela aura pour conséquence
des messages d'erreur erronés. L'intégrité de l'ordre IF doit donc toujours être
vérifiée par le programmeur.
...
10 X = 1
20 .START
30 IF X>=100 THEN
40 GOTO .ENDE
50 ELSE X=X+2.75
60 GOTO .START
70 ENDIF
...
90 ENDE
...
Il est interdit d'entrer dans ou de sortir d'une instruction IF-THEN-
ELSE-ENDIF à l'aide des ordres de saut CN standard "GoAhead",
"GoBack", "GoCond", "GoTo".
Il s'avère souvent nécessaire au sein d'un programme d'interroger plus de 2
états d'une expression entière ou d'une variable entière. Dans de tels cas, une
interrogation à l'aide de l'instruction IF n'est possible qu'à l'aide de plusieurs
instructions IF imbriquées. Ceci requiert un temps de calcul élevé et diminue
la lisibilité et la facilité d'entretien du programme.
Ces inconvénients peuvent être évités grâce à la structure CASE :
CASE <Expression INTEGER> OF
LABEL <Constante INT>[ , <Constante INTEGER>][ : <Instruction>]
<Instruction>
:
LABEL ...
:
[OTHERWISE <Instruction>
<Instruction>
:]
ENDCASE
Electric Drives
| Bosch Rexroth AG
and Controls
Fondements de la programmation CN
47/550