OVH Cloud OVH Cloud

réels

15 réponses
Avatar
Barbarossat
Je recherche à convertir en nombre réel à partir de données sur 32 bits par
une formule de calcul ou autre solution simple (en basic)
merci

5 réponses

1 2
Avatar
Barbarossat
Je ne suis ni l'un ni l'autre, j'ai 45 ans et pas de formation informatique.
Sur un automate de GTC qui fonctionne correctement j'ai sur une adaptation
de différentes marques de matériel qui communiquent ensemble mais pour le
relevé de température la lecture se fait sur deux adresses en 16 bits
chacune et je ne peux faire la conversion pour avoir la température réel
que sur une ligne sans language de programmation pas plus que de fonction
particulière.
Les éventuels essai je ne peux les faire que sur le site ou est installé
cette automate.

Merci quand même

"AMcD®" a écrit dans le message de news:
41718825$0$32575$
Barbarossat wrote:
OK, explication clair et rapide.
Mais cela ne résout pas mon problème :
- comment donc trouver le réel sans fonction spéciale en une équation
?



Dis, t'es stupide où tu le fais exprès ? Refais le procédé que je
t'explique en sens inverse ! Tu veux pas que je t'écrive le code aussi par
hasard tant qu'on y est ? Pas possible, t'es encore une feignasse
d'étudiant qui veut se faire faire son TD/TP de Fac/IUT ou quoi ?

Non mais, sans rire...

--
AMcD®

http://arnold.mcdonald.free.fr/




Avatar
Pierre Maurette
"Barbarossat" a écrit:

Je ne suis ni l'un ni l'autre, j'ai 45 ans et pas de formation informatique.
Sur un automate de GTC qui fonctionne correctement j'ai sur une adaptation
de différentes marques de matériel qui communiquent ensemble mais pour le
relevé de température la lecture se fait sur deux adresses en 16 bits
chacune et je ne peux faire la conversion pour avoir la température réel
que sur une ligne sans language de programmation pas plus que de fonction
particulière.
Les éventuels essai je ne peux les faire que sur le site ou est installé
cette automate.


Tout d'abord, fr.comp.os.ms-windows.programmation n'est pas du tout
adapté à votre problème. Constatez que vous parlez (si on insiste ;-))
automates, on vous répond C ou Intel . Il existe fr.sci.automatique
sur usenet, et un nouveau site-forum: http://www.automatisme.info/.
D'autant que votre problème est certainement un classique, si c'est
celui de l'affichage sur tableau de commande d'une valeur réelle en
provenance d'un capteur voire d'un régulateur.

Ceci dit, il vous faut préciser votre problème. Coté automate d'abord.
Quel est son type et de quel(s) logiciel(s) disposez-vous? Je m'étais
à une époque amusé avec de l'April, et me souviens qu'il était
possible dans le logiciel Orphée de développer des modules (BFU).
Cette possibilité était souvent négligée, car faisant appel au langage
Pascal (ou proche).

Il faut également définir exactement la conversion que vous souhaitez
et le champ d'utilisation. Ce que vous avez en entrée, c'est un couple
de mémoires (sans signification immédiate pour l'automate).
Désirez-vous en sortie une chaîne de caractères 123,45 ? Un couple de
valeurs entières 123 et 45 ? Souhaitez-vous simplement (sait-on
jamais) détecter un certain nombre de seuils ?

La première question à clarifier est celle de la gamme de mesure et de
la précision. Pourquoi est-ce important ? Si 5 chiffres décimaux vous
suffisent, vous pouvez négliger les 7 bits les plus faibles de la
mantisse (significand). Donc, l'extraire vers un mot de 23 - 7 = 16
bits, qui simplifie énormément le traitement. En thermique, ces 5
chiffres significatifs sont à mon avis largement suffisants,
puisqu'ils correspondent à une gamme de -999,99 °C à +999,99 °C, deux
chiffres exact après la virgule. Ce peut être également -99,999 °C à
+99,999 °C, trois chiffres exact après la virgule.

Tenez-nous au courant.
--
Pierre
Avatar
Barbarossat
Merci de votre intervention.
Pour votre remarque sur le forum non adapté, avant de venir poser cette
question ici j'y suis je suis allé sur d'autres forums traitant des
automatismes et je n'ai pas eu de réponses probantes. Pratiquement personne
ne connait les automates de marque Wit.
Pour augnenter les difficultés les valeurs a traiter viennent d'un
régulateur de marque Siemens (RWI 65.02) sur leur bus, une interface de
conversion (Nides) permet de faire communiquer les différents appareils
entre eux via un bus au protocole Jbus.

J'ai pu résoudre toutes les lectures digitales codées en binaire (8 bits),
mais pour les valeurs de températures codées en 32 bits sur 2 adresses la
j'ai un "Hic", ma formation ne me permettant pas de connaitre la solution.
J'ai contacté les fabriquants qui ne font que se renvoyer la balle.

Pour résoudre mon équation je n'ai a ma dispostion que d'entrées sur
laquelle je peux faire des calculs mais pas de language, il y a bien les
fonctions logiques (and, or, etc..) et la valeur résultante peut-être
arrondie au centième comme vous le subgerer être entre -40,99 +119,99

ar exemple :
poids faible adr 50 = 851EH
poids fort adr 51 = 41BDH
===> 23.69 D = équation (41BD 851E H)
sur une ligne

Aije été plus clair.
Merci de votre patiente car je crois que c'est plus un problème de calcul
informatique que d'automate.
Avatar
Barbarossat
Je viens de faire un rapide petit essai de supprimer la partie de poids
faible et cela donne une erreur de calcul de quelques dizième qui dans mon
cas est insignifiant vue que c'est simplement une indication de valeur.
donc pour reprendre mon problème :
poids fort adr 51 = 41BDH
===> 23.69 D = équation (41BD H)
sur une ligne

Merci
Avatar
Vincent Burel
"Barbarossat" wrote in message
news:4172304d$0$8653$
Je viens de faire un rapide petit essai de supprimer la partie de poids
faible et cela donne une erreur de calcul de quelques dizième qui dans mon
cas est insignifiant vue que c'est simplement une indication de valeur.
donc pour reprendre mon problème :
poids fort adr 51 = 41BDH
===> 23.69 D = équation (41BD H)
sur une ligne



ouai, enfin bon, si c'est un float32 le premier octet correspond à sign
(1bit) +exp (7 bit).
donc il reste plus qu'un octet pour la mantisse. donc avec une table de 256
entrées, vous devez pouvoir faire des miracles... non !?

VB
1 2