7- lecture: une variable liée à IOCards, avec conditions IF et ELSE


 Les lignes qui suivent sont très intéressantes, nous avons modifié légèrement notre fichier essai_1.ssi:

Nous avons physiquement un commutateur rotatif à trois positions, qui équivaut à un interrupteur en fait, branché ici sur les entrées 1 et 3 de notre carte Master.

Ce petit bout de programme SIOC , qu'on appelle un script, commande la position des volets avec ce commutateur.

 C'est le rôle tout d'abord de la variable que nous avons appelée 0002 ou mieux "FLAPS_UP_SW" . Cette variable est liée à "SWITCHES" dans la liste déroulante des Links, et pourquoi pas ? , nous avons 1 comme numéro d'entrée Input. Vous pouvez cliquer sur la ligne Var 0002 pour revoir ces paramètres.

 

Les lignes en dessous se lisent de la manière suivante:

" Si (IF) la variable FLAPS_UP_SW a une valeur 1, (c'est à dire si l'interrupteur est "fermé"), alors la variable FLAPS (la 001, qui concerne l'offset FSUIPC $0BDC) doit prendre la valeur 0 " . Ceci correspond à la valeur de $0BDC quand les volets sont en position UP ou complètement rentrés.


Autrement dit, et pour être le plus clair possible, l'interrupteur sur la 01 étant le commutateur rotatif 3 positions en position volets rentrés (UP) , cet interrupteur est fermé, et les volets se mettent en position rentrés. S'ils y sont déjà, il ne se passe rien, la variable n'a pas changé de valeur, SIOC reste en sommeil.

 

La ligne en dessous définit alors ce qui se passe quand cet interrupteur est ouvert (levier des volets ailleurs que sur la position" rentrés", c'est à dire soit sur la position intermédiaire "Approche", soit sur la position basse "sortis") :

 

"Autrement (ELSE) la variable FLAPS doit prendre la valeur 8191 ", c'est à dire volets en position Approche.

 

Bien entendu quand le levier des volets est en position Full Flaps tout sorti, c'est l'interrupteur de la variable 0004 FLAPS_DN_SW, relié à l'entrée 3 qui entre en jeu, et on peut lire:

 

SI cette variable FLAPS_DN_SW a une valeur 1 c'est à dire que l'interrupteur est fermé, la variable FLAPS prendra la valeur 16383 (volets sortis) , autrement (ELSE) ,c'est à dire si l'interrupteur est ouvert, et donc en position Approach ou Flaps UP, la variable FLAPS devra prendre la valeur 8191"

 

L'usage de IF et de ELSE permet ici d'éviter de définir trois positions de volets, avec seulement deux variables.


CHAPITRE SUIVANT: 8- écriture: une commande de train avec IF et ELSE