Page 1 sur 1
comment vérifier la connexion d'une entrée et utiliser sa valeur sans variable intermédiaire
Posté : 01 août 2024, 11:46
par rmoreno
Bonjour, j'essaie de créer un bloc pour faire la somme de 3 entrées réelles, les deux premières sont obligatoires mais la troisième est optionnelle, dans mon code je dois vérifier que la troisième entrée est connectée, si oui je l'ajoute, et si non je dois juste ajouter 0. Je dois faire cela sans utiliser de variables intermédiaires, voici la solution que j'ai mais la syntaxe n'est pas correcte, une idée de comment je peux corriger le code ?
resultat:= Entree1 + Entree2 +
(IF IS_PAR_CON(Entree3) THEN Entree3; ELSE 0 END_IF;);
Re: comment vérifier la connexion d'une entrée et utiliser sa valeur sans variable intermédiaire
Posté : 01 août 2024, 12:02
par MiGaNuTs
En supposant que ton IS_PAR_CON vaux soit 0, soit 1 tu peut faire
Mais bon, un bon vieux if propre c'est bien plus 'joli' pour celui que repasse derrière quelques années plus tard.
Code : Tout sélectionner
if toto then
resultat = entrée1 + entrée2 + entrée3
else
resultat = entrée1 + entrée2
end if
Vouloir tout coder sur une seule ligne ça sert juste a te la péter.
Re: comment vérifier la connexion d'une entrée et utiliser sa valeur sans variable intermédiaire
Posté : 01 août 2024, 13:36
par rmoreno
merci
Re: comment vérifier la connexion d'une entrée et utiliser sa valeur sans variable intermédiaire
Posté : 01 août 2024, 13:45
par Guigui744
Bonjour,
J'aurai fait comme ca:
IF IS_PAR_CON(Entree3) THEN
resultat:= Entree3;
ELSE
resultat:=0.0;
END_IF;
resultat:= Entree1 + Entree2 + resultat;
Je trouve plus lisible
Re: comment vérifier la connexion d'une entrée et utiliser sa valeur sans variable intermédiaire
Posté : 01 août 2024, 14:14
par Béryl
rmoreno a écrit : ↑01 août 2024, 11:46
resultat:= Entree1 + Entree2 +
(IF IS_PAR_CON(Entree3) THEN Entree3; ELSE 0 END_IF;);
C'est une forme de structure de contrôle que l'on retrouve dans certains langages comme le E ou les C et PHP sous une syntaxe différente.
Très pratique, mais malheureusement pas intégré dans le structuré normé de nos automates !
Les codes ci-dessus sont tout aussi corrects.
Re: comment vérifier la connexion d'une entrée et utiliser sa valeur sans variable intermédiaire
Posté : 02 août 2024, 08:54
par Laurent
Salut,
Code : Tout sélectionner
resultat = entrée1 + entrée2 + SEL( G := IS_PAR_CON, IN0 := 0, IN1 := entrée3 );
Re: comment vérifier la connexion d'une entrée et utiliser sa valeur sans variable intermédiaire
Posté : 02 août 2024, 10:43
par Béryl
Laurent a écrit : ↑02 août 2024, 08:54
Code : Tout sélectionner
resultat = entrée1 + entrée2 + SEL( G := IS_PAR_CON, IN0 := 0, IN1 := entrée3 );
Intéressant !
Je ne connaissais pas cette instruction SEL qui fait le job.
Certes, moins lisible qu'un IF, mais plus compact.
Re: comment vérifier la connexion d'une entrée et utiliser sa valeur sans variable intermédiaire
Posté : 02 août 2024, 13:26
par itasoft
Béryl a écrit : ↑02 août 2024, 10:43
Laurent a écrit : ↑02 août 2024, 08:54
Code : Tout sélectionner
resultat = entrée1 + entrée2 + SEL( G := IS_PAR_CON, IN0 := 0, IN1 := entrée3 );
Intéressant !
Je ne connaissais pas cette instruction SEL qui fait le job.
Certes, moins lisible qu'un IF, mais plus compact.
-----------------
je ne connaissais pas non plus, comment j'ai pu faire pour m'en passer ? je me le demande, lol
Re: comment vérifier la connexion d'une entrée et utiliser sa valeur sans variable intermédiaire
Posté : 02 août 2024, 21:26
par DurandO
Bonjour,
itasoft a écrit : ↑02 août 2024, 13:26
je ne connaissais pas non plus, comment j'ai pu faire pour m'en passer ?
On ai pas au bon de nos surprises face à cette ingénierie de l’innovation!
Faire autrement pour faire la même chose : ça change tout.
Re: comment vérifier la connexion d'une entrée et utiliser sa valeur sans variable intermédiaire
Posté : 12 sept. 2024, 11:23
par andala
DurandO a écrit : ↑02 août 2024, 21:26
Bonjour,
itasoft a écrit : ↑02 août 2024, 13:26
je ne connaissais pas non plus, comment j'ai pu faire pour m'en passer ?
On ai pas au bon de nos surprises face à cette ingénierie de l’innovation!
Faire autrement pour faire la même chose : ça change tout.
Oui apres... c'est le but d'u langage de programmation : au lieu d'ecrire en langage machine, on ecrit en ladder/ST/IL etc....