Bonjour,
Je travaille sous CodeSys 2.3 avec un automate WAGO 762 3401.
Mon but est d'afficher le rapport entre deux consignes sur une visualisation, cependant celui ci ne fonctionne pas.
J'utilise le langage ST et j'ai testé différents types d'affichage (%s %f etc) mais le rapport affiche 1 quand les valeurs sont proches ou égales, sinon 0.
Les valeurs consignes sont de type INT et ma variable de rapport est de type REAL.
Auriez vous une solution pour que le rapport exact s'affiche?
voici les variables : Consigne_1_PV : INT;
Consigne_1_GV : INT;
Consigne_2_PV : INT;
Consigne_2_GV : INT;
Rapport : REAL;
le code : IF PV THEN
Rapport := (Consigne_1_PV/Consigne_2_PV);
ELSIF GV THEN
Rapport := (Consigne_1_GV/Consigne_2_GV);
END_IF;
(PV et GV sont 2 modes de fonctionnement différents, le rapport change en fonction)
Cordialement,
Blackjack67
affichage d'un rapport sous CodeSys
-
- Apprend le binaire
- Messages : 5
- Inscription : 31 mai 2017, 11:01
- Localisation : Lyon
Re: affichage d'un rapport sous CodeSys
Déja dans un 1er temps ne te soucie pas de la visu.
quand tu es en ligne tu as vérifier ce que tu as dans ta variable ?
Tu fais une opération avec des INTEGER dans une variable REAL, ca ne peut pas fonctionner. enfin le resultat ne peut pas être correct.
Il faut convertir tes variables en real avant.
PS : Tu es sur de ta reférence ? C'est pas plutot 762-3104 ? C'est un Afficheur avec PLC intégré ?
quand tu es en ligne tu as vérifier ce que tu as dans ta variable ?
Tu fais une opération avec des INTEGER dans une variable REAL, ca ne peut pas fonctionner. enfin le resultat ne peut pas être correct.
Il faut convertir tes variables en real avant.
Code : Tout sélectionner
Rapport := (INT_TO_REAL(Consigne_1_PV)/INT_TO_REAL(Consigne_2_PV));
PS : Tu es sur de ta reférence ? C'est pas plutot 762-3104 ? C'est un Afficheur avec PLC intégré ?
-
- Apprend le binaire
- Messages : 5
- Inscription : 31 mai 2017, 11:01
- Localisation : Lyon
Re: affichage d'un rapport sous CodeSys
Je me disais qu'il pouvait s'agir d'un problème de variables mais j'avais besoin du INT pour pouvoir entrer la valeur directement depuis la visu via un pad numérique. Pour la référence tu as raison c'est un 3104 mes doigts on déparés
Du coup avec INT_TO_REAL (que je ne connaissais pas) ça fonctionne parfaitement merci pour ton aide !
Au passage est ce que ça fonctionne pour tout type de variable du coup? pcq c'est bien pratique
cordialement,
blackjack67
Du coup avec INT_TO_REAL (que je ne connaissais pas) ça fonctionne parfaitement merci pour ton aide !
Au passage est ce que ça fonctionne pour tout type de variable du coup? pcq c'est bien pratique
cordialement,
blackjack67
Re: affichage d'un rapport sous CodeSys
Tu as plein de commande pour convertir presque tout dans presque tout.
BOOT_TO_INT
BYTE_TO_WORD
etc...
BOOT_TO_INT
BYTE_TO_WORD
etc...