le 09-01-2014 05:38 AM
bonjour,
j'ai à ma disposition une carte PCI NI-6229 pour laquelle les 2 compteurs sont déjà utilisés pour l'acquisition. Je dois commander un moteur pas à pas qui peut tourner dans les 2 sens (+ et -) en envoyant un signal PWM [4V/0V] vers l'une des entrées, la rotation est validée par un signal numérique [0-5V].
J'ai décidé d'utiliser 2 sorties analogiques [ao0 et ao1] pour générer ce PWM avec un nombre de points finis, et réglé le rapport cyclique suivant mes besoins.
je veux que le changement d'état d'une sortie numérique déclenche la rotation du moteur. puis je utiliser la même broche p1.1 et PFI1?
dois je recréer la tâche à chaque mouvement de moteur, ou puis je la garder active jusqu'à la fin de l'éxecution de mon programme?
dans quel ordre dois je mettre l'initialisation de la tâche par rapport à l'écriture de la tension de sortie?
dois je faire, comme pour l'acquisition, une séquence pour créer les tâches analogiques plus tard que les tâches numériques?
La dévalidation de la rotation doit avoir lieu 1 période après le dernier pas du moteur.
je joins une ébauche de VI, non fonctionnelle pour illustrer mes propos.
Merci de votre aide,
Pierre
Résolu ! Accéder à la solution.
le 09-02-2014 04:07 AM
Bonjour,
Pour votre question liée à la connexion, la pin 10 (P1.1/PFI 1) est suceptible d'être utilisée par l'un des compteurs.
N'hésitez pas à consulter ce document :
http://www.ni.com/pdf/manuals/371022k.pdf (page 186/424)
Je vous recommande dans ce cas d'opter pour une pin dédiée aux E/S numériques comme la pin 52 (P0.0) ou la pin 51 (P0.1) :
http://www.ni.com/pdf/manuals/371290g.pdf (page 21/24)
Pour cette même commande de rotation, je souhaite savoir commet elle fonctionne exactement : est ce que c'est un bouton qui se trouve en face avant, que vous actionnez pour déterminer le sens ou bien et qui envoie un signal au moteur ou est ce un bouton poussoir que vous connecter physiquelment au moteur et à la carte PCI 6229 ?
Qu'est ce qui commande le sens de rotation du moteur : le changement d'état de la commande numérique ou l'état logique de la commande (par exemple, elle est à 0 : il tourne dans le sens négatif, elle est à 1, il tourne dans le sens positf )?
Cordialement
le 09-02-2014 05:15 AM
bonjour,
merci de votre aide. Voici quelques éléments relatifs aux points que vous soulevez.
- j'utilise l'entrée analogique ai0 avec les pins 68+34
- j'utilise dev1/ctr0 (SRC) en PFI8 pins 37+4. le même signal est envoyé en PFI0 (pins 11+44) pour synchroniser l'acquisition analogique
- j'utilise dev1/ctr1 (GATE) en PFI4 pins 41+7
donc, les autres voies et connecteurs sont inutilisés pour l'instant. J'ai construit mon VI à partir de celui proposé en exemple PWM utilisant une sortie analogique.
L'utilisateur sélectionne en face avant un bouton et donc on envoie un signal sur l'une des broches (du boitier de commande) du moteur pas à pas.
J'aurai besoin des 4 voies ao de ma carte car j'ai 2 moteurs (polariseur et monochromateur) qui fonctionnent sur le même principe.
Derniere question, au repos, (la carte de pilotage liée) au moteur doit recevoir une tension non nulle (~4 V). Est ce configurable avec MAX ou LABVIEW?
J'ai reçu une formation à LABVIEW mais l'acquisition/génération de signaux n'en faisait pas partie hélas... Je me débrouille comme je peux avec l'aide que je glane par ci par là.
Sincèrement,
Pierre
le 09-02-2014 09:28 AM
Bonjour,
Merci pour ces précisions,
Qu'entendez-vous par "synchronise l'acquisition analogique" ?
Souhaitez-vous acquérir deux signaux analogiques simultanément ?
En ce qui concerne le code "moteur pap", il y a deux boutons sur la face avant, n'aurait-il pas été plus simple d'en mettre que un seul ?
Cela vous empêchera de rencontrer la situation ou les deux boutons sont dans le même état logique.
Je vous invite à consulter une variation de l'architecture en pièce jointe.
En ce qui concerne votre dernière question, vous pouvez configuer sue le "VI Waveform carré" un offset de la tension qui vous convient, et écrire avant le lancement de la tâche de génération.
J'attire votre attention sur le fait que les sorties analogiques et numériques d'une carte PCI 6229 délivre un courant de l'ordre de quelques milliampère.
http://www.ni.com/pdf/manuals/371290g.pdf (page 3)
Cordialment
le 09-02-2014 10:19 AM
bonsoir,
en entrée, j'acquiers le signal analogique issu d'un photomultiplicateur lors des tops d'une roue codeuse dont la fréquence n'est pas stable (dont je mesure aussi la fréquence => besoin compteur).
Les mouvements des moteurs (polariseur et monochromateur) utilisant ces sorties analogiques ont lieu avant cette acquisition analogique. Les éléments peuvent fonctionner indépendamment les uns des autres.
Les 2 moteurs peuvent tourner dans des sens différents, il faut 1 selecteur pour chacun. 1 seul (le polariseur) a besoin d'une tension de validation.
Je n'avais pas connaissance de ce waveform de tension carré, je vais l'utiliser. cela simplifiera le VI.
OK, il faut d'abord remmplir le buffer avant de lancer la tâche d'écriture. Je n'ai pas la culture "automaticien", c'est un peu difficile d'apprécier les nuances.
Enfin, je n'ai pas de problèmes avec la faible intensité fournie en sortie de la carte PCI 6229 : les signaux sont envoyés vers un boitier de commande qui alimente directement les moteurs.
Enfin, je suis encore coincé dans une version 2011 de LABVIEW. Ce serait sympa si vous pouvez me convertir votre VI.
Merci encore de votre aide.
Pierre
le 09-02-2014 11:54 AM
Bonjour,
Je vois adresse la version de l'architecture pour LabVIEW 2011.
Cordialement