le 02-01-2018 04:23 AM
Bonjour la communauté,
je suis entrain de travailler sur un nouveau projet qui est un banc de test de Faisceau. Pour ce projet je dispose de deux modules SCB-100 un pour générer les signaux TOR à travers le faisceau et le second pour recevoir ses signaux. De cette manière on peut savoir si le faisceau a été correctement conçu. Par contre dans certains cas un module devra générer et acquérir le signal en même temps, c'est là que les choses commencent à se corser.
J'ai conçu un VI qui fonctionne d'un module vers un autre, mais quand je test entrée et sortie sur un même module à travers ma boucle FOR, le programme ne détecte rien en entrée. Par contre si je test directement à l'entrée désigné à travers ma condition là je n'ai pas ce problème.
Auriez vous des solutions qui pourrait m'aider à corriger ce défaut.
Baba59
Résolu ! Accéder à la solution.
le 02-05-2018 04:05 AM
Salut Baba59,
Le SCB-100 est un bloc de connexion, ce n'est pas lui que tu viens programmer. Quelle est la carte DAQ que tu utilises qui est installée sur ton PC ?
De ce que je comprends, tu as 2x SCB-100. Ils sont connectés sur deux cartes DAQ différentes ?
Tu souhaites utiliser un des SCB-100 pour faire une génération et une acquisition en parallèle de signaux numériques ?
SébastienF
le 02-05-2018 08:46 AM
le 02-05-2018 09:00 AM
Bonjour à vous deux,
Désolé je n'ai pas était vraiment précis, alors j'utilise deux SCB-100 avec deux USB 6509.
Tu souhaites utiliser un des SCB-100 pour faire une génération et une acquisition en parallèle de signaux numériques ?
Effectivement c'est bien cela que je cherche à faire, j'ai fais un essai en sélectionnant directement mon entrée d'acquisition je n'ai pas de problème. Mais dés que je fais la même action en scrutant les entrées les unes après les autres avec une boucle FOR je ne vois rien à l'entrée concerné.Je n'ai aucuns messages d'erreur, pour cela je ne comprends pas car si j'ai bien une réponse lors de mon acquisition en pointant sur mon entrée, je devrais avoir la même chose a travers ma boucle FOR.
Baba59
02-05-2018 11:47 AM - modifié 02-05-2018 11:47 AM
Je crois que dans une tâche tous les canaux doivent être du même type (entrée ou sortie). Quand tu lis directement tu crées une nouvelle tâche alors que dans ta boucle FOR tu utilises la tâche que tu as créé au début qui contient un canal de type sortie. Par contre je suis surpris que ça ne génère pas d'erreur. As-tu essayé avec l'exécution en surbrillance?
Ben64
le 02-06-2018 08:12 AM
Bonjour je viens de faire un essai en surbrillance j'ai effectivement une erreur qui apparaît j'ai oublié de câbler une sortie d'erreur.
J'obtiens l'erreur ci-dessous:
L'erreur -200559 s'est produite à : DAQmx Create Channel (DI-Digital Input).vi:2320001
Raisons possibles :
La tâche ne peut pas contenir une voie avec le type de voie spécifié car la tâche contient déjà des voies avec un type de voie différent.
Créez une tâche pour chaque type de voie.
Il faudrait alors que je créer deux taches une de génération et une d'acquisition pour un seul module ?
Baba59
le 02-06-2018 08:28 AM
wrote:
Bonjour je viens de faire un essai en surbrillance j'ai effectivement une erreur qui apparaît j'ai oublié de câbler une sortie d'erreur.
J'obtiens l'erreur ci-dessous:
L'erreur -200559 s'est produite à : DAQmx Create Channel (DI-Digital Input).vi:2320001
Raisons possibles :
La tâche ne peut pas contenir une voie avec le type de voie spécifié car la tâche contient déjà des voies avec un type de voie différent.
Créez une tâche pour chaque type de voie.
Il faudrait alors que je créer deux taches une de génération et une d'acquisition pour un seul module ?
Baba59
En effet, il faut que tu crées une tâche de génération et une d'acquisition pour un seul module.
Ben64
le 02-06-2018 08:48 AM
J'ai refais des essais en faisant la création d'une nouvelle tache. Mais je n'ai rien du tout en entrée de mon module à travers ma boucle FOR (ai-je fais une erreur de programmation ?). Je procède de la manière suivante :
(1) Je commence par créer ma première tâche pour la génération de mon signal puis j'efface ma tâche.
(2) A travers ma boucle FOR je viens indexé mon tableau afin de tester toutes mes entrées de mon module.
(3) A la fin de ma boucle je récupère mon tableau de booléen pour me permettre de visualiser si j'ai bien une entrée d'activé.
(4) Puis je termine par créer une dernière tâche qui va me permettre de remettre ma sortie à zéro.
Je ne pense pas avoir fait d'erreur dans mon code, je ne vois pas pourquoi j'ai ce problème .
Baba59
02-07-2018 02:37 AM - modifié 02-07-2018 02:48 AM
Bonjour,
je viens de faire un essai d'un module vers un autre voir si cela venait de ma boucle FOR. Mais cela fonctionne correctement...
Je ne vois pas d'ou peut venir mon erreur, car cela fonctionne bien en pointant directement sur l'entrée.
J'ai même filtré le nom de mes PIN afin de ne pas avoir de conflit en faisant une génération et une acquisition sur la même PIN.
Si vous avez des idées pour m'aider à résoudre ce problème.
Je vous remercie d'avance.
Baba59
le 02-07-2018 07:18 AM
Bonjour,
je viens de faire des essais au niveau de ma sortie avec un multimètre au début j'ai bien 5V en sortie puis un moment la sortie repasse à 0.
En cherchant un peu j'ai remarque que quand je passer sur le port ou se trouvait ma ligne de sortie cette dernière se remettait à zero pour passer en acquisition.Donc si je veux que cela fonctionne correctement il faut que je filtre le port complètement plutôt que la ligne de sortie seule.
Merci en tout cas de votre aide 🙂
Bonne après midi cordialement.
Baba59