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.
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.
le 11-17-2017 05:20 AM
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
Résolu ! Accéder à la solution.
le 11-17-2017 06:40 AM
voir structure producteur / consommateur
l'enregistrement ralenti trop la fréquence de lecture de l'acquisition
le 09-17-2018 08:26 AM
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 ?
le 09-17-2018 09:05 AM
il manque une vue globale de la gestion de la file d'attente
le 09-18-2018 07:28 AM
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
le 09-19-2018 03:06 AM
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
le 09-19-2018 12:32 PM
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
le 09-20-2018 12:41 AM
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.
09-20-2018 12:31 PM - modifié 09-20-2018 12:33 PM
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.
Ben64
edit: la valeur du wait est probablement trop élevé dans le code montré.
le 09-28-2018 04:45 AM
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