From Friday, April 19th (11:00 PM CDT) through Saturday, April 20th (2:00 PM CDT), 2024, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

Discussions au sujet de NI LabVIEW

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

Lecture/enregistrement CAN - erreur 1074384885

Résolu !
Accéder à la solution

Bonjour,

 

je suis en train de réaliser une interface pour lire le réseau CAN du BSI d'une voiture et enregistrer les différentes données qui m'intéressent sur un graphique.

Mon interface a plusieurs graphiques avec une courbe qui correspond à un paramètre du réseau CAN lu et convertit directement.  Tout cela fonctionne.

 

Cependant j'ai voulu rajouter une phase d'enregistrement de chaque graphique avec "Ecrire dans un fichier de mesures" mais après quelques seconde d'exécution, l'acquisition se fige et une erreur apparait (voir image).

Je suppose que cela vient tout simplement de la vitesse d'acquisition qui doit être trop rapide par rapport à l'enregistrement. Et du coup me sature l’acquisition.

Auriez vous des pistes sur ce sujet? car je ne vois pas du tout ou je pourrais modifier ou informer ces paramètres.

 

Merci

 

Bonne journée

Tout télécharger
0 Compliments
Message 1 sur 10
2 974 Visites

voir structure producteur / consommateur

l'enregistrement ralenti trop la fréquence de lecture de l'acquisition 

0 Compliments
Message 2 sur 10
2 959 Visites

Bonjour, je reviens sur mon sujet concernant de l'acquisition CAN d'un véhicule.

 

J'ai un peu simplifié mon VI et il y a un paramètre que je n'arrive pas à gérer, c'est la fréquence d'acquisition.

En effet après acquisition des données si j'importe les données dans excel, je me retrouve avec une fréquence d'acquisition de 1000Hz, comment je peux baisser ce paramètre?

J'ai fait varier les différents paramètres du VI "NI XNET Read signal waveform" rien n y fait.

J'ai fait varier la fréquence disponible dans BUS monitor, aucun effet.

 

Des idées ?

Tout télécharger
0 Compliments
Message 3 sur 10
2 720 Visites

il manque une vue globale de la gestion de la file d'attente Smiley clignant de l'œil

0 Compliments
Message 4 sur 10
2 712 Visites

Si je comprend bien, j'ai essayé de faire une structure consommateur/producteur pour gérer une file d'attente.

Mon soucis c'est que je ne peux pas câbler ma source en waveform en DBL, comment je pourrais faire? (erreur sur l'image).

Ensuite je ne vois pas comment réduire le nombre d’échantillon dans le consommateur.

 

Merci

0 Compliments
Message 5 sur 10
2 699 Visites

Après plusieurs essais, j'ai pu avoir un début de résultat (voir PJ).

J'ai donc un VI avec deux graphiques.Un où je vois les données du producteur (qui fonctionne très bien cadencé à 1000hz) et un autre avec les données du consommateur (avec des échantillons supprimé cadencé à 10hz).

Cependant le deuxième graphique me renvoi toujours une valeur 0 (là où j'ai entouré en rouge).

Pour qu'elle raison? des idées?

 

 

merci

 

0 Compliments
Message 6 sur 10
2 684 Visites

Je ne comprend pas très bien ce que tu essais de faire. D'un coté tu reçois des trames signal (qui doivent être cyclique?) sur un CAN bus, à quelle fréquence les trames sont-elles envoyées?

 

Ensuite comme tu utilises une file dont le type de data est double et que tu mets du data de type waveform dans la file alors seulement le dernier point de la waveform sera passé à la boucle consommateur. Tu envois du data à la file à chaque milliseconde mais tu retire du data de la file à tous les 100 millisecondes seulement, la taille du data en mémoire dans la file augmentera donc de 7.92 Kbytes par seconde!

 

Il existe des solutions bien sur mais pour l'instant il manque des informations importantes comme la fréquence à laquelle les trame signal sont envoyés sur le CAN bus et la fréquence maximale du signal qui est transmit sur le CAN bus.

 

Ben64

0 Compliments
Message 7 sur 10
2 670 Visites

L'objectif de la manipulation est de récupérer un signal vitesse véhicule par l'intermédiaire du réseau CAN de la voiture (via l'OBD).

Pour cela j'utilise une base de donnée .DBC pour récupérer directement mon signal en km/h. Le signal est envoyé a une fréquence de 1000Hz.

L'intérêt pour moi est justement de pouvoir gérer cet fréquence qui est trop grande pour mes mesures et qui me créer cette erreur. Le fait de la modifier dans "BUS monitor" ne change pas ma fréquence d'acquisition.

Le résultat serait de pouvoir justement avoir un paramètre sur la face avant et pouvoir faire varier la fréquence de mes mesures (graphique à 10hz 50hz 100hz...) selon l'envie de l'utilisateur.

 

 

0 Compliments
Message 8 sur 10
2 662 Visites
Solution
Accepté par l'auteur du sujet NM-Dangel

Tu dois modifier la propriété Resampling Rate. Maintenant il faut comprendre ce que ça change:

Supposons que le signal suivant est envoyé à une fréquence de 1K sur le CAN bus (Chaque caractère est une trame différent), Le caractère * représente l'appel de XNET Read

1 2 3 4 5 6 7 8 9 A*B C D E F 1 2 3 4 5*6 7 8 9 A B C D E F*

Si le Resampling Rate est 1KHz alors pour chaque lecture on aura les résultats suivant:

1 2 3 4 5 6 7 8 9 A

B C D E F 1 2 3 4 5

6 7 8 9 A B C D E F

Maintenant si le resampling Rate est de 100 Hz:

A

5

F

Comme on recoit plusieurs valeur durant un intercalle de resampling alors seulement la dernière est conservée. Pour un resamplig Rate de 200Hz on aurait:

5 A

F 5

A F

La taille de la file d'attente pour le mode Signal I/O (Waveform) est déterminée par la formule Application_Time * Resampling_Rate où l'Application_Time pour Windows est 400 ms. Comme la boucle de ton code initial (avec tous les VI express de sauvegarde dans des fichiers)  était très lente alors la taille du data dans la file augmentait et tu finissait par recevoir un message d'erreur.

Set Resample Rate.pngBen64

 

edit: la valeur du wait est probablement trop élevé dans le code montré.

Message 9 sur 10
2 648 Visites

Slt,

 

Le "ResampRate" fait exactement ce qu'il me fallait, j'ai fait plusieurs essais et cela à l'air de fonctionner. J'ai pu mettre une variable sur ma face avant et dès modification du paramètre, il me fait bien un enregistrement au fréquence voulu. Même après plusieurs minutes, plus de plantage de l'interface et j'ai bien un graphique en temps réel et réactif.

 

Merci pour l'aide

 

Bonne journée

 

0 Compliments
Message 10 sur 10
2 611 Visites