LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

le problème de cadencement avec compact DAQ

Solved!
Go to solution

Bonjour,

 

J'ai le compact DAQ 9188(connexion via le câble Ethernet) avec 5 cartes 9425(DI) et 3 cartes 9476(DO).

 

Mon OS est Windows XP, version Labview 2011.

 

Je voudrais mesurer le temps qu'il faut dans une boucle en faisant simplement l'acquisition de 5 cartes DI et envoyant un tableau constant aux 3 cartes DI(voir la pièce jointe), alors si je mesure un peu près1500ms(wait 500ms). C'est beaucoup, non? Ma première question est comment améliorer le temps de cadencement.

 

Puis, je reprends le VI au-dessus en intégrant un autre VI qui fait des comparasion des résulats de DIs et change les DOs. Si je mesure le temps qu'il faut dans cette boucle modifié, le temps deviens 500ms(toujours wait 500ms). Je ne comprends pas le résultat des ces 2 VIs, normalement, la 2ième dure un peu plus long que le 1er, n'est-ce pas?

 

Merci d'avance.

 

Lily

0 Kudos
Message 1 of 7
(2,585 Views)

Bonjour Lily,

 

Concernant votre problème, plusieurs remarques peuvent être faites.

 

Tout d'abord, pourquoi utilisez-vous la fonction "Wait (ms)"? Cette fonction force la boucle à attendre 500 ms (dans votre cas) au minimum. Enlevez-la tout simplement si vous désirez réduire le temps d'exécution de la boucle!

 

Deuxièmement, (le code utile de) votre deuxième VI n'est certainement pas plus rapide que le premier. Avez-vous essayé de séquencer vos fonctions d'acquisition et de génération au moyen du cluster d'erreur, par exemple, dans votre premier VI?

 

En réalité, tous deux devraient être plus rapides que 500ms et le temps que prennent les fonctions utiles de la boucle devrait être masqué par la fonction "Wait (ms)". Lorsque vous contrôlez le timing de manière logiciel, ce timing n'est pas prédictible et n'est pas exclusivement géré par LabVIEW. Dès lors, la comparaison de temps d'exécution que vous faites n'est donc pas très "fiable".

 

Finalement, sachez que lorsque vous désirez acquérir ou générer à une fréquence plus élevée et connue, il vous faut utiliser une horloge matérielle (grâce au mode « Finite samples » ou « Continuous samples » de DAQmx).

 

Cela répond-il à votre question ?

Cédric | NI Belgium
0 Kudos
Message 2 of 7
(2,543 Views)
Solution
Accepted by topic author Lily1979

Voici comment je ferai ce que vous souhaitez faireCapture.JPG

David S.| Certified LabVIEW Associate Developer
National Instruments France


Message 3 of 7
(2,541 Views)

Bonjour,

 

Merci à votre réponse.

 

Si j'enlève le wait, ça peut réduire le temps, mais ce que je voudrais est d'avoir un temps de 100ms par boucle. Même je l'enlève,il faut au moins 360ms.

 

Le mode ''finite samples'' et le mode ''continuous samples'' n'ont pas trop d'intérets pour mon application, il s'agit de signaux digitaux.

 

Cordialement.

 

Lily

0 Kudos
Message 4 of 7
(2,533 Views)

Bonjour,

 

Un grand merci pour votre VI.

 

J'ai toujours l'habitude de travailler en Assistant DAQ, c'est plus facile.

 

J'aimerais bien savoir la différence entre ce que vous avez fait et l'assistant DAQ que j'ai configuré.

 

En fait, je vois la différence en utilisant ''generate NI-DAQmx code'', votre code est beaucoup plus simple. Les configurations sont dehors de la boucle, il y a que la lecture et l'écritrue des données dans la boucle. Pourqoui L'assistant DAQ ne peut pas faire des choses pareilles? Dans votre code, le mode de génération est aussi 1 échantillon(sur demande), n'est-ce pas?

 

Cordialement.

 

Lily

0 Kudos
Message 5 of 7
(2,529 Views)

En fait, l'Assistant DAQ est fait pour pouvoir l'utiliser seul, à n'importe quel endroit du code. Il est chargé de la création de la tache, de la configuration, de la lecture ou de l'écriture est de la libération des ressources. Si on l'utilise dans une boucle, toutes ces étapes vont systématiquement être répétées.

Dans mon code, effectivement, la configuration est équivalente à 1 échantillon sur demande, bien qu'il ne soit pas nécessaire de le mettre de manière explicite étant donné que je ne configure pas d'horloge de cadencement pour mes voies numériques, ce qui résulte à l'envoi ou la réception d'une seule valeur par voie à chaque tour de boucle, c'est ce qu'on appelle du cadencement logiciel.

 

Cordialement

David S.| Certified LabVIEW Associate Developer
National Instruments France


Message 6 of 7
(2,516 Views)

Un grand merci.

Smiley Happy

 

Lily

0 Kudos
Message 7 of 7
(2,511 Views)