IPA03 – Tutoriel programmation: du ladder au littéral

 A la rencontre des structures conditionnelles.

A partir d’ici nous allons prendre un nouveau réflexe: nous donnerons des noms plus représentatif à nos variables. Je ne l’ai pas fait précédemment pour que vous puissiez bien dissocier les noms de variable et le commentaire, mais maintenant je pense qu’il ne devrait plus y avoir de confusion.

Astuce: Lorsque vous nommez vos variables, collez toutes les lettres (les espaces étant interdits) mais commencez chaque mot par une majuscule. Vous verrez que votre programme gagnera en clarté.

Nous allons apprendre 5 nouveaux mots-clés: IF, ELSIF, ELSE, THEN, END_IF. Ces instructions sont dites conditionnelles, c’est à dire que le programme ne va scruter ce quelles contiennent que si ses conditions sont passantes. Sinon il saute directement à la fin de celle ci pour continuer le reste du programme.

Remarque importante: En littéral, SETTER une variable peut se faire de cette façons:
DO1:=TRUE;
Resetter une variable peut se faire de cette façon:
DO1:=FALSE;
Prenez bien note, car c’est cette méthode qui sera principalement utilisée.
 Commençons avec les IF et END_IF.

Le IF (si en anglais) à cette structure:

IF conditions THEN

action 1;

action 2;

END_IF;

Si les conditions sont passantes, les actions 1 et 2 seront exécutées. Si ce n’est pas le cas, le programme sautera directement au END_IF sans faire les actions 1 et 2, et exécutera la suite.

Exemple de IF sous codesys

Exemple de IF

 

Petit exercice pratique, reproduisez et devinez l’état des sorties dans le programme qui suit.

Alors reproduisez le sous codesys, et avant de l’exécuter, devinez quels seront les états de premiereAction, deuxiemeAction, troixiemeAction et troixiemeActionBis.

 

 

 

 

 

Vous avez pu constaté que premiereAction=TRUE,  deuxiemeAction=FALSE,  troixiemeAction=TRUE et troixiemeActionBis=TRUE. En effet la deuxième condition étant fausse, le programme n’a pas passé à TRUE la deuxième action, donc elle est restée à son état « d’initialisée » au début du programme: FALSE.

Attention: sachez qu’il ne peut y avoir qu’un seul IF pour un END_IF. Cela vous sera utile pour la suite.

Les ELSIF et ELSE.

Le ELSIF est toujours précédé d’un IF ou d’un ELSIF, et n’est exécuté que si les conditions précédentes ne sont pas passantes.

Reproduisez ce programme et déterminez, avant de la lancer, la valeur finale des 4 actions.

Exemple de IF et ELSIF

 

Alors ça donne quoi?

En exécutant le programme vous aurez pu constater que seule l’action3 est à TRUE.

Les deux premiers cas ne doivent pas poser de problème, remarquez simplement qu’il n’y à qu’un seul END_IF à la fin.

Par contre la quatrième condition est passante, mais l’action4 est à FALSE. Cela est du qu’avec les ELSIF, dés que le programme rencontre une condition passante, il exécute l’action et saute directement au END_IF sans exécuter le reste. Si nous aurions voulu avoir l’action 4 à TRUE il aurait fallut mettre un IF.

Retenez qu’un ELSIF doit toujours etre englobé entre un IF (ou un autre ELSIF) et le END_IF.

Le ELSE l’action qui est exécutée lorsque aucune condition des IF et ELSIF précédent n’était passante. Reproduisez et devinez la valeur de resultat.

Exemple de IF, ELSIF et ELSE

 

Aucune des conditions n’est passante, donc résultat prend la valeur 32767.

Si la condition 2 aurait été passante, alors resultat aurait été égal à -42 (le programme aurait alors sauté la suite).

 

Suite à ce chapitre, vous devriez être capable de jouer un peu plus sur codesys histoire de vous faire la main avec le littéral. Ces premiers pas dans les structures conditionnelles, combinée aux variables analogiques, vous permettront de faire des programme qui commencent à être réellement élaborés.

Dans la suite vous verrez qu’il est possible d’imbriquer des IF ainsi que d’autres instruction permettant d’effectuer toutes sorties de boucles. Suite à cela, nous serrons à deux pas de notre premier programme sous Arduino.

Lien vers le chapitre suivant:

Tutoriel programmation: les boucles while et for.

Je vous dis donc à bientôt dans le chapitre:  Tutoriel programmation: les boucles.

Lien vers le forum.