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 :

Réaliser des actions en simultané


Sujet :

LabVIEW

  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 51
    Points : 27
    Points
    27
    Par défaut Réaliser des actions en simultané
    Bonjour,
    Je souhaiterai réaliser un contrôle qui s'effectuerait en parallèle de ma boucle générale.
    Plus concrètement, je voudrais tester si l'état d'un boolean est vrai pendant une certaine période mais sans bloquer mon système.
    Comment puis-je m'y prendre ?

    J'ai déjà essayé d'attendre la période puis de recomparer si le boolean était toujours vrai mais en fait, j'ai remarqué que le changement d'état n'était pas pris en compte. L'état semble identique et pourtant en réalité non.

    Auriez-vous une idée ?

    Merci d'avance.

  2. #2
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Avril 2010
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Avril 2010
    Messages : 210
    Points : 338
    Points
    338
    Par défaut
    Salut,

    Tu peux mettre une boucle en parallèle de ta boucle principale sans aucun souci (deux boucles While l'une à coté de l'autre).
    Pour un code clair, il est conseillé d'utiliser la forme Producteur / consommateur, mais on peut utiliser ce principe de parallélisme beaucoup plus simplement.

    Tout ça pour dire que deux boucles fonctionnent très bien avec Labview. C'est le principe de ce logiciel. Après, pour une application à ton programme, il faudra nous en dire plus et/ou nous mettre ton code (simplifié) en PJ$

    Losaque

  3. #3
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 51
    Points : 27
    Points
    27
    Par défaut
    Merci d'avoir été aussi rapide

    Je sais que deux boucles peuvent fonctionner en même temps, je pense que je me suis mal exprimée... Mon soucis c'est que je n'arrive pas à déclencher une temporisation dès que mon boolean est vrai et l'arrêter dès qu'il devient faux, sauf s'il est toujours vrai pendant ma tempo. Dans ce dernier cas un voyant s'allume.

    J'ai du mal à expliquer où je veux en venir -_-"
    N'hésitez pas à me poser plus de questions pour plus de clarté

  4. #4
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Avril 2010
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Avril 2010
    Messages : 210
    Points : 338
    Points
    338
    Par défaut
    Re,

    Petit programme fait vite fait qui pourrait te servir.

    Je l'ai mis en 8.0 car de souvenir, toi non plus, tu n'es pas a jour dans les versions LV.

    Losaque
    Fichiers attachés Fichiers attachés

  5. #5
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 51
    Points : 27
    Points
    27
    Par défaut
    Merciiii

    Grâce à votre VI j'ai pu réaliser ce que je voulais
    J'ai mis ma version en pièce jointe.

    Encore merci
    Fichiers attachés Fichiers attachés

  6. #6
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 51
    Points : 27
    Points
    27
    Par défaut
    Je me suis peut-être emballée un peu vite...

    Le VI seul fonctionne exactement comme je veux qu'il fonctionne, sauf qu'intégré dans mon programme c'est plus l'état d'un bouton que je regarde mais l'état d'un voyant, et apparemment, pour une structure évènement, la "valeur changée" n'a pas d'effet...
    Il n'y a que si je fais manuellement le changement avec un bouton que ça fonctionne.

    Je ne comprends pas d'ailleurs pourquoi

  7. #7
    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
    Citation Envoyé par KNouch Voir le message
    Le VI seul fonctionne exactement comme je veux qu'il fonctionne, sauf qu'intégré dans mon programme c'est plus l'état d'un bouton que je regarde mais l'état d'un voyant, et apparemment, pour une structure évènement, la "valeur changée" n'a pas d'effet...
    Il n'y a que si je fais manuellement le changement avec un bouton que ça fonctionne.
    Effectivement, la structure évènement capte que les évènements (utilisateur) sur la face avant, pour simuler un évènement utilisateur dans le diagramme, il faut utiliser le noeud de propriété Valeur (Signalisation) et non Valeur

    a+
    Reg
    CLAD

  8. #8
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 51
    Points : 27
    Points
    27
    Par défaut
    Ah oui, c'est vrai
    Du coup en effet ça fonctionne

    Mais j'ai un nouveau problème

    En fait j'acquière des données à une certaine fréquence puis je compare une de ces valeurs à une constante. Si elle est supérieure elle active mon booléen, donc ma tempo. Mon soucis c'est qu'à chaque fois qu'une nouvelle donnée arrive, une nouvelle comparaison est faite et ma tempo redémarre, même si physiquement mon booléen ne change pas d'état...

    Comment faire pour ne pas perturber ma tempo lorsque ma comparaison donne la même valeur ?

  9. #9
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Avril 2010
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Avril 2010
    Messages : 210
    Points : 338
    Points
    338
    Par défaut
    Salut,

    Je n'avais pas remarqué ce problème. Pour le résoudre, il te faut comparer l'ancienne valeur et la nouvelle :
    Si (ancienne valeur < nouvelle valeur) alors (renvoi_time)
    sinon (No_operation).

    Petite image en PJ pour mieux comprendre.

    Losaque
    Images attachées Images attachées  

  10. #10
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 51
    Points : 27
    Points
    27
    Par défaut
    Bouton et Bouton2 représentent quoi, d'après le VI que j'ai posté ?

    Je ne comprends pas pourquoi on compare de cette façon, ce sont deux booléens, pas deux entiers...
    Mais j'ai quand même essayé cette solution, malheureusement ça ne déclenche jamais ma tempo. J'ai essayé aussi de comparer avec un "différent de" ou même "=" mais ça ne fonctionne pas mieux.

  11. #11
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Avril 2010
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Avril 2010
    Messages : 210
    Points : 338
    Points
    338
    Par défaut
    Le schéma était pour le principe de fonctionnement (pas pour le noms des variables).

    Pour le pourquoi on compare de cette façon : Pour moi c'est la solution la plus simple à mettre en place. Le tout est de retrouvé la table de vérité suivante :
    New | Old => Out
    0 | 0 => 0 "cas ou la valeur est la même à FAUX" => On fait rien
    0 | 1 => 0 "cas ou la valeur change de VRAI à FAUX" => On arrête de compter
    1 | 0 => 1 "cas ou la valeur change de FAUX à VRAI" => Initialisation + début comptage
    1 | 1 => 0 "cas ou la valeur est la même à VRAI" => On continue de compter (surtout pas réinitialiser le compteur)"

    EDIT : J'ai vu mon erreur, je revois ma copie et je te recontacte Donc : nouvelle version à partir de ton VI. Permet de voir le cas de ré-actualisation de la variable.

    Hésite pas à me dire si ça fonctionne encore pas ... Vu ce que j'ai réussi à faire juste avant

    Losaque
    Images attachées Images attachées  
    Fichiers attachés Fichiers attachés

  12. #12
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 51
    Points : 27
    Points
    27
    Par défaut
    Merci losaque, ça fonctionne

    J'ai maintenant du mal à l'exploiter pour 3 booléens.
    Je m'explique :
    En réalité dans mon projet, 3 comparaisons avec des entrées différentes sont réalisées. Chaque résultat a le même effet sur ma tempo (je n'en veux qu'une), c'est-à-dire que si au moins l'une des comparaisons donne un résultat vrai pendant toute la durée de la tempo, le même voyant Warning s'allume.

    En VI d'essai, ceci fonctionne à merveille mais dès que j'en prends exemple pour le programme complet, la tempo ne démarre pas.
    Je ne comprends pas...

  13. #13
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Avril 2010
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Avril 2010
    Messages : 210
    Points : 338
    Points
    338
    Par défaut
    Salut,

    Comme ça, c'est compliqué de voir d'où viens le problème. Comment fais tu pour regarder tes 3 booléens ? OU logique entre tes booléens et une seule condition événement (à mon sens la meilleure solution) ? 3 conditions événements : 1 pour chaque booléen ?

    Le mieux serais que tu mettes ton VI complet, si possible.

    Losaque

  14. #14
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 51
    Points : 27
    Points
    27
    Par défaut
    Hihi... ^^ Je suis une boulette !

    En fait tout fonctionne, j'avais simplement oublié de mettre une constante égale à 1 pour ma structure évènement...
    (Mais oui, j'ai bien fait "la meilleure solution" pour n'avoir qu'un seul évènement )

    Merci

  15. #15
    Membre averti
    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Avril 2010
    Messages
    210
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes

    Informations forums :
    Inscription : Avril 2010
    Messages : 210
    Points : 338
    Points
    338
    Par défaut
    Pas de souci.

    Ce genre d'erreur arrive pour notre plus grande exaspération ...

    Pense à passer ton sujet en

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 14/03/2012, 21h27
  2. Comment réaliser des commandes simultanément ?
    Par winnie82 dans le forum Langage
    Réponses: 5
    Dernier message: 18/08/2006, 14h04
  3. Logs SQL des actions réalisées dans Enterprise Manager ?
    Par [DreaMs] dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 11/08/2005, 12h14
  4. Réponses: 7
    Dernier message: 08/03/2004, 15h30
  5. Comment réaliser des modèles de documentations avec XML ?
    Par Dams76 dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 29/08/2003, 02h15

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