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] Synchronisation : comment ?


Sujet :

LabVIEW

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 45
    Points : 24
    Points
    24
    Par défaut [LabView] Synchronisation : comment ?
    Bonjour,

    Je suis en train de développer une application sous Labview pour tester puis valider mon système. Le but de mon VI (en PJ) est d'écrire toutes les 300ms sur le port série et de lire toutes les secondes sur ce même port.
    J'ai donc validé ces 2 fonctions independamment, mais exécutez-le et vous verrez, il reste bloqué dans ma boucle de lecture ..
    ( car si on enlève la boucle de condition de lecture, l'écriture se fait bien toutes les 300ms..)

    Questions ..
    1. Pourquoi ?
    2. Comment pourrais-je faire pour m'en sortir ..?

    P.S : Je comprend pas , je trouve pas la solution .. alors que c'est vraiment simple ce que je veux faire ..

    Merci .. !!
    ++
    Fichiers attachés Fichiers attachés

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    519
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 519
    Points : 298
    Points
    298
    Par défaut
    pourquoi est-ce que tu ne fais pas 2 boucles en parrallele cadencée aux 2 vitesses differentes ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 45
    Points : 24
    Points
    24
    Par défaut Boucles
    Salut, et merci pour ta reponse,

    J'ai deja essayé... en vain !

    En fait, si je mets une boucle while et que je teste par exemple uniquement l'ecriture, ça marche parfaitement bien. Mais avec une autre boucle en parrallèle (alors que c'est exactement la meme chose) ça ne marche plus du tout, enfin si ça marche, mais au niveau du séquencement, c'est nimporte quoi.. donc je sais pas ..

    Cf . P.J !
    Images attachées Images attachées  

  4. #4
    Invité
    Invité(e)
    Par défaut Un peu tard mais on ne sait jamais...
    Désolé pour la réponse tardive, mais je viens juste de m'appercevoir qu'il y avait des posts LabView
    Le principe de la boucle While Loop est correct, il suffit de lui ajouter le compteur Wait Until Next ms Sec pour avoir des temporisations (en ms) entre chaque itération.
    Pièce jointe 9505
    Par ailleurs, si ta 2nde boucle ne tourne pas c'est peut être en raison du Stop if True qui vaut True
    Dernière modification par Invité ; 11/11/2007 à 23h15.

  5. #5
    Membre éprouvé Avatar de reg64
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    959
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 959
    Points : 1 255
    Points
    1 255
    Par défaut
    salut,
    je suis d accord avec edno sur la 2eme boucle...dans la boucle d écriture tu fera qu un passage (une itération) puisque la condition pour sortir de ta boucle est toujours VRAIE, mais cette boucle (Ecriture) ne sera jamais executer car tu sort jamais de ta 1ere boucle(Lecture) puisque la condition Fin Boucle est toujours FAUX.
    ReG
    Reg
    CLAD

  6. #6
    Membre éprouvé Avatar de reg64
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    959
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France, Vienne (Poitou Charente)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 959
    Points : 1 255
    Points
    1 255
    Par défaut
    Désolé mais je viens de voir la peice joinnte du edno, Mais en fait je suis pa d accord avec sa reponse, je vois pas l interet de metre une boucle while si tu fais une itération (pour cela ya la boucle séquence.....)
    en plus avec ce principe tu peux pas lire le port tous 1s et ecrire tous les 300ms (si tu execute ton programme en boucle tu va lire tous les 1300ms et ecrire tou les 1000ms).
    la fontion "attente en ms " bloque ton VI un certain temps ici 1s, puis la 2eme "fonction attente en ms" bloque ton VI 30ms.
    Reg
    CLAD

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par reg64
    Désolé mais je viens de voir la peice joinnte du edno, Mais en fait je suis pa d accord avec sa reponse, je vois pas l interet de metre une boucle while si tu fais une itération (pour cela ya la boucle séquence.....)
    L'intérêt de faire plusieurs itération vient du problème posé dans le premier post, je suppose que c'est un système de supervision.
    Citation Envoyé par unluckymannn
    Le but de mon VI (en PJ) est d'écrire toutes les 300ms sur le port série et de lire toutes les secondes sur ce même port
    Sinon je confirme que pour l'exécution totale d'une itération le temps sera de 1300ms, mea culpa...

  8. #8
    Candidat au Club
    Inscrit en
    Janvier 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut modif exemple


    Je me suis permis de modifier l'exemple en :
    - ne configurant le port qu'une seule fois.
    - ne fermant le port qu'à le fin
    - en mettant l'écriture dans une boucle cadencée à 300ms
    - en mettant la lecture dans une boucle cadencée à 1000ms
    - en ajout une lecture du nombre de caractère dans le buffer pour déterminer le nombre de caractère à lire car si ce dernier n'est pas atteint nous tombons dans le cas d'un time out.

    Ensuite il est toujours possible de synchriniser les accès au port.

    Je n'ai pas testé l'exemple, j'espère qu'il pourra néanmoins vous aider.
    @+
    poulpi
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Réponses: 5
    Dernier message: 30/04/2015, 16h15
  2. Réponses: 3
    Dernier message: 11/07/2008, 13h34
  3. Réponses: 1
    Dernier message: 11/01/2007, 15h25
  4. synchronisation : comment faire?
    Par ®om dans le forum Langage
    Réponses: 2
    Dernier message: 15/07/2006, 15h44
  5. [Synchronisation] comment et avec quels outils ?
    Par Alec6 dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 14/02/2006, 08h23

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