LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Je souhaite augmenter la vitesse d'un vi d'acquisition

Bonjour,

 

J’aimerai augmenter la vitesse de ma boucle d’acquisition. J’ai fait différents tests qui ne sont pas concluants.

Dans un programme complet, les données d’acquisition sont mises à jour vers des variables globales qui sont ensuite traitées dans d’autre vi.

En pièce jointe mon vi. Le socle est un 9174 avec 9476 + 9205 + 9211 + 9263

 

Je pense que la lecture de température doit ralentir les autres ! Est-ce que je peux créer deux vi en parallèle ? Un pour la lecture à 1 seconde de la température, et une acquisition plus rapide pour le 9476 9205 et 9263 ?

Merci

Download All
0 Kudos
Message 1 of 2
(3,009 Views)

Bonjour,

 

Tu peux définitivement créer des boucles en parallèle pour les entrées/sorties qui ont des taux d'échantillonnage différents, et mettre ensemble ceux qui ont des taux d'échantillonnage semblables.  Pour les entrées/sorties avec des taux d'échantillonnage semblables tu peux exécuter les VIs en parallèle à l'intérieur de ta boucle, contrairement à ton code qui séquence l'appel des VIs.  Il est généralement recommandé de ne pas utiliser des varialbes globales dans le cas d'application avec des temps critiques de cycle, préférer plutôt des "Functional Global Variable", voir le lien ici.

 

Présentement, la vitesse de ta boucle est limitée au taux d'échantillonnage du plus lent des quatres + le temps de traitement (lecture des variables globales...).

 

Tu peux aussi optimiser la manipulation de tes données en utilisant des "array" ou des "cluster".  Voici un petit example à partir de ton code:

 

séquence.jpg

 

Un des équivalents de ce bout de code en utilisant des "array" peut être:

 

optimisation.png

 

Il y a amplement place à optimisation.

 

N'hésite pas si tu as des questions.

 

Michel

0 Kudos
Message 2 of 2
(2,985 Views)