DASYLab

cancel
Showing results for 
Search instead for 
Did you mean: 

CRC dasylab

Bonjour,

 

Je souhaite utiliser le module RS232 pour commander un variateur de moteur  ALTIVAR31. Mais malheureusement,les données à envoyer à ce variateur doivent être terminer par un CRC16, et Dasylab, ne me donne pas de valeur correct pour ce CRC, ce qui m'empêche tout dialogue.

 

Voici un exemple de données :

je dois envoyer cette trame : 02 03 0C 1E 00 04 27 6C

Les deux derniers mots sont le CRC. Si j'envoie cette trame, cela fonctionne très bien

 

Mais malheureusement, je saisi le texte suivan dans le module RS232 :

\x02\x03\x0C\x1E\x00\x04\cc

Et je constate en sortie du port RS232, que la trame envoyée est la suivante :

02 03 0C 1E 00 04 86 6A

 

J'ai donc l'impression que Dasylab ne calcul pas correctement le CRC.

 

Pourriez-vous l'aider?

 

Merci

 

0 Kudos
Message 1 of 6
(7,047 Views)

Bonjour Aneel,

 

Merci d'avoir posté sur le forum de National Instruments.

 

Je vous conseille de vous référer à ces 2 précédents forums pour comprendre comment calculer le CRC:

 

forum 1

forum 2

 

Cordialement

 

Romain D. 

 

Romain DUVAL || RF & Semiconductor Staff System Engineer || CLA || CTA
National Instruments France

0 Kudos
Message 2 of 6
(7,032 Views)

Merci pour l'aide, mais je sais que je dois utiliser le CRC16, mais il ne calcule pas la bonne valeur.

0 Kudos
Message 3 of 6
(7,025 Views)

Bonjour Aneel,

 

si tu utilise \cq pour calculer qu'est ce que cela donne?

 

Romain D 

Romain DUVAL || RF & Semiconductor Staff System Engineer || CLA || CTA
National Instruments France

0 Kudos
Message 4 of 6
(7,012 Views)

Bonjour,

 

Comme nous l'avons discuté sur le Forum Dasylab en Français ( http://128657.aceboard.fr/128657-2244-6961-0-dans-Dasylab.htm ), il existe plusieurs CRC16 (voir sur wikipédia ou sur http://www.lammertbies.nl/comm/info/crc-calculation.html ).
Dasylab calcule le CRC16 ccitt (xFFFF).
Cela donne pour la chaîne 02 03 0C 1E 00 04 les 2 octets de checksum 3C 56 et non 86 6A et Dasylab le calcule très bien avec l'option \cc.
Celui que vous voulez calculer (ça dépend des appareils) est le CRC16 (Modbus) que Dasylab ne calcule pas.
La solution: le calculer dans Dasylab (pas simple) ou envoyer vos consignes à un programme externe ( en visual basic ou autre) via le module data socket.

 

Pour info, c'est ce qui a été fait en VB par Aneel et cela fonctionne très bien aujourd'hui!

Frédéric Miqueau
MD Electronic, France
http://www.mdelectronic.fr
French Dasylab Forum : http://www.dasylab-forum.de/forum/index.php?showforum=43
Message 5 of 6
(6,929 Views)

PS: pour les gens de NI France, je l'ai fait en Labview au lieu de VB et ça marche très bien aussi, surtout qu'il y a des VI tous faits disponibles sur le site NI pour le calcul du CRC16 Modbus!

Frédéric Miqueau
MD Electronic, France
http://www.mdelectronic.fr
French Dasylab Forum : http://www.dasylab-forum.de/forum/index.php?showforum=43
Message 6 of 6
(6,926 Views)