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] Créer une rampe


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] Créer une rampe
    Bonjour,
    ceux qui ont déjà lus mes posts savent ce que je dois faire ^^.
    Mais bon, le problème de l'Helios je veux le règler plus tard, donc je me concentre sur la partie où je dois créer une rampe.
    Ci joint, un print screen de mon diagramme.
    Tout fonctionne comme je le voudrais excepté que je ne commence pas à zèro. Auriez-vous une idée pour que je commence à zéro ma rampe?
    Merci.

  2. #2
    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,
    ton prog marche bien : le seul problème c'est qu'il faut initialiser le registre à décalage à 0 pour avoir un point plus tôt et dans la boucle TQ tu doit prendre ce qui vient du registre pour le mettre en sortie et non ce que tu va mettre dans le registre à la fin de la boucle . Bon je crois qu'un dessin parle plus que des mots (cf fichier joint)
    Gabi
    Images attachées Images attachées  
    L'ami des tout petits

  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
    Je te remercie Gabi, il est vrai qu'un dessin est plus parlant, plus explicite que des paroles et des mots lol

    Concernant le graphe, je préfère le mettre dans la boucle afin de voir l'evolution de la rampe. j'ai également rajouter un temporisateur (le métronome quoi) pour qu'il effectue cela tous les 100ms.

    J'ai donc un petit soucis de graphe, si je met la tension nominale à 10V, il doit aller jusque 7,5V, il s'arrête déjà à 7,51V ce que je ne comprend pas très bien d'ailleurs, mais bon, ce n'est pas le plus important car cela crée une petite erreur seulement. Le réel problème c'est que, sur le graphe, l'échelle de temps ne concorde pas, avec le métronome règlé à 100ms, logiquement, cela va me faire 750 fois la boucle, le graphe m'indique cela, mais ce n'est pas le temps exact, comment corriger cela?

    Je voudrais également mettre, dès le départ, l'axe des Y à l'échelle max qui est donc 0.75 * la tension nominale (elle doit changer selon la valeur de la tension nominale rentrée). Est-ce possible de faire cela? Mes recherches ont été vaines, sans résultat jusqu'à maintenant.

    Merci

  4. #4
    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
    T'inquiète, c'est de l'ordre du faisable. Pour commencer, si tu veux toi même donner les valeurs aux abscisses, il te faut un grapheXY. Mais ce n'est pas un graphe déroulant alors il faut accumuler les données à tracer et tout rebalancer dans le graphe à chaque boucle.
    Pour faire simple () tu dois construire un cluster (dans le diagramme) dans lequel tu met 2 valeurs: l'abscisse et l'ordonnée. Va voir dans l'aide du graphe XY, ce sera expliqué je pense. Ce cluster doit être ajouté à un tableau (avec "construire un tableau") qui tourne dans un registre à décalage, et qui va dans le graphe XY.
    Pour le problème de l'échelle, fais un clic droit sur le graphe dans le diagramme et choisis Créer->nœud de propriété->échelle (ou un truc comme ça). Prend la bonne, du style "Y max"; une fois placée dans le diagramme tu peux la mettre en écriture avec le menu contextuel de la souris.
    Essaie de trouver et si tu veux des dessins, appelle à l'aide
    L'ami des tout petits

  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
    Justement, il me faut un graphe déroulant, pour montrer que l'on a bien une rampe. Merci pour les échelles, j'ai fait comme tu m'a dit, même si j'ai des accrochages de différentes échelles, au final celui que je veux reste. merci.

  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
    Pour l'échelle des abscisses, le graphe XY est indispensable il me semble. Je te passe un ex en LV7.1, avec le 8.6, t'as pas de pb d'ouverture.

    Par contre j'avais oublié de dire: fais un clic droit sur les axes du graphe XY et décoche les échelles automatiques. De plus dans l'ex, j'ai aussi fixé le max de l'axe des abscisses. Et un dernier truc, il vaut mieux donner une condition d'arrêt à la boucle et non le contraire. Ça permet entre autres de s'arrêter à 7.5V par exemple...

    Pour le reste, j'ai un peu bidouillé les init avant la boucle: c'est juste pour avoir des contrôles sur le pas en volts, savoir le nombre de points... Je te laisse l'arranger comme tu veux.

    Bon code
    Fichiers attachés Fichiers attachés
    L'ami des tout petits

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 55
    Points : 39
    Points
    39
    Par défaut
    Il y a aussi un VI Express pratique qui permet de générer un signal arbitraire depuis un fichier .lvm (données tabulées)
    ça peut être très pratique si tu veux générer des signaux plus complexes

  8. #8
    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
    Bonjour,
    Voilà, mon programme fonctionne (enfinnnnn loool) mais bon ce n'est que le début du ptit programme final que je dois réaliser.
    Cependant, durant la rampe, je n'ai pas le bon temps, en fait, je dois avoir une augmentation de 0.01 V toutes les 0.1sec c'est-à-dire 0.1V/sec avec un pas maximum de 0.01 V et j'obtiens 0.1V en 0.12 sec, j'ai remarqué qu'il faisait un ptit temps d'arret quand ça passe tous les 0.02 à 0.03 et tous les 0.07 à 0.08.
    A quoi serait dû ce petit décalage qui est minime mais très important pour respecter les normes?

  9. #9
    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,
    tu a essayé le vi express pour ça? J'ai réessayé le bout de code que je t'ai passé et tout fonctionne bien avec le bon pas et la bonne période d'échantillonnage. Pas de ralenti non plus.
    L'ami des tout petits

  10. #10
    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
    non, en fait j'ai réaliser après où se situait le problème. Je dois lire, écrire et relire un appareil, et entre chaque étape j'avais mis un timer, après quelques essais de différentes valeurs de timer, je suis tombé sur la bonne période
    Merci encore.

    edit : je n'arrive pas à modifier l'échelle des temps, je voudrais un maximum de 8400 mais l'échelle s'arrete à 1023, pourtant je modifie dans les propriétés des axes et tout, mais pas de changement, comment faire?

    re edit : C'est bon j'ai trouvé
    Je sens que j'ai passé le niveau débutant à normal mdrr

  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
    Arfffff, un autre soucis lool, les problèmes s'empilent

    Ma rampe fonctionne à merveille, j'ai un graphe qui montre bien l'évolution de la rampe. Mais maintenant je dois réaliser, après la rampe, un palier, je dois rester à la valeur max de la rampe durant 300 sec. Ensuite faire un échelon, durant une certaine période et puis un rampe descendante. je pense pouvoir le faire, mais pas de l'incrémenter dans le graphe. Quelqu'un aurait une solution, pour pouvoir continuer le graphe?

    Dans ma première séquence, j'ai une boucle while pour avoir le graphe et tout, je pense mettre chaque étape dans les séquences successives.

  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
    Salut,
    Les séquences, c'est effectivement la solution. Avec une variable locale, ça devrait le faire (clic droit sur le graphe dans le diagramme->créer->variable locale). Et ainsi tu peux envoyer les données dans le graphe dans toutes tes boucles.
    PS: si tu a bien pris le grapheXY, n'oublie pas de connecter les registres à décalage entre les boucles. Et d'ailleurs, dans ce cas, la structure séquence n'est plus utile .
    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
    Hmmmm merci pour ton idée de la variable; cela marche bien.

    Mais j'ai un problème de temps et d'échelle, je ne comprend pas.

    J'ai mis en pièces jointes des print screen de chaque séquence.

    L'échelle du graphique ne correspond à rien d'après mes calculs. logiquement les séquences durent plus longtemps car je dois gérer une lecture et écriture qui demande un peu de temps. les 2 rampes doivent normalement avoir la même pente au signe près bien entendu. les 2 paliers se déroulent sur la même période de temps ce qui est bon.

    Normalement je dois avoir 1min30sec pour la rampe puis 5 min pour le palier encore 5 min pour le palier et 3 min 30 pour le dernier palier lorsque je rentre la valeur 12. quand je fais tourner le programme avec le sous vi de lecture et écriture, j'obtiens 1min50sec->5min->5min->3min. même avec cela l'échelle des temps n'est pas bon, il reste le même que sur le print screen que j'ai envoyé, on dirait que cet échelle représente plutôt le nombre d'itération que le temps. Pourriez-vous m'aider à résoudre le problème? Ne fut-ce qu'avec l'échelle déjà.

    Merci

  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,
    va voir dans les noeuds de propriété du graphe: XScale->Offset and Multiplier->Multiplier.
    C'est le nombre par lequel toute l'échelle des x sera multipliée. Mais pour que ça marche, il faut que l'intervalle de temps entre 2 points reste le même du début à la fin.
    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
    Salut tout le monde.

    En fait, je viens de remarquer que mon axe des x ne correspond pas à l'échelle des temps mais plutôt au nombre d'étapes, très bizarre.

    Que dois je faire pour le convertir en échelle des temps?

    Je passe de 0V à 9V en 2160 étapes et je dois en réalité avoir 1 min 30 sec.
    Je passe de 0V à 0.1V en 24 étapes et, normalement, je dois avoir 1 sec.

  16. #16
    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,

    c'est pas bizarre, les Waveform Graph et Chart sont comme ça, c'est tout. Pour multiplier l'échelle des x par une constante, cf. ce que j'ai dis juste avant.

    Si tu veux un vrai graphe avec une vraie échelle de temps, il est temps de te mettre au GraphXY.
    L'ami des tout petits

  17. #17
    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
    hmmmmm mais si je comprend bien le graphe XY me donnera le graphique qu'à la fin?
    Car moi je veux voir en même temps l'évolution de la courbe pendant que le programme tourne, qui plus est j'ai 4 séquences qui doivent me renvoyer vers le graphe tout en continuant la courbe. j'ai bien réussi à faire cela avec le waveform chart tout en restant bien continue, grâce à la variable locale.

    Je crois que je vais garder mon waveform chart alors.

    edit : pffff, je viens de regarder, et y a rien de constant :s
    quand je règle le multiplier pour la rampe, ça va pour la rampe mais pas pour le reste, et c'est la même chose avec le reste. j'ai mis des multiplier dans chaque séquence, ça va pas non plus parce que ça me modifie tout le graphe et non pas juste une partie :s:s

    et le graphe XY je n'arrive pas à le configurer correctement pour qu'il puisse me mettre les 4 séquences dans le même graphe en restant continu.

    Merci pour votre aide.

  18. #18
    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,
    regarde le vi "rampe" que j'ai envoyé dans un des messages précédents.
    Il y a le graphe XY et comment le construire. La courbe est un tableau 1D de points qui tourne dans un registre à décalage. Un point est un cluster de 2 valeurs: le x et le y.

    Le défaut c'est que quand tu envoies qq chose au graphe XY, il efface tout et redessine, c'est pourquoi il faut garder en mémoire les données dans le tableau1D et tout lui renvoyer à chaque boucle (c'est le rôle du registre à décalage). Le code est un peu alourdi, c'est moins optimisé qu'un graphe déroulant, mais le résultat de visu est le même: le graphe se trace petit à petit à chaque boucle.

    A+
    L'ami des tout petits

  19. #19
    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
    je crois que je vais garder mon waveform, en ajoutant un commentaire sur l'axe des x et d'afficher, sur le côté, le temps écoulé.
    J'ai trouvé une manière en fasaint une soustraction de tick count, mais je n'ai pas su utilisé le VI elapsed time. Pourtant j'ai regardé l'aide mais je n'y ai pas trouvé ma solution.

    Lequel est plus fiable? Car je n'obtiens pas des valeurs assez stable avec le tick count, ça varie beaucoup.

  20. #20
    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
    Je dirais que le tick count est le plus fiable, mais uniquement parce que je n'ai jamais eu à utiliser autre chose. Tu dois le mettre dans un registre à décalage et faire une soustraction des temps à chaque boucle. Tu t'y est bien pris de cette manière?
    Essaie le pg en fichier joint, chez moi, chaque mesure de temps a au max 1ms d'écart avec le temps imposé.
    A+
    Fichiers attachés Fichiers attachés
    L'ami des tout petits

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/12/2008, 17h12
  2. Réponses: 1
    Dernier message: 25/06/2008, 11h19
  3. Créer une vidéo sous labview
    Par Fwanck! dans le forum LabVIEW
    Réponses: 2
    Dernier message: 18/06/2008, 10h49
  4. Réponses: 1
    Dernier message: 13/05/2008, 13h44
  5. [LabView 8.5][Débutant] Créer une base de données
    Par yoann23 dans le forum LabVIEW
    Réponses: 2
    Dernier message: 13/03/2008, 17h34

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