03-31-2011 03:30 AM
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
04-05-2011 04:50 AM
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:
Cordialement
Romain D.
Romain DUVAL || RF & Semiconductor Staff System Engineer || CLA || CTA
National Instruments France
04-06-2011 04:29 AM
Merci pour l'aide, mais je sais que je dois utiliser le CRC16, mais il ne calcule pas la bonne valeur.
04-08-2011 09:20 AM
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
06-15-2011 01:58 PM
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!
06-15-2011 02:04 PM
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!