Mini Défi #6 : Trop de répétition tue la lisibilité Résolu
📦 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
Koala097
Yoyo
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 ;
HunterAutomation
Tes sorties ne peuvent se mettre en serie ,
HunterAutomation
IF (not alarme and capteurA and capteurB) then
vanne1:=true ;
vanne2:=true ;
vanne3:=true ;
ELSE
vanne1:=false ;
vanne2:=false ;
vanne3:=false ;
end_if ;
HunterAutomation
Koala097
Yoyo
Oups merci pour l'info hunter !
J'aurais dû faire le ladder à la place 😂
Julien
None
HunterAutomation
On peut également faire plus prpre
ActiVanne := not Alarme and capteur_A and capteur_B ;
Vanne1:= ActiVanne;
Vanne2:= ActiVanne;
Vanne3:= ActiVanne;

Maitre du Jeu
"One who knows nothing can understand nothing" - Master Xehanort
📅 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)