le 01-12-2015 05:07 AM
Bonjour,
Je dois faire une acquistion temps réel de modules via des centrales d'acquisition - 64 voies- Agilent U2356.
Le cahier des charges spécifie qu'au maximum, l'acquisition sera faite sur deux centrales en parallèles et sur les 64 voies de chaque centrale - soit 128 voies en parallèle.
La fréquence d'acquisition maximale des centrales est de 500 kHz. Cependant, cette fréquence est divisée en fonction du nombre de voies sur lesquelles se fait la lecture. (1 voie, fréquence d'échantillonnage max = 500 kHz, 2 voies F=250 kHz, 64 voies F = 7812 Hz etc).
Je cherche le mode d'acquisition le plus efficace pour faire l'acquisition en continue (bouton Start et Stop logiciel) des 64 voies (sous LabVIEW).
Pour l'instant j'utilise le "polling mode", qui prend un point de chaque voie. Je mets le driver de lecture dans une boucle While, mais cette dernière met trop de temps à s'exécuter ; la fréquence d'échantillonnage est donc diminuée par logiciel et les données obtenues (courbes..) ne sont pas optimisées. J'ai l'impression que le mode continu fait la même chose...
Si quelqu'un connait ce type de centrale et peut m'éclairer sur les caractéristiques des différents modes, cela m'aiderait à orienter l'architecture logicielle.
Merci de votre aide,
Danaé
le 01-12-2015 10:50 AM
Bonjour,
Il existe peut être une fonction qui permet de dire quels sont les voies que tu veux acquérir d'un seul coup et récupérer le tableau de valeurs en réponse.
Cordialement.
Maxime R.
CLA - Certified LabVIEW Architect / Architecte LabVIEW Certifié
CTA - Certified TestStand Architect / Architecte TestStand Certifié
le 02-09-2015 09:49 AM
Bonjour,
Désolée pour la réponse tardive j'étais sur un autre projet entre temps.
Oui effectivement, le driver Read AI waveform permet de lire plusieurs points sur plusieurs voies en même temps. Ce pendant, en ajoutant une boucle While pour lire ces données en continue, des problèmes apparaissent :
Le logiciel doit faire une acquisition de données, à la fréquence maximale possible, avec une précision maximale, sur les 64 entrées analogiques du premier connecteur de chaque centrale (2 par bancs).
D’après la documentation, la taille maximale du buffer est de 16384 points (paramètre « acquisition points ») et la fréquence d’acquisition maximale ("sampling rate") est de 500 kHz / 64 voies soit 7812 Hz environ.
Dans un premier temps, je fais une acquisition avec les paramètres précédents sur une seule centrale. J’utilise une boucle While pour venir lire les données de façon continue (Drivers « Wait for the current waveform acquisition to finish » et « Read AI waveform » dans la boucle) jusqu’à l’envoi d’une commande STOP.
Au début, tout fonctionne correctement, mais au bout de plusieurs minutes, la centrale ne renvoie plus de données. Je ne comprends pas d’où vient ce problème ; j’ai essayé de diminuer les paramètres fréquence d’acquisition et nombre de points, mais le problème finit toujours par apparaître, quelque soit la configuration de départ.
Il est possible que cela vienne d'un problème de buffer des centrales, mais je n'arrive pas à le faire apparaître. En fonction de la valeur des paramètres "Sampling rate" et "Acquisition points", l'erreur apparaît soit dans le driver Wait soit dans le driver Read...
Merci,
Danaé