le 02-08-2016 06:17 AM
Bonjour,
Je débute avec les fonctions DAQ et je dois développer une application qui utilise un boitier NI USB 6211 pour acquérir et générer des signaux analogique.
Pour la partie acquisition, j'ai crée ma tache avec NI MAX afin d'acquérir sur 4 voies ANA. J'ai testé cette tache, et je n'ai pas eu de probleme apparent.
Pour la génération, je dois générer deux signaux sinusoidaux à amplitude et offset variables.
Mon probleme est pour la génération, je n'arrive pas à cadencé la création du signal et la génération sur la sortie, ce qui me fais apparaitre l'erreur suivante :
Quelqu'un pourrait-il m'aider ?
J'ai mis mon code en piece jointe !
Cordialement,
Nathan
Résolu ! Accéder à la solution.
le 02-08-2016 06:51 AM
Je crois qu'il n'est pas possible de créer une tâche DAQmx par voies AO.
Dans ta boucle de génération tu as mis deux fois l'express VI de génération, essaie de n'en mettre qu'un seule en lui donnant les deux signaux à générer.
L'erreur que tu reçois vient d'un de tes 2 Express VIs de génération et indique un conflit de ressource.
We have two ears and one mouth so that we can listen twice as much as we speak.
Epictetus
le 02-08-2016 07:29 AM
Effectivement, mon erreur à disparu et je génere bien un sinus en sortie de mes deux voies.
Merci pour ton aide !
le 02-08-2016 08:33 AM
Salut,
Je me permet de te faire quelques remarques concernant ton code :
1- Félicitaiton :
-- Code commenté, clair à l'écran --> Amélioration : le faire tenir dans un seul écran, sinon une seule direction de scrollbar.
2 - Boucle while
-- Pense à toujours mettre une temporisation dans tes boucles "while" même de 1 ms, cela te permet de libérer ton processeur pour d'autre tache. Par exemple ta première boucle qui attends une validation de l'opérateur pourrait être cadencé à 250ms (c'est le seuil de réaction qui ne génère pas d'impression de latence pour l'utilisateur)
3- ATTENTION
-- Je ne vois pas l'intérêt de dupliquer tes commandes dans des indicateurs juste pour une variable locale par la suite. Tu peux utiliser directement les commandes dans ta deuxième boucle while, puisqu'elle ne seront lu qu'après validation de l'opérateur.
4- Generation de signal
-- Pourquoi ne transmet tu pas tes deux signaux sur chaque voix au travers d'une même requete ? Effectivement je ne pense pas que tu puisses faire 2 accès en parallèle sur tes voix, vu qu'elles vont être sur le même cadencement.
Voilà bon courage pour la suite.
le 02-09-2016 12:46 AM
Salut ,
Merci pour tes commentaires, j'en prendrais compte !
Bonne continuation a toi aussi !