Page 2 sur 2

Re: Conversion REAL en 2 entiers

Posté : 29 mars 2019, 14:22
par ProfnovA
djé a écrit : 29 mars 2019, 14:16 Salut,

La solution de la conversion REAL_to_DINT doit fonctionner, mais peut être faut-il changer l'ordre des mots (poids faible poids fort) côté automate.
registre 100 :PF (high)
registre 101 :pf (low)
Je plussoie également. essaie de permuter les mots 100<->101.

Rien dans ta doc n'indique qu'il est possible d'afficher des valeurs réelles!

Re: Conversion REAL en 2 entiers

Posté : 29 mars 2019, 14:56
par Bruce33
La doc n'est pas terrible, mais on comprend déjà mieux.

Combien de chiffres sont disponibles sur l'afficheur ?
Nicat a écrit :Avec ces 2 fonctions l'afficheur indiquait 0000
[...]
%MW100=0 et %MW101=1 --> 1
Si l'afficheur indique 1 et non 0001 alors 0000 correspond peut-être à un code d'erreur (dépassement de la capacité d'affichage ?)
Je pense aussi qu'il y avait une erreur de programmation avec les fonctions REAL_TO_DINT et DINT_AS_WORD.
En utilisant DINT_AS_WORD (DINT_variable, LowWord, HighWord) on doit diriger LowWord sur %MW101 et HighWord sur %MW100.

Avec le logiciel SolardisplayConfigurator évoqué dans la doc on peut paramétrer la position de la virgule.

Re: Conversion REAL en 2 entiers

Posté : 29 mars 2019, 15:16
par Nicat
Merci pour vos réponses

L'afficheur possède 3 lignes avec respectivement 4,6 et 6 chiffres.
Pour le code erreur, en cas de dépassement de la capacité d'affichage, il affiche des "petits 0" (La partie basse d'un 8)

Je vais essayer de permuter les poids faible/poids forts voir si ça résout mon problème

Re: Conversion REAL en 2 entiers

Posté : 30 mars 2019, 08:56
par Bruce33
Nicat a écrit : 29 mars 2019, 15:16 L'afficheur possède 3 lignes avec respectivement 4,6 et 6 chiffres.
Nicat a écrit : 29 mars 2019, 14:03 %MW100=1 et %MW101=0 --> 65536
Comment peut-on afficher 65536 si la première ligne ne comporte que 4 chiffres ? :?

Avez-vous configuré l'afficheur avec le logiciel SolarDisplayConfigurator ?
En effet celui-ci demande de définir la puissance maximale, puis pour chacune des 3 lignes le type de mesure, l'unité et le nombre de décimales.
Par défaut le nombre de décimales (donc la position de la virgule) est calculé automatiquement...
Il n'y a pas d'exemple dans la doc, mais cela signifie peut-être qu'avec une puissance maximale définie à 100 kW et une mesure définie en W :
- si la valeur du registre est 10 W alors l'afficheur indique "0.01",
- pour 500 W on aurait "0.5",
- pour 10000 W on afficherait "10", etc.
Et si l'on dépasse la valeur maximale... la doc ne dit pas ce qu'il se passe.

Re: Conversion REAL en 2 entiers

Posté : 05 avr. 2019, 13:07
par Nicat
Comment peut-on afficher 65536 si la première ligne ne comporte que 4 chiffres ? :?
Effectivement je me suis planté, l'afficheur possède 6,6 et 4 chiffres.


Pour le dépassement de valeur j'avais eu le service technique qui m'a bien confirmé que ça affichait des "petits 0"

J'ai résolu mon problème en m'affranchissant des virgules :
1/ Multiplication de ma variable par 10, ou 100 pour avoir le bon nombre de chiffres (Ex : Je veux afficher 123.45 --> *100 pour avoir 13245)
2/ Fonction REAL_TO_DINT et ensuite DINT_AS_WORD
3/ Dans %MW100 j'ai mis le poids fort et dans %MW101 le poids faible


Et ensuite avec le logiciel j'ai pu placer les virgules où je le souhaitais


Merci pour votre aide en tout cas