Page 1 sur 2
codesys 2.3 Convertir hexa en decimal
Posté : 29 oct. 2018, 18:44
par Mrjack
Bonjour,
Cela parait simple, mais je n'y arrive pas.
Je récupère le résultat d'une trame soit les deux derniers bits d'un octet.
Je les additionne et j'ai donc une valeur (byte)
Je voudrai l'afficher en visu (et éventuellement la comparer, mais ça je peux le faire en hexa) en décimal .
Une idée?
Merci pour votre aide.
Bien cordialement
LJ
Re: codesys 2.3 Convertir hexa en decimal
Posté : 30 oct. 2018, 00:45
par itasoft
Slts,
pas tout compris.
Ça veut dire que tu récupère les deux bits des poids forts , c'est ça ????
ex : 1100 0000
Si c’est le cas, faire un décalage logique à droite de 6 pour avoir une valeur décimale entre 0 et 3
Re: codesys 2.3 Convertir hexa en decimal
Posté : 30 oct. 2018, 08:22
par Mrjack
Bonjour,
merci pour la réponse,
Je me suis mal exprimé.
Voir la capture jointe:
Je peux voir la réponse du thermostat en RxData[7] et RxData[8]
La réponse est en hexa.
Dans l’exemple joint
RxData[7] 1
RxData[8] 16
0116 en hexa donne 278 en décimal soit 278/10 =27,8 degrés
Comment puis-je arriver à une variable Temp en REAL en partant Des RxData 7 et 8 dans le ladder?
Merci pour votre aide.
Bien cordialement
Re: codesys 2.3 Convertir hexa en decimal
Posté : 30 oct. 2018, 08:51
par itasoft
slts,
Je récupère le résultat d'une trame soit les deux derniers bits d'un octet.
c'est pas des bits alors mais des mots de 8 bits ou de 16 bits , c'est ça ??
Re: codesys 2.3 Convertir hexa en decimal
Posté : 30 oct. 2018, 10:27
par Mrjack
Oui, c'est bien des octets et pas des bits pardon
Re: codesys 2.3 Convertir hexa en decimal
Posté : 30 oct. 2018, 10:55
par itasoft
slts,
tu l'as déjà en décimal en dixièmes de degrés (278) pour l'afficher sur un IHM il faut un champs de type Entier à virgule fixe ex; 27.8
Re: codesys 2.3 Convertir hexa en decimal
Posté : 30 oct. 2018, 12:21
par Mrjack
Non justement, je n'arrive pas a avoir le decimal a partir des deux octets Hexa.
Il faut que j'assemble les des octets pour avoir une valeur de base hexa (je ne sais pas comment faire encore)
Il faut que je convertisse cette valeur en decimal ( je ne sais pas encore comment non plus)
Après je devrais pouvoir me débrouiller.
Re: codesys 2.3 Convertir hexa en decimal
Posté : 30 oct. 2018, 13:02
par philou77
Salut,
Ta valeur doit bien être localisée dans ton automate à une adresse définie...
Si tu déclare une nouvelle Variable à l'adresse de RxData[7] en format WORD, tu accèderas directement à ta valeur par cette nouvelle variable.
Valeur qui est en BCD, une simple conversion bcd to int te donnera ta température en décimal (si tu y tiens vraiment)
Re: codesys 2.3 Convertir hexa en decimal
Posté : 30 oct. 2018, 13:12
par itasoft
slts,
es que ça veut dire que RxData[7] et RxData[8] sont du type BYTE ?
Re: codesys 2.3 Convertir hexa en decimal
Posté : 30 oct. 2018, 13:57
par JAPIB
Une petite idée en Ladder. (Pour faire cela le ST serait plus "simple" à écrire.)
Cordialement.