IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

LabVIEW Discussion :

Augmenter la fréquence pour accélérer un micro moteur


Sujet :

LabVIEW

  1. #1
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 20
    Points : 5
    Points
    5
    Par défaut Augmenter la fréquence pour accélérer un micro moteur
    Bonjour,

    Pour piloter des micros moteurs, j'utilise les sorties numériques d'un boitier National Instrument SC-2345, ce boitier est relié à une carte DAQCard 6024E et elle même relier au PC.

    Le programme sous LabView fonctionne bien.....le micro moteur tourne.....mais très lentement. Pour que ce moteur fonctionne normalement il faudrait une fréquence de fonctionnement de 200HZ.
    Est-ce-que je peux augmenter la fréquence avec LabView? Si oui avec quel bloc?

    Merci d'avance pour vos réponses.

  2. #2
    Membre chevronné

    Inscrit en
    Avril 2005
    Messages
    1 144
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 144
    Points : 1 973
    Points
    1 973
    Par défaut
    Bonjour,

    Normalement, tu n'es pas limité ( tout au moins a ce niveau ) en fréquence.
    A mon avis, la limitation est due à la conception de ton programme: je pense que tu envoies tes commandes au fil de l'eau et donc que tu es limité par le système. Si tu veux aller plus vite, il faut que tu déporte le problème sur la carte (en gros, tu charge dans la carte un paquet de points qu'elle se charge de générer à la fréquence voulue).

    Peux-tu confirmer et éventuellement poster un VI que l'on regarde?

    a+
    L'urgent est fait, l'impossible est en cours, pour les miracles, prévoir un délai et un bon thermos.
    Quant aux MP techniques, autant les poster sur le forum approprié car, là, ils auront des réponses.

  3. #3
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 20
    Points : 5
    Points
    5
    Par défaut Salut
    Salut Scyrius,

    Pour info je n'ai donc que 16HZ en fonctionnement.

    Je te fais parvenir le VI.

  4. #4
    Membre chevronné

    Inscrit en
    Avril 2005
    Messages
    1 144
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 144
    Points : 1 973
    Points
    1 973
    Par défaut
    Hello,

    Je viens de jeter un coup d'œil à ton VI.

    Premier point, il est pas très lisible: je n'ai qu'un écran 1280*800 et j'ai du pas mal jonglé avec les ascenseurs. Un des 10 commandements du développeur LV est de faire tenir son code sur un écran.

    Coté réelle amélioration, je te dirai d'éviter de faire des initialisation DAQ à chaque fois que tu en a besoin. Tu le fait au début (création et démarrage de la tache). Ensuite tu peux écrire tes datas quand tu veux dans ton programme. Je pense que tu devrais gagner un temps fou en exécution.

    Autre point à voir: tu ouvres 4 taches en parallèles. Je te conseille d'en ouvrir une seule composée des 4. Tu aura surtout une grosse simplification du VI.

    Dernier point: Tu n'envoies qu'un seul point à chaque ligne à la fois. Je te conseille d'en envoyer plusieurs a la fois (N chanels N samples).

    Pour résumer, tu utilises un VI pour écrire un bit sur une ligne. Je te propose d'en utiliser un autre pour envoyer un train sur tes 4 lignes.

    Regarde l'exemple Write Dig Chan-IntClock.vi situé dans examples\DAQmx\Digital\Generate Values.llb. Cela devrais t'aider sur le principe.

    a+ et bon courage.
    L'urgent est fait, l'impossible est en cours, pour les miracles, prévoir un délai et un bon thermos.
    Quant aux MP techniques, autant les poster sur le forum approprié car, là, ils auront des réponses.

  5. #5
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 20
    Points : 5
    Points
    5
    Par défaut
    Salut,

    Merci de m'avoir mis sur la voie.
    J'ai donc suivi tes conseils. J'ai donc 4 sorties (line1, line3, line5 et line7) qui ouvre une tâche.
    Suite aux modifications apportées j'ai plusieurs questions:

    - Comment fait-on correspondre une sortie (line1 par exemple) à la donnée du bloc "Ecrire" (Numérique 1D Bool1 1 Echant). Pour line1 il faut sélectionner 1 dans le champ booléen du bloc "Ecrire"??

    - Je peux lancer le programme mais un défaut apparait (voir copie d'écran:erreur.jpg).

    - Vu les exemples de LabView, pour avoir réellement 200HZ en sortie, il faudra que je rajoute une horloge de cadencement par la suite non?

    Merci pour tes réponses

  6. #6
    Membre chevronné

    Inscrit en
    Avril 2005
    Messages
    1 144
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 144
    Points : 1 973
    Points
    1 973
    Par défaut
    Salut,

    Tu es sur la bonne voie.

    Concernant l'erreur, je pense qu'elle est normale car tu purge la tache après chaque envoi donc, tu perd le réglage de la tache. Tu purge à la fin uniquement.

    Concernant le principe, le premier élément du tableau va dans la première ligne de la tache et ainsi de suite. Tu as bien compris le principe.

    Pour le cadencement, tu as encore raison, tu définis ta clock puis tu envoies un tableau 2D de points. Il faut juste bien régler les valeurs. Cela te fera supprimer la séquence.


    Dernier détail par contre, tu charges les points et ensuite tu démarres la tache.


    Bravo et a+
    L'urgent est fait, l'impossible est en cours, pour les miracles, prévoir un délai et un bon thermos.
    Quant aux MP techniques, autant les poster sur le forum approprié car, là, ils auront des réponses.

  7. #7
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 20
    Points : 5
    Points
    5
    Par défaut
    Salut.....si je suis sur la bonne voie....c'est plutôt positif


    - J'ai donc rajouté un bloc de cadencement. Est-il bien paramétré pour 200HZ?
    Dans le champ "vitesse" c'est une valeur en HZ que je dois rentrer ou un nombre de points? (Car j'ai un défaut: La valeur demandée n'est pas une valeur supportée -----> fichier erreur.jpg).

    - J'ai rajouté aussi un tableau 2D et supprimé la séquence. Le champ supérieur booléen définit la valeur de la sortie et le champ booléen inférieur (remplace la séquence alors?) s'incrémente de 1 (de 0 à 3 dans ce cas là) à chaque échantillonage?

    Merci et à+

  8. #8
    Membre chevronné

    Inscrit en
    Avril 2005
    Messages
    1 144
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 144
    Points : 1 973
    Points
    1 973
    Par défaut
    Salut,

    Concernant l'échantillonnage, il existe 2 modes: le mode continu et le mode fini.
    En gros, pour le second, tu définis dés le départ tout les points à émettre et une fois que c'est fini, cela s'arrête. Pour le premier, il te faut alimenter de temps en temps la carte avec des données. Cela peux donc durer des jours.
    En ce qui te concerne, il te faut le second (mode fini): tu charge un profil et la carte joue tous les points.
    Par contre, tu dois définir la période d'échantillonnage ainsi que le nombre de points à générer. J'en revient à l'exemple des précédents posts où l'on envoie 1000 points qui seront exécutés à 1000 hz. Tu définis bien le 200Hz mais tu ne définit pas combien de temps ( le nombre de points)...



    voili
    L'urgent est fait, l'impossible est en cours, pour les miracles, prévoir un délai et un bon thermos.
    Quant aux MP techniques, autant les poster sur le forum approprié car, là, ils auront des réponses.

  9. #9
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 20
    Points : 5
    Points
    5
    Par défaut
    Salut,

    Je t'envoie en pièce jointe la ptite modification apportée par rapport à ton dernier mail.

    - Il ne vaudrait pas mieux utiliser le mode continu? Vu que je ne connaitrai pas pas le nombre de données à envoyer au départ (car plusieurs consignes/nombres de pas moteur pourront mettre envoyés). En continue, le programme pourrait gérer un nombre indéfinit de consignes et je pourrais arrêter le programme par le biais d'un bouton "arrêt". Alors que si j'utilise le mode fini, j'imposerai et je limiterai le nombre de données (nombre de pas...) à émettre non?

    - J'ai toujours le même message d'erreur, d'après le message l'erreur viendrait du bloc Numérique 2D non?
    A vrai dire je séche sur ce point.

    - Concernant le tableau 2D. Le champ supérieur booléen définit la valeur de la sortie et le champ booléen inférieur s'incrémente de 1 (de 0 à 3 dans ce cas là) à chaque échantillonage?

    A+

  10. #10
    Membre chevronné

    Inscrit en
    Avril 2005
    Messages
    1 144
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 144
    Points : 1 973
    Points
    1 973
    Par défaut
    Salut,

    Il te manque un dernier VI à ta chaine comme sur l'exemple ( je l'avais oublié malgré son importance) : le VI Wait Until Done qui attend que toute les données sont envoyée avant de permettre la fin d'une tache.

    Concernant le mode Continu, je ne te l'avais pas proposé car il nécessite une mise en œuvre plutôt complexe mais il correspond bien à ce que tu penses. En gros, il te faut une boucle cadencée à une certaine fréquence (200ms par ex) qui met 200ms de points dans le buffer.

    Concernant ton erreur, je ne sais pas trop étant donner que je ne peux rien tester. Je ne peux donner que des pistes: je pense que le tableau ne correspond pas a la fonction que tu veux utiliser.
    Je regarde et je te réponds dans la journée.

    a+
    L'urgent est fait, l'impossible est en cours, pour les miracles, prévoir un délai et un bon thermos.
    Quant aux MP techniques, autant les poster sur le forum approprié car, là, ils auront des réponses.

  11. #11
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 20
    Points : 5
    Points
    5
    Par défaut
    Salut,

    J'ai donc rajouter le VI manquant (Wait Until Done).

    J'ai modifié aussi le programme en rajoutant une boucle cadencée. Malgré l'erreur remontée.....l'architecture serait bonne?

    A+

  12. #12
    Membre chevronné

    Inscrit en
    Avril 2005
    Messages
    1 144
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 144
    Points : 1 973
    Points
    1 973
    Par défaut
    Bonjour,

    Je t'ai mis en PJ un nouveau VI épuré de ce qui ne sert a rien pour le moment.

    Essaie de l'exécuter et de me dire s'il marche.

    Merci
    Fichiers attachés Fichiers attachés
    L'urgent est fait, l'impossible est en cours, pour les miracles, prévoir un délai et un bon thermos.
    Quant aux MP techniques, autant les poster sur le forum approprié car, là, ils auront des réponses.

  13. #13
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 20
    Points : 5
    Points
    5
    Par défaut
    Salut,

    Je ne peux pas exécuter ta VI (voir défaut VI.jpeg). Visiblement tu dois l'avoir modifier avec une version de LabView 8.5. J'ai LabView 8.2. Il y a incompatibilité entre les 2 versions?

  14. #14
    Membre chevronné

    Inscrit en
    Avril 2005
    Messages
    1 144
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 144
    Points : 1 973
    Points
    1 973
    Par défaut
    Ci joint une V8.0, cela devrait marcher
    Fichiers attachés Fichiers attachés
    L'urgent est fait, l'impossible est en cours, pour les miracles, prévoir un délai et un bon thermos.
    Quant aux MP techniques, autant les poster sur le forum approprié car, là, ils auront des réponses.

  15. #15
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 20
    Points : 5
    Points
    5
    Par défaut
    Salut,

    Merci ce VI fonctionne bien. Mais j'ai toujours le même type de défaut qui apparaît.

    Comme il faudrait utiliser un mode continu pour le cadencement.....on avait pas dit qu'on utiliserait une boucle cadencée?


    Je te fais parvenir la table de vérité que je dois appliquer au micro moteur.
    La consigne de commande (envoyée par une autre application) sera donc en nombre de pas moteur. En fait 1 pas moteur correspond à 1 table de vérité (de l'étape 1 à 4). Il faudra reboucler autant de fois la table de vérité que le nombre de pas voulu. Et ce micro moteur devra donc tourner à une fréquence de 200HZ.

    Merci pour ta patience

  16. #16
    Membre chevronné

    Inscrit en
    Avril 2005
    Messages
    1 144
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 144
    Points : 1 973
    Points
    1 973
    Par défaut
    Hello,

    Avant d'attaquer la partie cadencement, il vaut mieux d'abord régler l'erreur.

    Peux-tu poster le message d'erreur?

    merci,
    a+
    L'urgent est fait, l'impossible est en cours, pour les miracles, prévoir un délai et un bon thermos.
    Quant aux MP techniques, autant les poster sur le forum approprié car, là, ils auront des réponses.

  17. #17
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 20
    Points : 5
    Points
    5
    Par défaut
    Voici le message d'erreur remonté avec le VI que tu m'as envoyé.

    A+

  18. #18
    Membre chevronné

    Inscrit en
    Avril 2005
    Messages
    1 144
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 144
    Points : 1 973
    Points
    1 973
    Par défaut
    peux-tu retirer les entrées Sources (onboard) et le front montant du VI Sample Clock?

    Je sens que ça va être rigolo de débuggé via post
    L'urgent est fait, l'impossible est en cours, pour les miracles, prévoir un délai et un bon thermos.
    Quant aux MP techniques, autant les poster sur le forum approprié car, là, ils auront des réponses.

  19. #19
    Futur Membre du Club
    Inscrit en
    Mars 2009
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Mars 2009
    Messages : 20
    Points : 5
    Points
    5
    Par défaut
    Après avoir retiré les entrées Sources (onboard) et le front montant du VI Sample Clock.......j'ai toujours le même défaut remonté précédemment.


    Oui ça risque d'être rigolot

    A la rigueur si tu veux....et suivant tes disponibilités....on pourrait débuggé ça par téléphone.

    En attendant...bon week end.
    A+

  20. #20
    Membre chevronné

    Inscrit en
    Avril 2005
    Messages
    1 144
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 1 144
    Points : 1 973
    Points
    1 973
    Par défaut
    C'est pas logique tout çà. essaies de passer en une voie par ligne.
    L'urgent est fait, l'impossible est en cours, pour les miracles, prévoir un délai et un bon thermos.
    Quant aux MP techniques, autant les poster sur le forum approprié car, là, ils auront des réponses.

Discussions similaires

  1. [c#]Augmenter taille police pour tout le site
    Par Filippo dans le forum ASP.NET
    Réponses: 8
    Dernier message: 30/03/2007, 12h42
  2. Un conseil pour accélérer la lecture des tables
    Par pierrot67 dans le forum Bases de données
    Réponses: 5
    Dernier message: 31/12/2006, 22h37
  3. Recherche script pour creation d'un moteur de recherche
    Par Diss dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 24/08/2006, 16h36
  4. augmenter la taille pour une table mysql
    Par zidenne dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 21/08/2006, 16h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo