Discussions au sujet des autres produits NI

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

Pb de lecture de trames CAN low speed

Bonjour,

Je développe une application en C (sous VISUAL C++ 5) pour tester une liaison CAN Low Speed d'un auto radio.
Le test que j'essaye de mettre en place est le suivant :
- écriture d'une trame CAN par l'autoradio
- Lecture de cette trame par la carte NI (carte CAN XS type 2).

Le problème que j'ai est le suivant : je n'arrive pas lire les trames sur la carte NI. Pourtant les trames partent bien de l'autoradio et arrive sur le bon port de la carte (signaux pistés par un oscilloscope).

Le comportement de la carte est d'autant plus étrange que si je lance mon application en "inhibant" l'initialisation et la lecture de la carte CAN (je ne laisse que la partie où l'on demande au produit d'envoyer une trame CAN) et que j'ouvre NI-SPY, je reçois les trames.
Puis, je ferme NI-SPY et je relance mon application en autorisant l'initialisation de la carte CAN et la lecture par la carte CAN. Je refais le test et je reçois bien les données !!!
Maintenant si je redémarre le PC, je revient dans la configuration de départ <=> à savoir que je ne reçoit plus les trames CAN que l'autoradio m'envoie.

Je pense que mon problème se situe sûrement du côté de initialisation de la carte CAN XS/2 mais je n'arrive pas à trouver le ou les paramètres à passer pour configurer correctement la carte CAN.

Données :
- Environnement : Windows NT
- Logiciel de développement : VISUAL C++ 5
- Carte : Carte NI CAN XS/2
0 Compliments
Message 1 sur 2
4 144 Visites
Bonjour,

Si je comprends bien votre problème, vous faites la chose suivante:

Programme normal:
* initialisation et configuration des objets CAN (1 en écriture, 1 en lecture)
* écriture d'une trame CAM (vers l'appareil externe)
* réception d'une trame CAN (envoyée par l'appareil externe)

Pour que cette séquence fonctionne, vous faites la chose suivante:
* suppression de la partie "initialisation" et "réception" dans votre programme
* ouverture de NI-Spy pour capturer les appels aux fonctions NI-CAN
* lancement de la partie "écriture"

C'est à partir de là que je comprends plus très bien votre problème.
Si le programme ne contient que la partie "écriture", NI-Spy ne peut capturer uniquement les appels à la fonction "ncWrite". Cet outil ne vous permettra pas de visualiser les données lues. NI-Spy capture les appels de fonctions, mais ne permet pas de visualiser les données sur le bus CAN.
NI-Spy, lorsque le mode "Capture" est actif, peut ralentir l'exécution de votre programme. Il n'intervient pas dans l'initialisation de la carte CAN.

D'ume manière générale, avez-vous un code C que nous pourrions tester qui ne nécessite pas d'appareils externes? Le code joint contient beaucoup de fonctions redéveloppées du type "my_..." et nous n'avons pas tous les éléments. Pouvez-vous être plus précis sur la procédure?

Merci.

Matthieu Gourssies
National Instruments France
0 Compliments
Message 2 sur 2
4 127 Visites