le 06-24-2016 03:33 AM
Bonjour,
Etant nouveau sur LabView et en stage pour développer sur ce logiciel , mon tuteur ma donné un exercice, faire un carrefour de feu. Bon jusqu'ici ça va le feu fonctionne bien, j'ai juste un petit problème avec mes bouton pour le passage pieton. Pour faire simple et bien lorsqu'on clique sur un des bouton les 2 LED verte s'éteigne et on allume les LED jaune , mon problème est que mon bouton reste appuyer, donc l'action ce fait 2 fois, j'ai changer la valeur de mon bouton en "commutation à l'appui" avec ceci l'action se fait qu'une fois mais mon bouton reste enfoncé. J'aimerai savoir si il est possible de refaire passer les bouton à leur état initiale ?
Pour mieux comprendre je met mon VI en pièce jointe
Merci d'avance
06-24-2016 05:01 AM - modifié 06-24-2016 05:01 AM
J'ai regardé ton programme et je suis globalement très étonné de voir le type de programme que l'on peut rencontrer à un niveau "de stage".
Les stages, en principe, se situant en fin de formation (au minimum aux 2/3)
Je suppose donc qu'avant ce stage, tu as, d'une façon ou d'une autre, reçu une formation LabVIEW (des cours théoriques et pratiques)
Développer une gestion pour les feux d'un carrefour n'est pas un programme que l'on peut faire après 2hrs de formation.
Ton "tuteur" t'a demande de réaliser ce programme ... ok ... ton tuteur est peut-être ton professeur d'informatique.
(en principe oui ... c'est le seul à être en mesure de dire ce qui est, ou non, à votre portée)
avant de poser ma question ... jusque là ... suis-je globalement dans le bon contexte ?
le 06-24-2016 06:09 AM
Merci Ouadji,
Et bien je suis de formation developpeur Informatique (Web et réseaux) du coup dans mon cursus scolaire j'ai pu apprendre a développer en C ou tout autre langage du coup je ne suis pas novice dans la matière, je suis juste novice sur LabView
Mon tuteur n'est pas mon professeur mais plutôt mon parrain de stage.
le 06-24-2016 06:48 AM
Comment as-tu appris le langage LabVIEW ? (pour le moins ce que tu en sais)
as-tu reçu une formation ( des cours structurés) ... ou as-tu appris LabVIEW seul en autodidacte ?
le 06-24-2016 06:52 AM
J'ai appris seul en autodidacte, notament grâce au exemple fournis. Après quand on connais les base du mon de l'informatique (les boucle, les test) je trouve qu'on arrive plus vite à comprendre un nouveau logiciel (c'est que mon point de vue et celui de mon parrain de stage)
le 06-24-2016 08:21 AM
Ok, personnellement je vais manquer de temps pour rester sur le forum (je reviendrai ce soir)
les boucles, les tests ... ne pas confondre algorithmique et programmation.
L'algorithmique est universelle, la programmation est déjà une étape plus concrète où intervient le langage.
Je ne mets pas en doute ton algorithme (que je n'ai pas analysé en profondeur)
mais en ce qui concerne le langage et ta façon d'implémenter avec LabVIEW ... tu n'es pas (du tout) dans la bonne direction.
il y aurait trop à dire ! (ton code est un exemple d'école de beaucoup de choses qu'il ne faut pas faire)
Les structures séquences empilées, des variables locales partout ... là, tu fais erreur si tu veux apprendre réellement LV.
Je vais essayer de te trouver un exemple de code à ce sujet ... je suppose que d'autres ont déjà implémenté ce type de projet (feux de carrefour, problème assez classique)
Mais pas de suite, je dois quitter.
le 06-24-2016 08:24 AM
D'accord merci beaucoup , c'est vrai que labview a sont propre style et qu'il est bien différent de ce que j'ai pu voir.
Merci de prendre le temps de m'expliquer le fonctionnement de labview
06-24-2016 08:43 AM - modifié 06-24-2016 08:45 AM
" labview a sont propre style "
c'est infiniment plus que simplement une histoire de "style"
avec labVIEW tu passes dans un autre monde ... tu peux laisser de côté tout ce que tu as appris en C
ici .. rien de tout cela n'a plus cours.
" Merci de prendre le temps de m'expliquer le fonctionnement de labview "
impossible ... il y a des livres entiers qui sont consacré à cela.
LabVIEW est un langage absolument fabuleux ... mais de la façon dont tu l'utilises (pour le moment) ... tu ne vas rien trouver de fabuleux.
avant de couper mon PC, juste ceci ...
tu places tous tes Contrôles et Indicateurs bien de côté ... et tu travailles exclusivement avec des variables locales.
As-tu remarqué que l'on pouvait "aussi" câbler un fil directement sur un Contrôle ou un Indicateurs ?
(aaahhh ces programmeurs C et leurs variables ... demandez à un Programmeur C de se passer de "variables" et il se pend ... je taquine ... quoi que ... )
intéresse toi à la notion de " flux de donées " (la base des bases du fonctionnement de LV ... aucun autre langage n'utilise ce concept de "flux de données").
... aux notions de "registre à décalage" ...de "machine à états" ...
je coupe, à plus tard.
le 06-24-2016 02:54 PM
voici un lien
je ne dis pas que ce programme est "une merveille",
il ne correspondra pas non plus totalement à ce que tu veux obtenir,
mais il te donnera "des idées" sur une "autre façon de" ... et un direction qui est au minimum meilleure que celle que tu as choisie.
Si tu désires "réellement" apprendre le langage LabVIEW, je te conseille de reprendre les choses depuis le début.
voici 2 ou 3 bons livres : ici et ici ( ici aussi)
le 06-25-2016 02:10 PM
Salut à vous deux ! « le carrefour » est effectivement un exemple du test de certification CLD. Pas évident de commencer directement par le CLD, sauf si le tuteur est ouadji, et qu'après il va t'expliquer les erreurs, lepourquoi puis le comment 🙂
Je suis d’accord avec ouadji, il faut d’abord comprendre LabVIEW, et la notion de flux de données.
Si lorsque j’écris « flux de données », si tu n’es pas capable d’expliquer cette notion, alors je te conseille de lire quelques tutoriels sur LabVIEW, car l’incompréhension de cette notion est l’origine de ton erreur.
Ouadji te conseille quelques livres, ils sont très bien, j’ai une préférence partiale pour le français… 🙂
Sinon tu peux faire la lecture suivante, qui est composé d’extraits du livre, « LabVIEW : programmation et applications » ou comment apprendre à utiliser LabVIEW
Pour répondre à ta question, le bouton « latch » (sur la face-avant) va « remonter » lorsque le flux de données va lire la valeur du bouton en passant « au travers du contrôle » du bouton (dans le diagramme). En programmation G, le code est représenté par un schéma composé de fonctions, de structures et de fils qui propagent les données. Le bouton « Latch » remonte « visuellement » losque sa valeur est lue dans le diagramme. Tu as une structure évènementielle, qui déclenche une action lorsque l’utilisateur clique sur un bouton. Donc il faut mettre le bouton dans le case de la structure concernée.
Maintenant que tu as compris que LabVIEW suit un modèle flux de données (à l’inverse du C), dans l’implémentation littérale de ce modèle il n’y a pas de variable. J’ai noté « littérale ». Dans l’EDI LabVIEW, des concepts avancés ont été ajouté « data communication methods ». Je te conseille de bien comprendre comment gérer « la » donnée, avec LabVIEW. Il y a les éléments du flux de données, puis les « variables » et « les bufférisées .
si cela t'interesse, tu trouveras une présentation en Anglais (version full)
Darwin applied to LabVIEW: The evolution of the data management
ou en français une version plus simple,
Darwin appliqué à LabVIEW : l’évolution de la gestion des données
Après pense à lagestion des erreurs, et à utiliser une structure d'application (par exemple tape QDMH sous google).
Bonne continuation
+A
Luc Desruelle | Mon profil | Mon blog LabVIEW | Auteur livre LabVIEW : Programmation et applications - G Web
Certified LabVIEW Architect (CLA) & Certified TestStand Developper (CTD) | LabVIEW Champion
MESULOG - LinkedIn site | NERYS - NERYS Group
| directeur CEO MESULOG
| CODIR - NERYS group