codesys 2.3 Convertir hexa en decimal

Forum traitant des automates industriels de marque Wago et du logiciel codesys
Mrjack
Code son premier grafcet
Code son premier grafcet
Messages : 45
Inscription : 09 févr. 2017, 08:54

codesys 2.3 Convertir hexa en decimal

Message 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
Avatar de l’utilisateur
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7037
Inscription : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: codesys 2.3 Convertir hexa en decimal

Message 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
Automaticien privé (de tout)
itasoft@free.fr
Mrjack
Code son premier grafcet
Code son premier grafcet
Messages : 45
Inscription : 09 févr. 2017, 08:54

Re: codesys 2.3 Convertir hexa en decimal

Message 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
Pièces jointes
Capture6.JPG
Avatar de l’utilisateur
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7037
Inscription : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: codesys 2.3 Convertir hexa en decimal

Message 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 ??
Automaticien privé (de tout)
itasoft@free.fr
Mrjack
Code son premier grafcet
Code son premier grafcet
Messages : 45
Inscription : 09 févr. 2017, 08:54

Re: codesys 2.3 Convertir hexa en decimal

Message par Mrjack »

Oui, c'est bien des octets et pas des bits pardon
Avatar de l’utilisateur
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7037
Inscription : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: codesys 2.3 Convertir hexa en decimal

Message 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
Automaticien privé (de tout)
itasoft@free.fr
Mrjack
Code son premier grafcet
Code son premier grafcet
Messages : 45
Inscription : 09 févr. 2017, 08:54

Re: codesys 2.3 Convertir hexa en decimal

Message 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.
philou77
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 2076
Inscription : 21 oct. 2015, 10:00
Localisation : Ile de France

Re: codesys 2.3 Convertir hexa en decimal

Message 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)
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! :D
Avatar de l’utilisateur
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7037
Inscription : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: codesys 2.3 Convertir hexa en decimal

Message par itasoft »

slts,
es que ça veut dire que RxData[7] et RxData[8] sont du type BYTE ?
Automaticien privé (de tout)
itasoft@free.fr
Avatar de l’utilisateur
JAPIB
Aguerri de l'automation
Aguerri de l'automation
Messages : 84
Inscription : 20 oct. 2015, 23:32
Localisation : Lyon

Re: codesys 2.3 Convertir hexa en decimal

Message par JAPIB »

Une petite idée en Ladder. (Pour faire cela le ST serait plus "simple" à écrire.)

Cordialement.
Pièces jointes
Image5.jpg
Image1.jpg
Répondre