Structure séquence

Bonjour,
Je viens vous demander des conseils pour l'utilisation des structures de séquences (Ci-Joint le Vi). J'utilise un Visa avec une structure de séquence. Dans la première et la deuxième étape j'arrive bien à connecter la liaison Visa ressource Name et Error aux deux entrées, mais lorsque j'essaie de connecter les sorties, j'ai un message d'erreur suivant "Un fil de liaison est connecté à un tunnel sans direction". Pour les entrées il n'y a pas de problème mais pour les sorties il y a erreur. Peut-on trouver une solution pour connecter les sorties ensembles?
Merci d'avance, Cordialement      
Pièces jointes :
ni-1.vi ‏13 KB

Bonjour,
"dans l'étape 0, il n'est pas nécessaire de cabler la sortie ou il faut utiliser une "variable locale de séquence" pour ramener une valeur dans la séquence suivante." L'utilisation une variable locale de séquence oblige à ramener la sortie de la premiere étape vers entrée de la deuxième étape, par contre peut-on oublier la sortie de la première et cabler la sortie de la deuxième étape? Comme ceci? (Ci-joint le Vi). Il n'y a pas d'erreur mais je ne sais si cela fonctionne? Si jamais il y a une erreur dans la premiere étape on n'aura pas des informations sur cette étape alors?
Merci d'avance,
Pièces jointes :
ni-1.vi ‏16 KB

Similar Messages

  • Mettre boucle While en pause/ structure séquence

    Bonjour,
    Actuellement en stage il m'a été demandé de développer une interface LabVIEW en vue du pilotage d'une alimentation triphasé.
    Pour l'instant la majeure partie de mon programme fonctionne mais je me heurte à un problème. Il m'a été aussi demandé que mon programme récupère les informations de mesure provenant de l'alimentation. Cette partie fonctionne également à une exception près : si l'on appuie sur un bouton alors que la commande Write de mesure est en exécution (commande TST dans mon VI), une autre commande sera alors transmise au générateur et la fonction READ ne lira plus de mesure et le VI affichera une erreur de TimeOut. Je cherche donc depuis 2 jours une solution qui me permettrait de mettre la boucle While de mesure en pause en cas d'appuie sur un bouton lors d'une mesure et la reprendre a la fin d'un temps donné.
    Je vous fournie un exemplaire de mon VI afin que cela paraisse plus clair (PS : Je suis sur LabVIEW 2009).
    Je vous remercie d'avance de votre réponse.
    Cordialement.
    Résolu !
    Accéder à la solution.
    Pièces jointes :
    VI.vi ‏55 KB

    Je vous remercie beaucoup de vos réponse. J'ai utilsé vos amélioration et idée et je pense que en théorie ça devrait marcher mais avant d'entamer les tests sur l'alimentation je suis confronté à un nouveau problème : j'ai ajouté des onglets qui devrait me permettre de passer d'un type de langage de commande à un autre. Pour gérer le changement d'onglet j'ai utilisé une structure condition avec une boucle While et une structure évènement. Sur le papier l'idée me paraissait bonne mais après test l'interface se bloque lors du premier changement. La faute est due à la structure évènement qui bloque sur changement d'onglet : valeur changé. Si vous connaissez une alternative à cette solution je vous serez très reconnaissant si vous pouviez me la faire connaitre.
    En vous remerciant par avance.
    Pièces jointes :
    FGV style Visa(1).vi ‏22 KB
    ELGAR TEST 2.vi ‏86 KB

  • Structure condition

    Bjr à tous,
    J'ai fait un vi qui effectue une mesure de tension sur un système. Grace à une boite de dialogue j'indique en face-avant à l'utilisateur l'état du système et les opérations qu'il doit effectuer pour modifier cette état.
    Mais je souhaiterais qu'après que l'utilisateur est pris connaissance des opérations à réaliser dans la boite de dialogue (après appui sur "ok"), il puisse modifier les paramètres en face avant et lancer le diagramme qui changera l'état du système.
    J'ai réussi à réaliser cela avec une structure séquence déroulé qui me permet de réaliser deux étapes.
    La première effectue la mesure de tension sur le système et la deuxième modifie l'état du système.Cela en associant à la première un temps d'attente.
    Mais justement je souhaiterai trouvé une autre solution car l'utilisateur est obliger de modifier en un temps défini les paramètres en face-avant et le temps que j'aurais prédéfinis sera forcement trop long ou trop court.
    Zeeley973
    Lbw8.0 PCI6289

    Bonjour,
    Vous pourriez ajouter un bouton "Valider" sur la face avant pour l'utilisateur afin qu'il puisse avoir le temps de changer les paramètres en question, après avoir pris connaissance des opérations à réaliser dans la boite de dialogue. Une structure condition vous permettrait d'exécuter la portion de code en fonction de l'état de la variable booléenne associée au bouton.
    Cordialement.

  • Acquisition fréquence variable et basse fréquence

    Bonjour,
    Je suis débutant en LV et dois mesurer la vitesse de rotation d'un moteur qui ralenti. Pour cela, un capteur de vitesse
    me délivre un signal traité par une carte électronique. Un signal carré est issu de cette carte
    dont la fréquence est image de la vitesse de rotation du moteur (160 Hz => 1600 tr/min et 0 Hz => 0 tr/min).
    La carte électronique apporte quelque fluctuation de fréquence, j'utilise donc deux compteur large gamme
    pour mesurer la fréquence.
    Mon problème est le suivant:
    Mon objectif est d'avoir en "temps réel" ( juste une indication, pas de "vrai" temps réel)
    sur ma face avant la vitesse de ralentissement de mon moteur. Cela fonctionne lorsque celui ci tourne
    jusqu'à 150 tr/min environ (15 Hz) en dessous mon VI bloque et je viens même dépasser le time out fixé lors
    de l'acquisition. Il faudrai au moins que j'observe le ralentissement jusqu'à 10 tr/min.
    Si quelqu'un a une idée pour pallier ce problème.
    Par avance merci pour votre aide
    Vincent V.
    Pièces jointes :
    Ralentissement.vi ‏83 KB

    C'est toujours le même soucis quand on a (le grand plaisir) de rencontrer un débutant : 
    1) un Block Diagramme qui fait plusieurs écrans
    2) des dizaines de variables locales partout, partout 
    3) ... bravo !!!! ... tu es passé a côté de la 3eme chose qui caractérise un débutant .... les structures séquences    il n'y en a pas (ouf)
    Pourquoi utiliser toutes ces variables locales ???
    ... alors que tu disposes sur le Diagramme de toutes les informations .
    Pourquoi ne cables-tu pas directement sur le terminal correspondant ? (au llieu de RE-lire l'info via une variable locale)
    Je ne vois aucune gestion de l'erreur sur ton Diagramme.
    Tu as plusieurs noeuds de propriété "de réinitialisation" ... ces noeuds sont flottant !!!
    Qui te dis que cette "réinitialisation" se fera en début d'exécution et pas à la fin ?
    Avec labview, le séquencement du code se fait via le "flux de données" .... sans flux de données l'ordre d'exécution est inconnu.
    Cabler les entrées/sorties d'erreur permet d'établir un flux de données.
    La première chose :
    réduire ton code à UN écran (au passage, aligne, fait "du propre")
    supprime tes variables locales.
    crée un flux de données pour tes noeuds de propriété.

  • FPGA et I/O : comment bien faire ?

    Bonjour,
    J'essaie en vain de lire tous mes capteurs en programmation FPGA sur C-RIO 9022 avec un chassis C-RIO 9113.
    Je souhaite utiliser le FPGA pour prendre une série de 250 mesures (sur 27 capteurs) sur un pas de temps très court, et ne conserver que la moyenne. Pour cela j'utilise 2 cartes NI-9205.
    Je me heurte à 2 méthodes qui ne fonctionnent pas :
        (1) Soit je fait une structure séquence de 27 séquences, et dans chacune je fais une boucle de lecture de mon capteur avec un moyennage (Image Erreur_compilation_FPGA.bmp). Dans ce cas je n'arrive pas à compiler, j'ai le message d'erreur suivant : "ERRORack:2310 - Too many comps of type "DSP48E" found to fit this device." J'imagine que la carte FPGA n'est pas dimensionnée pour mon besoin.
        (2) Soit je fait une boucle sur chacune de mes entrées, avec dans chacune une boucle de lecture de mon capteur avec un moyennage (image Erreur_refnum_dynamique.bmp). Pour boucler sur mes entrées, je voulais utiliser un tableau de taille fixe avec les refnum de mes entrées. Dans ce cas le vi n'est même pas exécutable, j'ai l'erreur "Fil de liaison : Possibilité de refnum dynamique non supportée pour la cible actuelle".
    La seule solution que j'ai trouvé mais qui ne me semble pas très "propre" est de faire 3 VIs FPGA utilisants la méthode (1) avec seulement 9 capteurs chacun. Dans ce cas la compilation fonctionne, et lorsque je souhaite faire la mesure j'appelle successivement mes 3 VIs depuis un Vi en RT.
    Voyez vous une solution qui me permettrait de n'avoir qu'un seul VI FPGA qui tourne en boucle, et un Vi RT qui récupère régulièrement les mesures pour les enregistrer ?
    Si je ne me trompe pas il n'est pas possible d'avoir plusieurs VI FPGA qui tournent en même temps ?
    Merci,
    Nicolas

    Bonjour,
    J'étais déjà tombé sur ces discussions, mais elles ne me semblent pas très positives.
    J'avoue être un peu perdu sur la discussion concernant les DSPs, et la solution proposée concernant les refnums dynamiques semble être celle qui me génère l'erreur DSPs.
    Je ne sais pas si j'ai réussi à attacher mes pièces jointes, mais l'idée est de faire autant de boucles que j'ai d'entrées (successivement, pas en parallèle), et une moyenne sur les mesures.
    Du coup je n'ai pas besoin que mes boucles tournent en parallèle, je voudrais donc théoriquement réutiliser la même boucle de moyennage, en changeant pour chaque mesure l'entrée et la sortie.
    Je ne sais pas si je suis clair, j'espère que les images seront plus parlantes.
    Merci
    Nicolas
    Pièces jointes :
    Erreur_refnum_dynamique.jpg ‏152 KB
    Erreur_compilation_FPGA.jpg ‏152 KB

  • Problème d'ouverture d'un projet labview

    Bonjour,
    Actuellement utilisateur de votre logiciel Labview depuis plusieurs mois sans problème apparent jusqu'à avant-hier ou j'eus un problème pour ouvrir mon projet .lvproj.
    Lorsque j'essaie de l'ouvrir il se referme avant même de le voir apparaitre entièrement.
    Tout d'abord je me suis dit que c'était peut être une mauvaise manipulation de ma part, donc j'ai essaié d'ouvrir un nouveau projet vide mais cela n'est pas possible.
    Donc j'ai désinstaller Labview de mon ordinateur, puis l'ai réinstallé pour voir si cette application est à nouveau accessible. Après 2 installations et 2 désinstallations je n'arrive toujours pas à ouvrir un projet.
    Pourriez-vous m'expliquer le problème pour y remerdier.
    Cordialement,

    Bonjour, 
    J'ai pu ouvrir votre projet sans rencontrer d'erreur (je travaille avec LabVIEW 8.6). J'en ai fait un enregistrement pour LabVIEW 8.5 que je vous joins. Essayer de l'ouvrir et de voir si cela résous votre problème.
    D'autre part, voici quelques remarques sur la façon dont est architecturé votre projet:
    De nombreux VIs que vous m'avez transmis ne sont pas référencés dans votre projet: faites le tri, utilisez l'onglet fichier de l'explorateur de projet;
    Certains de vos sous VIs sont référencés dans les dépendances: créez un e arborescence logique dans votre projet pour organiser vos VIs avec par exemple un répertoire pour les définitions de type, un répertoire pour les variables, une organisation logique de vos sous-VIs;
    Votre VI principal d'interface n'est pas placé directement sous Poste de travail: comme point d'entrée de votre programme, il doit être le premier sur lequel on ait envie de cliquer, il n'est pas logique d'aller le retrouver dans un répertoire. En revanche, tous vos sous-VIs devraient être dans des répertoires.
    Les variables globales ne sont pas bien nommées: utiliser des noms explicites de manière à faciliter la compréhension de votre code;
    Votre diagramme dois tenir sur un seul écran, ou dans le pire des cas, se limiter à une dimension de déplacement: utilisez pour cela des sous VIs, modularisez votre code;
    Evitez au maximum l'usage des variables locales: tout ce qui peut être transmis directement par câblage dois l'être;
    Préférez l'usage d'un machine d'état plutôt que les séquences empilées: 17 frames de structure séquence rendent votre code un peu plus illisible qu'il ne l'est déjà;
    Renseignez les champs de documentation de vos sous-VIs: cela permet d'afficher dans l'aide contextuel au survol de la souris une description du VI et de sa fonctionnalité.
    Cordialement,
    Message Edité par Mathieu R. le 04-01-2009 11:10 AM
    .mrLeft{float:left} .mrInfo{border-left:solid 1px #989898;font-size:x-small;color:#989898}
    Mathieu R.  
      CTD - Certified TestStand Developer / Développeur TestStand Certifié  
      CLAD - Certified LabVIEW Associate Developer  
    Attachments:
    problème d'ouverture d'un projet labview.zip ‏352 KB

  • Acquisition d'une valeur et mise dans un tableau à chaque pression d'un bouton

    Bonjour à tous,
    Je n'ai pas trouvé de solutions existantes sur le forum, et débutant sur labview, je me permets de poser la question ici.
    J'ai un dispositif de mesure composé d'un capteur de force relié par liaison com à mon ordinateur. J'ai fait un vi qui me permet à chaque pression du bouton mesure, de m'afficher la valeur lue sur l'appareil. Je souhaiterais à chaque fois que j'appuie sur le bouton Mesure", que mes valeurs soient enregistrées à la suite dans un tableau. Auriez vous un exemple de vi qui puisse éclairer ma lanterne ?
    Le top du top serait de pouvoir inscrire une valeur manuellement à chaque fois que je prend ma mesure de manière à ce que je puisse avoir un tableau de deux colonnes, avec d'un coté les valeurs rentrées manuellement et de l'autre les valeurs mesurées avec mon appareil. Je pourrais ainsi tracer un graphe XY.
    Merci d'avance si vous pouvez m'aider !

    - pour que les valeurs de "bytes read" forment un Tableau, une solution est de "sortir" sa valeur sur un tunnel indexé
    (tunnel "normal" sur le boucle while interne et ensuite tunnel indexé sur la boucle while externe.
    ps :
    Pourquoi utilises-tu une variable locale "bytes read" .... alors que son terminal se trouve juste à côté ?
    L'utilisation excessive de la structure séquence et une utilisation totalement inutile d'une variable locale ...
    me donne l'impression que tu n'as pas compris le principe de base de LabVIEW, soit le "flux de données".
     

  • Correction d'offset

    Bonjour,
      Je réalise un logiciel pour contrôler un oscilloscope. Le signal que j'analyse contient un offset que j'essaye de corriger automatiquement et je réalise l'acquisition en continue du signal dans le même temps (je ne sais pas si je suis très clair...). Pour connaitre cette offset, dans ma simulation, je récupère la valeur min du signal et je réinjecte cette valeur inversée pour annuler l'offset (je n'ai trouvé que cette méthode à appliquer car je ne peux pas récupérer la valeur de l'offset de mon signal dans l'oscilloscope).
    Le soucis, c'est que la valeur de l'offset que j'applique varie sans raison. Et quand je relance mon logiciel avec l'execution animée, le problème n'est plus présent donc impossible de savoir d'où peut provenir l'erreur !!
    Je post mon programme, je pense que celà n'est vraiment pas clair mais je n'arrive pas à expliquer clairement...
    Merci de votre aide !
    Alexis.
    Solved!
    Go to Solution.
    Attachments:
    Simu_correction_offset.vi ‏96 KB

    Désolé, j'ai oublié de marquer que j'avais résolu mon problème...
    Lorsque que j'exécutais mon programme, la correction de mon offset ne s'effectuait pas correctement et surtout je n'obtenais pas le même résultat lorsque j'animais l'exécution. Après conseils, j'ai modifié mon programme avec une structure séquence et j'ai obtenu le résultat voulu. Mon programme, pendant l'exécution normale, ne commençait pas par la boucle que je désirais (mon programme lançe 2 boucles while).
    Merci d'avoir regardé mon programme et j'espère que ma réponse est un petit peu plus claire...
    Cordialement,
    Alexis.

  • Labview ne m'exécute pas une partie du code

    Bonjour,
    J'ai eu un problème très bizare et grave pour mon cas d'application. 
    Il y a une partie dans mon code (voir photo jointe) qui parfois Labview ne l'exécute pas, je dis bien parfois car je l'ai testé et je l'ai mis en place et ça marche.
    Mais aujourd'huui c'ai eu ce problème, normalement quand il arrive à cette étape, il doit décrementer le nombre qu'il lit déjà à partir de la fonction globale fonctionnelle et après il enregistre la nouvelle valeur décrémenté dans la FGV (remplace l'ancienne par la nouvelle décrèmentée). Ce qui est bizar est qu'il a bien modifé la partie qui traite le booléen mais n'a pas traité la partie qui traite le nombre entier!!
    en plus j'ai remarqué que parfois labview dépasse une étape dans une séquence empilée (par exemple passe de l'étape 1 à 3 directement) parfois je suis obligé de le forcer pour passer à toutes les étapes, est-ce c'est normale??????????
    Merci bien pour votre aide c'est vraiment urgent! 
    Pièces jointes :
    manque execution labview.PNG ‏30 KB

    La Structure Séquence Empilées !!!! ... le top du top !  (j'en rêve)   
    la structure "séquence empilée" est une abomination qui ne devrait même pas exister.
    c'est la meilleure façon de créer du code illisible et spaghetti. (et du code anti-labview)
    Dans un Langage dont la colonne vertébrale  est le "flux de donnée", le mot "séquence" ne devrait même pas être prononcé.
    ce mot devrait faire crasher Labview   

  • Ajouter ligne dans table ou liste multicolon​nes

    Bonjour
    Je découvre Labview (version 8.6) et je tente de créer un programme d'asquisition de données pour un banc d'essai amortisseur.
    Je receuille des données et les classes dans un tableau, ET cré un graphe XY pour afficher une courbe représentant la force de l'amortisseur en fonction de la vitesse de déplacement de la tige. Jusqu'à là tout va bien!
    Mon problème est que je voudrai que lorsque le cycle s'effectue en continue, les nouvelles données s'affiche sur la ligne suivante au lieu d'écraser les précédentes valeurs comme c'est le cas actuellement .J'ai essayé avec l'outil "table" et l'outil "liste multicolonnes" mais le problème est le même: Comment dois-je faire?
    Il se trouve que j'ai le même problème pour afficher les courbes sur mon graphe XY, j'aurais également besoin d'aide pour ce problème.
    Merci par avance pour votre attention et votre aide.
    Cordialement
    Jérémy
    PS: Si joint mon VI pour imager le problème.
    Solved!
    Go to Solution.
    Attachments:
    PETIT BANC.vi ‏254 KB
    Essais Petit banc.doc ‏25 KB

    Bonjour Jérémy,
    Vous trouverez en pièce jointe, encore quelques petites modifications sur votre VI pour vous montrer comment utiliser les fonctions tableau pour créer des tableaux an ajoutant des éléments à chaque itération de la boucle.
    Vous verrez, si vous activez l'aide contextuelle (CTRL+H) et que vous placez votre souris sur le graphe XY sur votre diagramme, il est expliqué comment câbler l'entrée du tableau si vous voulez une seule courbe ou plusieurs courbes. Dans le cas de plusieurs courbes, il faut un tableau donc chaque élément correspond au tableau 2D (X et Y), c'est ce que je fais lorsque je viens ajouter les données dans le tableau.
    Ensuite, pour que Word ne s'ouvre qu'après la boucle d'acquisition, il faut savoir que LabVIEW utilise le principe du flux de données, n'hésitez pas à regarder l'aide de LabVIEW pour comprendre ce principe. Et cliquez sur le bouton "Animer l'exécution", c'est très pratique pour bien comprendre comment les fonctions s'exécutent.
    Le flux de donnée dit qu'une fonction ne peut s'exécuter que lorsque toutes ses données en entrée sont disponibles. Et ses données ne sont disponibles que lorsque la ou les fonctions qui les génèrent ont fini de s'exécuter. Il faut également comprendre qu'une boucle est vue comme une noeud, et que les données qui sont générées par cette boucle ne seront disponibles que lorsque la boucle sera arrêtée.
    Dans votre cas, la fonction qui insère les données du tableau, généré par l'acquisition, dans Word doit attendre que la boucle soit terminée. En revanche, la fonction d'ouverture de Word ne dépend pas de la boucle While, donc s'ouvre dès le début.
    Pour pallier ce problème, vous avez 2 solutions. Soit utiliser une structure séquence, ainsi, le code qui sera dans la 2eme étape ne s'exécutera que lorsque la 1ere étape sera terminée. Où vous pouvez utiliser une donnée issue de la boucle que devra attendre la première fonction du Report Generation Toolkit, une utilisation classique consiste à utiliser le cluster d'erreur issu des fonctions de la boucle while, et à le câbler au cluster d'erreur de la fonction que l'on veut exécuter après la boucle. Ainsi, la fonction doit attendre que la boucle While ait fini son exécution avant de pouvoir s'exécuter.
    J'espère que je ne vous ai pas perdu dans toutes ces explications.
    Cordialement,
    Message Edité par Olivier L le 04-29-2009 04:36 AM
    Olivier L. | Certified LabVIEW Developer
    Attachments:
    PETIT BANC[3].vi ‏253 KB

  • Insérer de façon précise une valeur dans un fichier tableur

    Bonjour,
    J'utilise le VI "écrire dans un fichier tableur" dans une structure séquence pour enregistrer une acquisition.
    dans un premier temp, Mon VI écrit l'entête du fichier de mesures contenant diverses informations, ensuite les valeurs sont écrites dans le fichier en continu, je ne les stocke pas dans un tableau car l'acquisition est rapide et j'arrive vite à plusieurs milliers de points.
    Je rencontre le probléme suivant :
    J'aimerais enregistré dans mon entête la date et l'heure de fin de l'enregistrement.
    Or si je mets fin a la boucle qui gére l'enregistrement, je ne peux plus écrire cette valeur dans l'entête !
    Je n'arrive pas à écrire dans une case précise de mon fichier pour ne pas écraser toutes mes idées, savez vous comment faire ?
    merci.

    https://decibel.ni.com/content/docs/DOC-9073
    Rodéric L
    Certified LabVIEW Architect

  • Benchmark d'une boucle

    Bonjour,
    La question est peut-être bête, mais je n'arrive pas pour le moment à avoir ce que je veux.
    La voici : "Comment mesurer le temps d'une itération dans une boucle ?"
    Je sais faire ça avec une structure séquence en plaçant des compteurs d'impulsions avant et après une itération, mais le probème est que ce genre de compteurs donne un résultat en milliseconde. Comment faire si l'on va plus vite ?
    Je pense que chaque itération de ma boucle à une durée d'exécution de l'ordre de quelques microsecondes,
    Y a t'il une solution pour mesurer une itération précisément ? Dois-je par exemple mesurer mon temps sur 1000 itérations et faire une bête division par la suite (je ne trouve pas ça très élégant si c'est la seule solution :/)
    Merci d'avance.
    Solved!
    Go to Solution.

    Bonjour Cyco,
    Tout d'abord merci d'avoir posté sur le forum National Instruments.
    Il existe dans LabVIEW un compteur plus précis que le compteur classique qui se nomme "High Resolution Relative Seconds.vi". Il n'est pas présent sur la palette de base, mais se trouve dans le dossier C:\Program Files\National Instruments\LabVIEW 2010\vi.lib\Utility\
    Vous trouverez ici un lien vers un forum plein d'astuces sur LabVIEW. Les premiers posts parlent de ce vi, snippet à l'appui.
    Bien cordialement,
    Audrey_P
    National Instruments France
    #adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
    Journées techniques : des fondamentaux aux dernières technologies pour la mesure et le contrôle/comm...

  • Chargement du fichier ini - Remplissage tableau

    Bonjour à tous,
    Je rencontre un problème pour charger mon fichier de configurations.
    Je souhaiterai pouvoir charger un fichier enregistré et le modifier..
    Comment s'y prendre ?
    Cordialement
    Pièces jointes :
    Scenario_key.vi ‏53 KB

    dommage de conserver tous ces noeuds de propriété "IndexVals".
    Alors qu'un shift-register permettrait d'en éliminer une bonne partie.
    ...  cela permettrait également d'enlever cette structure séquence en début de code.
    Les structures séquence sont des objets anti-flux de données, à éviter au maximum.
    (peut-être également soigner le code ... toutes ces entrées/sorties sur les bords horizontaux des structures ne donnent pas une belle lisibilité)
    Pour ton fichier de configuration ...
    il existe pourtant les fonctions Read / Write text file.
    associé à un formatage que tu définis toi même ... il me semble relativement facile de sauvegarder le dit fichier,
    et ensuite de le relire, de décoder l'information suivant ton propre formatage et de ré-injecter les infos où cela est nécessaire.
    Bien entendu ... il faut chercher, tester, essayer .... rien ne fonctionne du premier coup (surtout la 1ere fois)
    Je ne sais pas .... j'ai parfois comme une "impression" curieuse.
    Celle que tu demandes de l'aide sans avoir réellement cherché ...
    cette question : "Je souhaiterai pouvoir charger un fichier enregistré et le modifier ... Comment s'y prendre ? "
    sans un bout de code de ta part, sans une question précise ... ne peut que me laisser penser cela.

  • Comparaison message en boucle

    salut les amis!
    alors je voulais faire un teste toute simple, ce teste c'est comparer deux réel! et faire un test si la deuxieme valeur depasse la premiere un messgae s'affiche! et ceci en boucle puisque un des réel est variable!!
    j'ai fait comme indique l'image ci-joint!  et ca n'a pas marché!
    des suggéstions? et merci  
    Pièces jointes :
    test.PNG ‏7 KB

    oui, plus "propre" ... mais la propreté n'est pas la finalité de se passer des "locales".
    Une variable locale est un "objet" qui se trouve "en dehors" du flux de données.
    Tu ne maîtrises pas "le moment" où la valeur du Contrôle sera effectivement dupliquée dans sa variable locale correspondante.
    La variable locale est-elle "à jour", ne l'est-elle pas ? ... tu ne peux avoir aucune certitude absolue à ce sujet.
    La seule façon d'être certain, est d'encapsuler la variable locale dans une structure séquence, de façon à forcer cette locale a se trouver "dans" le flux.
    Ici, le code est simple ... mais si tu lis et écris dans une locale à des endroits différents, vois depuis des process différents (boucles différentes),
    là ... tu auras des soucis de " race condition ". 
    Labview est un langage qui est basé sur le "flux de données". Je suis contre tous les objets qui "brisent" ou "forcent" ce flux ... structure séquence, variable locale ...
    Eventuellement, un cas ou les variables locales peuvent être utilisées (en écriture), est le cas de l'initialisation avant exécution.
    et bien entendu ... dans une structure séquence et dans le flux. Jamais de "locale flotante".
    Les locales sont des objets "exotiques", qu'il faut utiliser le moins possible et toujours avec beaucoup de réflexion.

  • Additionne​r les éléments d'un tableau d'images

    Bonjour,
    Voilà mon problème: je fais l'acquisition de N images grâce à un VI d'acquisition créé sous le module Vision Acquisition. Ces N images sont regroupées les unes à la suite des autres dans un tableau 1D. J'aimerai additionner chaque cellule du tableau pour n'obtenir qu'une seule image qui ne soit pas un tableau.

    Pourquoi cette structure séquence et toutes ces variables locales   ... au lieu de simplement "cabler".
    Pour faire "+1" dans la boucle, utilise un Shift-Registre.
    (sur le problème de fond de l'addition d'images, je passe mon tour    )
    ceci dit, j'aime bien l'icone moi

Maybe you are looking for