04-26-2012 03:08 AM
Bonjour,
Mon projet complet est composé de 3 grande partie:
-Acquisition de donnée d'un puissance-metre en permanence
-Stabilité des donnée reçues ?
-Prise de vidéo
Première partie :
On charge un fichier .txt, ces données règlent une consignes a laquelle la puissance reçu des diodes doivent être stabilisées (on joue sur le générateur de tension de l'allumage) un graphe s'affiche en temps réel pour montrer la courbe du puissance-metre et la courbe de la consigne , et un second montre l'erreur en temps réel.
Pour faire cela j'ai un boucle for afin de pouvoir changer de consigne quand ma vidéo sera prise, et dedans pour l'affichage des graphe et les différents calculs une boucle while
Troisième partie:
Un simple exécutable de ligne de code suffit, CA je l'ai
Deuxième partie:
C'est la que je n'arrive pas a trouver de solution :
J'aimerais que la troisième partie se lance 3 seconde après que le système ai vu que la puissance était stabilisé cad :
- Je met en % mon erreur (déjà fait avec des */-/<)
- J'attends 3 secondes
- Je lance la vidéo
-j'envoie un signal pour changer de consigne (cf partie 1)
pour cela je me suis dit qu'une séquence a l’intérieur pourrait être la solution mais des que j'inserts la séquence, j'ai l'impression que la boucle while temps réel ne continu pas
J’aimerais trouver comment faire tourné en permanence ma première partie tout en extrayant des valeurs, et comment envoyer un signal afin que la valeur suivante rentre dans le système
En espérant avoir été assez clair, auriez vous une idée de comment réalise cela ?
Ci-joint le VI c'est un peu fouillis mais j'ai mis quelques explications, a savoir que tout ce qui est dans la boucle while (sauf la séquence et la boucle extérieur) marche
Cordialement
Rodolphe B.
05-02-2012 01:35 AM
Bonjour,
Je te conseille de faire 3 booucles parallèles en utilisant une structure producteur consommateur. Cela sera plus clair et en plus tu pourras plus facilement gérer les problème de timing pour l'envoi de données dans tes différentes étapes.
Pour la partie temporaisation, utilise le vi express "Temps écoulé" et tant que ta consigne varie, tu réinitialises le vi.
Cordialement
05-02-2012 02:51 AM
Bonjour,
On m'a deja parler de boucel prod/conso mais etant un debutant je ne sait pas comment cela marche, et je ne sait pas comment en construire une.
Je ne comprend pas pourquoi je ne peut pas juste faire 2 boucle en // et lancer la seconde quand ma valeur stable est bonne.
Serait-il possible que vous me fassiez une schema explicatif du fonctionnement d'une bopucle prod/conso? Ou pourquoi pas me faire sur le Vi que je vous ai envoyer la boucle prod/conso sachant que ma variable est "stable?" et que je doit juste attendre 3seconde et lancer un VI exec sys
Mon probleme majeur c'est qu'il ne faut pas que les 3s de delay s'active et perturbe ma boucle 1.
Merci d'avance
Cordialement Rodolphe B.
05-02-2012 06:58 AM
Voici un tutoriel expliquant l'utilisation de la structure producteur/consommateur:
http://zone.ni.com/devzone/cda/tut/p/id/6363
Pour la partie délai, je pense que l'utilisation du vi express "Temps écoulé" sera approprié. Il ressort un "vrai" lorsque la cible de temps est atteinte. Ainsi, tu peux le remettre à zéro tant que ton signal n'est pas stable, ou alors tu fais un calcul de dérivé de ton signal et tant qu'elle n'est pas à zéro, tu ne lances pas la suite de ta séquence.
05-02-2012 07:01 AM
Je vais voire ça merci , j'ai réécrit un autre post car j'ai plusieurs pb en même tps sur mon projet si ça gêne , vous pouvez supprimez ce post pour éviter les doubles réponse
Merci
Cordialement Rodolphe B.
05-02-2012 09:25 AM
Re-bonjour;
Ca m'explique a theorie mais toujour pas la pratique 😞
Cordialement rodolphe
Ps voici mon nouveau VI je ne compred pas comment calbler pour que mon systeme exe , se lance sans perturber la vitesse ou le bon fonctionnement de la premiere boucle