le 03-21-2011 09:13 AM
Rebonjour, je post un nouveau message pour vous demander à nouveau votre aide.
Il y a quelques temps, j'ai réalisé un programme permettant d'envoyer des informations à un capteur (simulation de l'appuie sur la touche a, puis p, puis échap.
La réalisaton fonctionne, seulement maintenant j'aurai besoin de realiser plusieur fois la simulation de l'appuie sur la touche p.
Je vous met mon programme en pièce jointe, pourriez vous me dire ce qui ne va pas au niveau de la boucle ?
Cordialement
Note : Dans une version antérieure j'avais mis la boucle seulement sur la partie simulation de l'appuie sur la touche p, cela ne marchait pas non plus
Résolu ! Accéder à la solution.
le 03-21-2011 09:25 AM
Bonjour,
Apparement à chaque tour de boucle (la principale) tu lis une valeur, puis tu écris (ou non) dans l'évènement, et tu recommences. Or là où tu as mis ta boucle (la petite), tu écris 10 fois d'affilé avant de venir lire. Ce n'est pas ça qui pose problème? Est-ce que ton appareil n'attend pas un Read après chaque envoi?
Qu'est-ce qui ne fonctionne pas en fait, quel est le problème?
le 03-21-2011 09:29 AM
Le problème en fait, vient du fait qu'en mettant une boucle qui doit se faire 10 fois, si je clique sur le bouton specialement créé pour générer dix fois l'appuie sur la touche, cela a pour effet d'augmenter le gain d'une seule fois (l'appuie sur la touche a puis p puis echap génère l'incrementation du gain du capteur d'une fois.)
Voila pourquoi j'utilise une boucle qui se fait 10 fois.
Ensuite je ne vois pas de problème entre la lecture et l'ecriture car la lecture se fait toujours en temps réel, et l'écriture marche aussi en temps réel.
Je pense qu'il faut jouer sur les différentes temporisations, mais je n'ai aucune idée desquelles
le 03-21-2011 09:39 AM
Je viens de voir autre chose que je n'avais pas vu! Ton bouton offset TA 10x est relié à tes conditions. Or il est en action poussoir donc l'écriture du gain va se faire au premier tour de boucle, puis tu vas écrire 0 à chaque fois. Tu dois sortir ces conditions, de toute façon la séquence dans ta boucle ne s'exécute que s'il y a eu un clic sur le bouton.
Si ça ne marche toujours pas, essai de faire un test avec un nouveau vi, ou tu mets uniquement la boucle qui tourne 10 fois après avoir configurer ton port.
PS: tu peux utiliser Value change pour les événéments
le 03-21-2011 09:43 AM
Bonjour,
Comme l'a demandé Simon, qu'est-ce qui ne marche pas exactement?
Tu sembles dire que si tu exécutes le code de ta boucle 1 seule fois cela fonctionne, mais pas lorsque ta boucle fais 10 itération, c'est ca? Est-ce que le code permet au moins de faire 1 incrémentation, même quand tu espères qu'il en fera 10?
De plus, avec la comparaison que tu fais, tu réalises 11 itérations, et non 10, le terminal d'itération commence à 0, et tu l'arretes lorsqu'il vaut 10.
Cordialement,
Olivier L. | Certified LabVIEW Developer
le 03-21-2011 01:57 PM
@simonD : Je suis daccord avec toi pour sortir le boutons mais pour le mettre ou ? toujours dans la structure évenement ? ou en dehors de celle ci ?
Ensuite a quoi sert le value change ?
@Olivier_L : Pour le bouton ou l'action doit se faire une seule fois cela marche, si j'utilise le bouton qui devrait commander l'execution de fois l'action, cela ne la fait qu'une seule fois
Autant pour moi je viens de voir mon erreur au niveau du 10, je le rectifie.
le 03-21-2011 02:40 PM
Bonsoir,
Est ce qur vous pourriez poster votre code en LV9 ?
Cdt
Tinnitus
le 03-21-2011 02:44 PM
C'est tout à fait normal que ça ne s'exécute qu'une fois, vu que le bouton conditionne l'action, et que tu n'appuies qu'une seule fois dessus. En fait dans tous tes cas tu dois sortir les conditions, et les boutons n'ont pas besoin d'être cablés.
Il faut juste le laisser dans le cas correspondant s'il est en latch pour qu'il se réinitialise (qu'il se relache) mais il n'y a pas besoin de le cabler. L'action choisie génère un évênement qui est enregistré par LabVIEW pour effectuer l'action correspondante
L'évênement value change correspond à n'importe quel changement de valeur généré par l'utilisateur sur l'IHM ou par l'utilisation d'un noeud de propriété Value(signaling). c'est donc celui qui s'adapte le mieux à la gestion des IHM car tu peux t'en servir sur toutes les commandes et le générer par programmation.
le 03-21-2011 02:44 PM
le 03-22-2011 02:49 AM
Je suis totalement d'accord avec Simon,
Il te suffit d'enlever les structures conditions qui ne servent à rien, mais de laisser le bouton à l'intérieur de la structure évenement (il ne sera cablé à rien).
Cela devrait fonctionner.
Olivier L. | Certified LabVIEW Developer