codesys 2.3 Convertir hexa en decimal
codesys 2.3 Convertir hexa en decimal
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
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
- itasoft
- Mi homme - Mi automate
- Messages : 7037
- Inscription : 20 oct. 2015, 10:15
- Localisation : Lyon
- Contact :
Re: codesys 2.3 Convertir hexa en decimal
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
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
Automaticien privé (de tout)
itasoft@free.fr
itasoft@free.fr
Re: codesys 2.3 Convertir hexa en decimal
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
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
- itasoft
- Mi homme - Mi automate
- Messages : 7037
- Inscription : 20 oct. 2015, 10:15
- Localisation : Lyon
- Contact :
Re: codesys 2.3 Convertir hexa en decimal
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 ??
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 ??
Automaticien privé (de tout)
itasoft@free.fr
itasoft@free.fr
Re: codesys 2.3 Convertir hexa en decimal
Oui, c'est bien des octets et pas des bits pardon
- itasoft
- Mi homme - Mi automate
- Messages : 7037
- Inscription : 20 oct. 2015, 10:15
- Localisation : Lyon
- Contact :
Re: codesys 2.3 Convertir hexa en decimal
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
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
Automaticien privé (de tout)
itasoft@free.fr
itasoft@free.fr
Re: codesys 2.3 Convertir hexa en decimal
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.
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.
-
- Mi homme - Mi automate
- Messages : 2076
- Inscription : 21 oct. 2015, 10:00
- Localisation : Ile de France
Re: codesys 2.3 Convertir hexa en decimal
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)
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)
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part !
- itasoft
- Mi homme - Mi automate
- Messages : 7037
- Inscription : 20 oct. 2015, 10:15
- Localisation : Lyon
- Contact :
Re: codesys 2.3 Convertir hexa en decimal
slts,
es que ça veut dire que RxData[7] et RxData[8] sont du type BYTE ?
es que ça veut dire que RxData[7] et RxData[8] sont du type BYTE ?
Automaticien privé (de tout)
itasoft@free.fr
itasoft@free.fr
Re: codesys 2.3 Convertir hexa en decimal
Une petite idée en Ladder. (Pour faire cela le ST serait plus "simple" à écrire.)
Cordialement.
Cordialement.