Mini Défi #6 : Trop de répétition tue la lisibilité Résolu

Maitre du Jeu il y a 4 jours Apprentissage PLC > Exercices et projets d'entraînement

📦 Contexte :

Tu tombes sur un bout de code ST qui fonctionne… mais qui répète sans cesse la même condition, rendant le programme verbeux et difficile à maintenir.

 

🔍 Code original :

 

🎯 Objectif :

👉 Réécris ce code pour qu’il soit :

  • Plus lisible

  • Plus factorisé

  • Plus facile à maintenir

 

💬 Tu peux proposer ta version ST, une logique équivalente en Ladder ou même une approche en pseudocode.

📅 Correction jeudi avec validation d’une réponse.

Réponses

01/07/2025 10:00

Je tente ! :

IF CAPTEUR_A = TRUE ANS CAPTEUR_B = TRUE AND ALARM = FALSE THEN

Vanne_1 AND Vanne_2 AND Vanne _3 := TRUE ;

END_IF ;

01/07/2025 11:09

Tes sorties ne peuvent se mettre en serie ,

01/07/2025 11:27

IF (not alarme and capteurA and capteurB) then 
vanne1:=true ;
vanne2:=true ;
vanne3:=true ;

ELSE
vanne1:=false ;
vanne2:=false ;
vanne3:=false ;
end_if ; 

01/07/2025 11:33

01/07/2025 20:24

Oups merci pour l'info hunter !

J'aurais dû faire le ladder à la place 😂

02/07/2025 08:52

02/07/2025 21:14

On peut également faire plus prpre 

ActiVanne := not Alarme and capteur_A and capteur_B ;

    Vanne1:=  ActiVanne;
    Vanne2:=  ActiVanne;
    Vanne3:=  ActiVanne;
      

03/07/2025 06:25

📅 Correction du Mini-Défi #6

Ce code, on le voit partout en entreprise :
Fonctionnel, oui. Lisible et maintenable… pas toujours 😅

 

👉 L’exécution est correcte, mais le test est répété 3 fois, ce qui :

  • Complexifie la maintenance

  • Allonge inutilement le code

  • Génère des risques d’erreurs en cas de modification

 

✅ Version factorisée (Structured Text) :

🎯 On a isolé la condition dans une variable condition :

  • Plus facile à relire

  • Modifiable à un seul endroit

  • Réutilisable ailleurs

 

💡 Variante avancée :

Si tu as de nombreuses vannes à activer :

(à adapter selon la structure de l'automate)