Discussions au sujet de NI LabVIEW

annuler
Affichage des résultats de 
Rechercher plutôt 
Vouliez-vous dire : 

Récupération de donnée CAN sur 4 octets

Résolu !
Accéder à la solution

Bonjour la communauté,

 

je suis actuellement entrain de travailler sur une fonction qui me faciliterai la tache dans les conversion de donnée reçue par mon réseau CAN.

Ma fonction permet actuellement de récupérer des variable sur 1 et 2 octets, mais cette fois-ci je souhaite récupérer des donnée de type DINT.

Pour ce faire je suis parti du même principe que l'INT en faisant  un décalage mais je n'ai pas le résultat souhaité. Mais lors du traitement de la donnée reçu je n'ai pas le résultat attendu qui devrait être normalement 287686 ou une valeur rapprochée. Or je trouve une valeur de 25542, pourriez vous m'éclairer afin de savoir et comprendre mon erreur ? 

Voici la partie du code que j'utilise.

Conversion_CAN.png

Merci d'avance.

 

Voici la trame que j'envoi durant l'essai.

 

trame.png

 

Cordialement.

 

Baba59

0 Compliments
Message 1 sur 4
3 068 Visites
Solution
Accepté par l'auteur du sujet Baba59

Tu essais de décaler de 16  et 32 bits des nombres que tu as convertis en U16 (ce qui te donne 0 dans le 2 cas, comme il te reste C6 et 63 tu obtiens 25542), converti en U64 à la place.

 

Tu pourrais également récupérer le data de la façon suivante si la charge utile de ta trame CAN est de huit bytes:

 

data CAN.png ou bien:

data CAN-2.png

Ben64 

Message 2 sur 4
3 048 Visites

Bonjour,

 

c'est effectivement ce qui me fallait. Merci bien.

 

Bonne journée à vous.

 

Baba59

0 Compliments
Message 3 sur 4
3 026 Visites

bonjour pouvez vous poster ton fichier executable .vi ?? 

0 Compliments
Message 4 sur 4
2 911 Visites