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 :

[LabVIEW 8.6] Temporisation


Sujet :

LabVIEW

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 117
    Points : 69
    Points
    69
    Par défaut [LabVIEW 8.6] Temporisation
    Bonjour, je dois réaliser un train de 10 impulsions, le temps de montée est de 1ms, l'impulsion (le palier) doit durer 5s, revenir à sa tension nominale en 1ms et y rester durant 10s et recommencer 10 fois cela.

    j'ai mis dans 1ère séquence un wait (la montre) d'1ms. Dans la séquence suivante, je dit de monter de +25% avec un wait until nex ms multiple (le métronome) de 5s. La 3ème séquence est la même que la 1ère. Dans la dernière séquence, j'envoie la tension nominale avec le métronome réglé à 10s. Le tout se faisant dans une boucle for.

    Je ne suis pas sûr de respecter les temps car je ne vois pas encore exactement la différence entre le wait et le wait until next ms multiple. Pensez-vous que la méthode que j'ai faite est bonne ou pas du tout?

    Merci de vos conseils.

  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
    Salut,

    Premier point: tu fonctionne sous Windows qui est multitache. Donc, n'espère pas pouvoir mettre une tempo de 1 ms. Au mieux quelques dizaines semblent possible.

    Concernant le Wait et le Wait Until, le premier fait une tempo simple de 100ms (par exemple), et le second fait une tempo de 100ms depuis un dernier appel. Ainsi, si entre 2 tempo, tu as un temps de cycle de 60ms pour des opérations, la seconde tempo ne fera que 100 - 60 = 40 ms.
    Cela permet de faire un cadencement plus précis en tenant compte des temps plus ou moins variables de cycles opérations.

    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
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 117
    Points : 69
    Points
    69
    Par défaut
    Merci pour ta réponse Scyrius.

    Donc pour éviter cela, je viens d'imaginer une tension carrée avec un rapport cyclique de 33,3%.

    J'ai vu qu'on savait simuler un signal carré, mais moi je dois commander ce signal pour l'envoyer à l'alimentation, Quel VI utiliser? en existe-t-il un qui me permettrait non pas de simuler mais d'envoyer?

    Y aurait-il aussi un moyen de règle le temps de montée et de descente?

    Merci

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 67
    Points : 69
    Points
    69
    Par défaut
    Salut,

    Par rapport à l'envoi je pense qu'il faut un peu plus de précision.

    Comment pilotes-tu ton alimentation?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 117
    Points : 69
    Points
    69
    Par défaut
    A l'aide d'un acquisiteur de données qui peut piloter une tension, le Fluke Helios.

    Il peut sortir une tension de 0 à 10 V.

    Mon alimentation est un Philips avec un calbire de 0 - 40V.

    Le pilotage est bon, mais faut que je règle la tempo.

    P.S. : j'ai du créer moi-même avec le VISA pour commander l'Helios, entre chaque opération de lecture et d'écriture j'ai mis un wait de 50 ms.


    j'ai trouvé une fonction permettant de faire un signal carré mais j'ai des petits soucis. Au début, j'ai bien 12V continu, après je dois avoir mon signal carré et c'est là que le 12V passe à une autre valeur d'un seul coup.

    J'ai mis en pièces jointes ce que je veux vraiment. Comment faire en sorte que le offset que je met ne soit valable que pour la séquence dans laquelle il se trouve ? Quelqu'un aurait une idée du comment règler ce problème ? merci

    Edit : je viens de me rendre compte d'une chose, j'ai une période de 17 ms mais moi je voudrais 15 002 ms (1 ms pour le temps de montée et 1 ms pour le temps de descente). Une idée à ce sujet aussi?

  6. #6
    Membre averti

    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 190
    Points : 305
    Points
    305
    Par défaut
    Salut,
    me v'la de retour de vacances, ça fait du bien! Bon sinon je viens de lire rapidement le poste et le mot VISA m'a sauté aux yeux. C'est pas le centre de la question, mais je te conseille d'utiliser des vi qui gèrent directement le bon protocole de communication. En ce qui me concerne, j'avais piloté des appareils par GPIB et en remplaçant les vi VISA par les vi GPIB, mes temps de mesure sont passés de 400ms à 40ms!

    Sinon, une autre recommandation, c'est de sortir les nœuds de propriété de ta boucle for dans la séquence 0. Ça va alléger l'exécution.

    Si j'ai tout bien compris, ta variable Numeric est à 12, c'est bien ça?

    Autre détail: quand tu fais "1.25*numeric - numeric", c'est plus simple de faire 0.25*numeric. Ce qui est aussi valable pour le "numeric - 0.75*numeric".

    Sinon, je ne comprends pas comment tu obtiens 22.5V au début. Ca devrait bien être 12 d'après la séquence 0. Un effet des offset? Commence par résoudre ce mystère. Surtout que ce n'est pas dû à une initialisation puisque la valeur revient ensuite...

    Quand tu auras les bonnes valeurs de tension, occupe-toi des tempos
    L'ami des tout petits

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 117
    Points : 69
    Points
    69
    Par défaut
    Salut,

    J'utilise le VISA car je pilote via RS232.

    Concernant les calculs, faut pas faire attention, c'est quand je suis dans mon délire ça

    La variable numérique est à 12 mais peut être différente bien entendu.

    En fait, au début, j'ai bien 9V pour la séquence 0; et dès qu'il commence la séquence 1, le palier à 9V passe d'un seul coup à 22,5V à cause de l'offset que j'ai mis à la séquence 1 qui agit sur tout l'ensemble et non juste à partir de ce moment la.

    Avec 4 graphes différents (1 pour chaque étape), j'ai une temporisation à peu près bonne. ex : au lieu de 90 s j'ai 91,435 s.

  8. #8
    Membre averti

    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 190
    Points : 305
    Points
    305
    Par défaut
    Dans ce cas, si tu as besoin de mettre des offsets juste sur une partie du graphe, il faut l'ajouter directement aux valeurs y que tu lui envoies. Tu peux pas faire autrement
    L'ami des tout petits

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 117
    Points : 69
    Points
    69
    Par défaut
    La toute première fois, j'avais créer moi-même une impulsion avec un waveform. et puis dans le vi général, je mettais la sous vi de l impulsion dans une boucle for, la réalisant 10 fois afin d'avoir mon train d'impulsion.

    j'ai le graphe pour une impulsation dans le sous-vi. j'aimerais avoir un graphe dans mon vi général avec l'ensemble du train d'impulsion, serait-ce possible?

  10. #10
    Membre averti

    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 190
    Points : 305
    Points
    305
    Par défaut
    C'est un problème de le tracer uniquement quand le sous vi finit son exécution? Sinon il suffit de mettre en sortie du sous vi le tableau de points.

    S'il le faut en temps réel, le mieux est de modifier le sous vi: au lieu de lui faire faire toute l'impulsion d'un coup, il doit faire un point d'impulsion à chaque fois qu'il est appelé.

    Pour garder en mémoire où il en était à l'appel précédent, rajoute les paramètres nécessaires. Si tu ne veux pas mettre de param en plus, tu peux utiliser dans le sous vi une boucle While (avec la condition de sortie toujours à vrai) qui englobe le tout et qui garde en mémoire les valeurs de l'appel précédent grâce à des registres à décalage. Tu sais comment t'y prendre?
    L'ami des tout petits

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 117
    Points : 69
    Points
    69
    Par défaut
    Salut,
    Désolé de répondre seulement maintenant, j'étais malade (je le suis toujours ).

    Les registres à décalages c'est pas trop mon truc, j'ai déjà vu l'utilisation via des tutoriaux mais bon, c'est pas trop ça.

    Entre temps j'ai eu une idée pour créer 2 trains d'impulsions (en fait c'est mon professeur conseil qui me l'a proposé lol). Créer un tableau (2 colonnes) avec chaque valeur de tension avec sa durée et puis d 'indexer ce tableau dans une boucle while. Comme j'aurais mon indice temporel, j'aurais plus facile avec un graphe XY me semble-t-il. Je vais essayer cela aujourd'hui, je te tiendrai au courant Gabi.

    Merci.

    edit : j'ai fait comme je l'avais dit. cependant j'ai un soucis d'affichage sur le graphe. je n'arrive pas à avoir un affichage continu, ça apparaît soudain une fois l'échantillon fait et quand il passe à l'impulsion, ça commence à zéro et non à partir du dernier point. Peux tu m'aider Gabi, toi qui est le maître du graphe XY ?

  12. #12
    Membre averti

    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 190
    Points : 305
    Points
    305
    Par défaut
    Hello,
    le maitre tout puissant du graphe XY va parler!

    Mais avent ça une courte pub pour le repos des yeux: je vois que tu construis un tableau de constantes en utilisant la fonction build array; mais tu sais que tu peux directement faire un tableau de constantes dans le diagramme, ça prend moins de place.

    Sinon pour le graphe: 1er conseil faire les choses à l'endroit: le cluster que tu rajoutes dans le build array, met le APRES le tableau de clusters qui revient du registre à décalage... Sinon tes points veulent se mettre avant les précédents. C'est pas trop gênant puisque tu leur fournis un X et pas que le Y, mais si tu lui demande de tracer la courbe, il les prend dans l'ordre.

    Enfin bon essaie, inverse les entrée du build array, je pense que ca ira mieux.

    A+
    Images attachées Images attachées  
    L'ami des tout petits

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 117
    Points : 69
    Points
    69
    Par défaut
    Désolé Gabi, mais je ne vois pas exactement ce que tu me dis concernant le cluster que je dois mettre après le tableau.

    J'ai inversé les entrées du build array, mais toujours pareils, je n ai pas d'affichage point par point ni en continu :s:s

    pour l'affichage je pense que je fait une fausse manipulation, en fait le premier tableau correspond a la tension et le 2eme au temps (ex : 1*12 V durant 30 sec, 1*12V durant 1 msec, 1.25*12V durant 5 sec, ainsi de suite) c'est bien ce que je veux faire mais graphiquement je n'arrive pas à le representer. je met la VI en versin 6.0, je pense que ca tu pourras l ouvrir Gabi

  14. #14
    Membre averti

    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    190
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 190
    Points : 305
    Points
    305
    Par défaut
    Salut,
    je suis passé à côté d'un autre truc presque aussi simple... En fait, n'oublie jamais (JAMAIS ) que tu envoies les X dans le cluster. Alors que les 30, 0.001, 5, etc, ce ne sont pas les X, mais les Delta X !!! Tu me suis?

    Si t'as compris, c'est simple à arranger.
    L'ami des tout petits

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Février 2009
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2009
    Messages : 117
    Points : 69
    Points
    69
    Par défaut
    c est juste, c'est bien des delta X, j'ai corrigé cela.

    Je te remercie grandement de me l'avoir signalé, après quelques chipotages en plus, j'ai réussi finalement

    mais je crois que je vais encore avoir besoin de toi pour une réalisation de menu hehe

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. temporisation sur labview
    Par okitrinaw dans le forum LabVIEW
    Réponses: 2
    Dernier message: 21/05/2012, 18h40
  2. Réponses: 5
    Dernier message: 06/05/2005, 19h10
  3. [debutant]temporisation
    Par sly33 dans le forum Débuter
    Réponses: 4
    Dernier message: 12/08/2004, 13h56
  4. Temporisation pendant verouillage de l'objet matable
    Par Rdjedidene dans le forum Administration
    Réponses: 14
    Dernier message: 09/06/2004, 10h52
  5. temporisation
    Par forthx dans le forum C
    Réponses: 5
    Dernier message: 25/06/2003, 15h49

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