comment vérifier la connexion d'une entrée et utiliser sa valeur sans variable intermédiaire

Forum traitant des automates industriels de marque Schneider - Telemecanique
Répondre
rmoreno
Code sa première boucle
Code sa première boucle
Messages : 11
Enregistré le : 23 mai 2022, 09:10

comment vérifier la connexion d'une entrée et utiliser sa valeur sans variable intermédiaire

Message 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;);
MiGaNuTs
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1573
Enregistré le : 12 nov. 2015, 21:02
Localisation : 45 - Loiret
Contact :

Re: comment vérifier la connexion d'une entrée et utiliser sa valeur sans variable intermédiaire

Message par MiGaNuTs »

En supposant que ton IS_PAR_CON vaux soit 0, soit 1 tu peut faire

Code : Tout sélectionner

resultat = entrée1 + entrée2 + (IS_PAR_CON * entrée3);
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.
rmoreno
Code sa première boucle
Code sa première boucle
Messages : 11
Enregistré le : 23 mai 2022, 09:10

Re: comment vérifier la connexion d'une entrée et utiliser sa valeur sans variable intermédiaire

Message par rmoreno »

merci
Guigui744
Asservi son premier moteur
Asservi son premier moteur
Messages : 22
Enregistré le : 08 avr. 2024, 17:03
Localisation : Annecy

Re: comment vérifier la connexion d'une entrée et utiliser sa valeur sans variable intermédiaire

Message 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
Avatar du membre
Béryl
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1953
Enregistré le : 20 oct. 2015, 12:00
Localisation : localhost

Re: comment vérifier la connexion d'une entrée et utiliser sa valeur sans variable intermédiaire

Message 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.
Laurent
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 124
Enregistré le : 20 oct. 2015, 11:16
Localisation : Oise et Ile-de-France / France

Re: comment vérifier la connexion d'une entrée et utiliser sa valeur sans variable intermédiaire

Message par Laurent »

Salut,

Code : Tout sélectionner

resultat = entrée1 + entrée2 + SEL( G := IS_PAR_CON, IN0 := 0, IN1 := entrée3 );
Laurent
Avatar du membre
Béryl
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1953
Enregistré le : 20 oct. 2015, 12:00
Localisation : localhost

Re: comment vérifier la connexion d'une entrée et utiliser sa valeur sans variable intermédiaire

Message 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.
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7805
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: comment vérifier la connexion d'une entrée et utiliser sa valeur sans variable intermédiaire

Message 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
Automaticien privé (de tout)
itasoft@free.fr
DurandO
Maître du binaire
Maître du binaire
Messages : 482
Enregistré le : 21 mars 2021, 15:31

Re: comment vérifier la connexion d'une entrée et utiliser sa valeur sans variable intermédiaire

Message 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.
Avatar du membre
andala
Créateur de langage
Créateur de langage
Messages : 505
Enregistré le : 19 déc. 2016, 10:24
Localisation : Atlantide

Re: comment vérifier la connexion d'une entrée et utiliser sa valeur sans variable intermédiaire

Message 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....
Une bonne action en entraine toujours une autre
Répondre