Fonctionne​ment registre à décalage

Bonjour,
Pour éviter d'utiliser les variables globales, il est conseillé d'utiliser un VI composé d'une boucle While avec un registre à décalage non initialisé.
Comment et où sont stockées les informations du registre à décalage ? En quoi finalement cette méthode améliore l'usage de la mémoire comparativement à la variable globale classique ? 
Merci pour vos nombreuse réponses.
Slts
Solved!
Go to Solution.

Merci de ne pas soumettre plusiers copies de la meme question.  Vous avez poser la question en francais dans un forum qui est majorite anglophone; il existe aussi un forum francophone.
En plus, votre question n'est pas completement logique.  La registre a decalage stocke des donnees en soi - c'est la fonction d'une registre a decalage.
Une registre a decalage non initialise n'est pas forcement mieux qu'une variable globale - par exemple l'acces a une variable globale est plus vite.  L'avantage d'une registre a decalage est qu'il est possible de faire des actions plus complexe que lire et ecrire sans la risque d'une "race condition" (je ne connais pas la bonne traduction de cette phrase).  Une presentation sur l'usage des registres a decalage: https://decibel.ni.com/content/docs/DOC-21226
Translation of the original question into English:
Hello,
To avoid using global variables, the use of a VI containing a While loop with an uninitialized shift register is recommended.
Where and how is the data stored in a shift register?  How does this method improve memory use compared to a global variable?
Thanks for your many replies.

Similar Messages

  • Registre à décalage

    Bonjour,
    J'ai développé récemment une IHM dans le cadre de mes études d'ingénieur. Cette IHM devait envoyer des commandes de tensions vers une carte électronique via une liaison RS232. La carte électronique envoyant ensuite cette commande de tension sur une ou plusieurs voies (24 au totale) afin de polariser une antenne.
    J'ai donc mis 24 controls numérique (pour l'envoi de la valeur de tension/ un par voie) ainsi que 24 cases à cocher (pour la sélection des voies) sur mon IHM. J'ai ensuite mis une structure évenement (avec un évenement sur chaque sélection de la case à coché pour l'envoi de la valeur de la tension) je stock ensuite les 24 valeurs dans un tableau. Lorsque j'appuis sur le bouton "envoi", je "dépile" mon tableau dans le VI d'envoie sur la liaison RS232. Un programme sur la carte électronique se chargant ensuite du traitement des valeurs différentes de 0V pour envoie vers l'antenne.
    J'ai don du utilisé 24 registres à décalage pour avoir accés à chaque valeur dans tous les évenements de ma strucuture évenement. Je suis finalement arrivé à une IHM parfaitement fonctionnelle mais je me posais la question s'il n'existait pas d'autre alternative que le registre à décalage pour mon IHM (parce que j'en ai passé des heures à relier chaque ligne de mes registre à décalage). Même question pour l'utilisation du tableau.
    J'epère avoir été clair.
    Merci
    Benjamin
     

    " extraire un à un les éléments d'un Cluster" ... ?
    il n'est pas possible " d'indexer " un Cluster.
    par contre, si tous les éléments du cluster sont du même type, tu peux convertir ton Cluster en Tableau ("cluser to array" dans la palette cluster)
    et ensuite ... indexer le Tableau obtenu.
    attention, les éléments dans le Tableau se trouveront dans l'ordre dans lequel il se trouve dans le cluster
    Tu me diras .... bein oui, je m'en doute :-)
    attention ... l'ordre dans le cluster n'est pas oblibatoirement l'ordre avec lequel ils sont graphiquement visibles (dans le cluster)
    Au départ ... l'ordre dans un cluster est l'ordre suivant lequel tu introduis les éléments dans le cluster.
    ensuite .... tu peux réorganiser cet ordre ... clic droit sur le bord du cluster + reorder controls in cluster.

  • Comment ça marche un registre à décalage qui remplace une variable globale

    Bonjour,
    L'utilisation des variables Globales n'est pas conseillée.
    Pour les éviter, il existe une méthode qui consiste à utiliser une boucle While composée d'un registre à décalage non initialiser.
    J'aurais besoin de comprendre comment LabView gère les registres à décalage. Lorsqu'on modifie la valeur du registre (pour remplacer la fonction écriture vers globale), comment et où LabView stocke-il l'information ?
    Merci pour vos nombreuses réponses.
    AKIRA.

    Bonjour,
    Lorsque l'on utilise un registre à décalage, la variable est stockée dans la RAM mais il n'est pas possible de savoir où exactement car cela permettrait de la changer, ce qui n'est pas le but d'un registre à décalage car il sert à protéger les valeurs stockées.
    Cordialement
    David S.| Certified LabVIEW Associate Developer
    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 LabVIEW 2012 : du 27 septembre au 22 novembre
    2 sessions en parallèle : Débuter a...

  • Comment remplacer un registre à décalager par une variable globale

    Bonjour tout le monde,
    Je vous sollicite encore une fois par manque d'expérience....
    Alors cette fois-ci j'ai un VI qui va acquérir une tension et faire la moyenne de celle-ci, mais mon problème est que j'utilise une boucle while avec un registre à décalage et d'après mon tuteur c'est à cause de cette boucle que je n'obtiens pas les résultats escontés.
    Il m'a donc conseillé de supprimer ma boucle while et de mette une variable globale qui gère la période de moyennage à la place de mon registre à décalage. 
    Le souci c'est que je ne connais ni d'adem ni d'eve cette variable...
    Est-ce que quelqu'un aurait l'amabilité de m'expliquer un peu cmt ça fonctionne parce que je ne trouve pas mon bonheur dans les exemples et les autres sujets?
    Et surtout est-ce la bonne solution?
    REM: le VI a été créé par une autre personne je n'est fais que de modifier la partie moyennage, donc les autres variables globales ne sont pas de moi.
    Merci d'avance!
    Attachments:
    VI_TEST2.vi ‏50 KB
    VI_TEST2.vi ‏50 KB

    Bonjour à toi,
    Tu trouveras ci-dessous un exemple d'implémentation d'une variable globale fonctionnelle :
    Basic Functional Global Variable Example
    J'ai regardé ton programme mais je ne suis pas sûr d'avoir bien compris ce qu'il devait faire, aussi je ne peux pas te conseiller entre les deux solutions, essaye avec la variable globale fonctionnelle cela sera de toute facon un bon exercice d'apprentissage.
    Pour le reste du programme, il est en principe fortement déconseillé d'utiliser des structures séquences déroulées. Il vaut mieux, si on veut s'assurer du bon déroulement de son programme, utiliser une structure de machine à état ou bien tout simplement le flux de données, principe natif de LabVIEW :
    Programmation par flux de données dans LabVIEW
    Machine à états simple
    J'espère que cela t'aidera,
    Bonne journée,
    M-Junior

  • Boucle FOR dans une boucle while avec un registre à décalage

    Bonjour à tous,
    je rencontre un problème au niveau de l'indexation de l'execution de mes commandes.
    Lorsque j'exécute mon programme, seulement la dernière commande est prise en compte.
    Faut-il enlever mon registre à décalage? Changer le mode du tunnel ?
    Cordialement
    Pièces jointes :
    Boucle FOR, while.JPG ‏134 KB

    ça peut avoir son utilité lorsque le diagramme est conséquent et illisible
    alors c'est que tu "reprends en main" le diagram d'un autre .... 
    sinon... si c'est le tien ... il ne sera jamais illisible.
    Et si tu veux "gagner du temps" ... je t'assure ... cable "propre" du premier coup.
    Lisibilité, compréhensibilité, évolutivité ... tu seras gagnant à tous les coups. (à 1000%)
    Sans compter "le coup d'oeil" quand "un autre" ouvrira ton code.
    Avant d'aller plus loin et de comprendre quoi que ce soit dans ce que tu as fait ...
    la propreté de ton diagram sera "ta signature".
    Ah oui ... un diagramme aussi propre que ça ... ça ne peut être que Geoffrey !
    ça l'fait non ?  

  • Registre à décalage, problème d'initialisation

    Bonjour,
    Sur l'image en PJ, j'ai réalisé un registre à décalage pour ma T_Consigne.
    Je souhaite l'initialiser avec la 1ère valeur relevée et ensuite comparer ma dernière valeur en mémoire avec ma nouvelle valeur.
    Néanmoins, à chaque itération, la valeur est à nouveau initialisée avec la nouvelle..
    Pourtant l'initialisation ne se fait qu'une seule fois?
    Résolu !
    Accéder à la solution.
    Pièces jointes :
    Registre à décalage.JPG ‏91 KB

    salut, j'étais en train d'écrire, et j'ai vu la réponse de ouadji, qui effectivement ouadji est bonne :
    le fond :
    > pour être utilisé dans la boucle, les contrôles doivent être dans la boucle
    > il te faut un case "init", au démarrage, qui va servir à lire la valeur des contrôles et initialiser les registres à déclages
    la forme : une image permet de regarder rapidement, un exemple permet de comprendre ton problème.
    A+
    Luc Desruelle | Voir mon profil | LabVIEW Code & blog
    Co-auteur livre LabVIEW : Programmation et applications
    CLA : Certified LabVIEW Architect / Certifié Architecte LabVIEW
    CLD : Certified LabVIEW Developer / Certifié Développeur LabVIEW

  • Registre à décalage et initialisation DMM

    Bonjour,
    Je developpe actuellement un logiciel permettant le contrôle d'étalonnage de capteur de pression avec des carte PXI 4065.
    La structure de mon programme est un registre à décalage, plusieurs étapes me permettant d'initialiser les matériels que j'utilise (générateur de pression étalon et cartes multimétre).
    Afin de réaliser des mesures de qualité, je dois respecter un temps de chauffe matériel et pour cela initialiser la communication quelques étapes avant de réaliser ma mesure.
    Malheureusement, je n'arrive pas à garder "fermé" le contact de ma carte au moment de la mesure, celle-ci se réinitialise de façon systématique au moment de l'acquisition de la valeur.
    Est-il possible de lire uniquement la valeur sans recharger la configuration hardware dans la carte d'acquisition. (Je suis obligé d'utiliser un bloc Initiate sinon j'ai une erreur "handle instrument error" avant le bloc read)
    D'avance merci!
    Cordialement

    Hello Pod_Bol,
    The issue is you're reinitializing the DMM.  I recommend wiring the DMM session handle from NI-DMM Initiate to a front panel indicator, so you can pass the session handle to the Mesure subVI.  It would look something like this:
    Of course, you could also accomplish this by closing the session in one VI and then reinitializing it in another without resetting the device, but this is sloppy coding:
    General comments:
    -Are you using the PXI-4060?  The PXI-4060 is the only PXI DMM NI sells that has a 200mV range.  If you're using any PXI-407x DMM, I recommend using the 100mV for better sensitivity (if your measurement is less than 100mV, of course) or specifically set the 1V range.  As your code is written, requesting the 200mV range on a PXI-407x DMM will coerce to the 1V range.
    -The flat sequence structure in Mode measure.jpg is unneccessary.
    -There is no reason to add a delay to the DMM while calling commit (ExpressVI inside Vrai case structure).
    -There's probably a better way to store the data than in the dynamic data array you're generating from each measurement. 
    Are you possibly trying to acquire multiple data points from the DMM?  If so, I recommend using the excellent NI-DMM Example VIs, located here:
    Example Finder»Hardware Input and Output»Modular Instruments»NI-DMM»Multi-Point Measurements
    Let us know if you have any other questions and I'm happy to clarify.  Have a great day!
    -John Sullivan
    Analog Engineer

  • Variable ou Registre à décalage ?

    Bonjour à Tous,
    J'ai des questions sur le choix entre variable ou registre à décalage.
    Exemple :   
             Dans une boucle While, il y a une machine d'état comportant 10 Conditions. A la condition 1, vous générez un indicateur comprenant un résultat que vous voulez utiliser dans les conditions 8 et 9.
    Les questions à répondre sont les suivantes :
    - Vous choisissez quoi : registre à décalage ou variable ?
    - Lequel est le moins gourmand en ressource ?
    - Si vous choisissez la variable, a partir de combien de conditions dans lequelles vous avez besoin de ce résultat vous passerez à un registre à décalage ?
    Merci beaucoup, si possible répondre au trois questions
    Résolu !
    Accéder à la solution.

    Bonjour,
    Le concept majeur de la programmation sous LabVIEW est le concept de flux de donnees, le fait d'utiliser une variable locale va casser ce concept via les noeuds "lire/ecrire dans une variable locale...".
    L'utilisation d'un registre a decalage va permetre d'assurer la continuite de ce flux de donnees a travers la boucle while.
    C'est donc la meilleure methode a suivre et ne prendra pas plus de memoire au cours de l'execution du VI qu'une variable locale.
    Dans certains cas on pourra meme remplacer le registre a decalage par un noeud de retroaction.
    Cordialement,
    Da Helmut

  • Problème de fonctionne​ment de Vi d'exemple avec USB-6009

    Novice sur cet outil que je viens de recevoir, je commence par utiliser les vi exemple pour générer et mesurer une donnée
    par exemple celui ci dessous :
    Cont Gen Voltage Wfm-Int Clk-On-Board Regeneration.vi
    J'ai mis type cadence d'échantillonage "On demand" sinon erreur
    Puis après lancement j'ai le message d'erreur suivant dans le sous vi
    Waveform Buffer Generation (multi).vi
    "L'erreur -200452 s'est produite à : Nœud de propriété DAQmx Timing (arg 1) dans Waveform Buffer Generation (multi).vi->Cont Gen Voltage Wfm-Int Clk-On-Board Regeneration.vi
    Raisons possibles :
    La propriété spécifiée n'est pas supportée par le périphérique ou ne s'applique pas à cette tâche.
    Propriété: HorlÉchant.Fréq
    Nom de tâche : _unnamedTask<20>
    Comme je n'ai touché à rien et que je suppose que les exemples sont bons, est ce que quelqu'un saurait quels infos il me manque pour faire tourné correctement la carte que j'ai testé et qui fonctionne bien

    Bonjour,
    Comme vous avez pu le constater le VI Waveform Buffer Generation (multi).vi qui s'occupe de créer le buffer pour la génération de vos signaux permet de configurer DAQmx et notamment le cadencement de la sortie. Or bien qu'en mettant la propriété à "On Demand" celui-ci essaye de régler la fréquence d'échantillonnage à une certaine valeur, ce qui est impossible avec le matériel USB 6009 qui ne supporte que le cadencement logiciel.
    Il vous faudra alors modifier l'exemple dans sa totalité si vous souhaitez avoir une génération de signaux "quasi" identique. Mais cet exemple n'étant pas fait pour ce matériel, je doute du résultat.
    En vous souhaitant une bonne journée.
    Cordialement,

  • Fonctionne​ment de AmpPhaseSp​ectrum

    Bonjour,
    J'ai besoin de tracer le spectre de phase d'un signal et j'utilise la fonction AmpPhaseSpectrum. Cependant, malgré l'aide de LabWindows je ne comprends pas à quoi le df correspond vu qu'il est considéré comme une sortie. De plus, à quoi correspond le NumberOfElements de cette fonction? Comme je passe un tableau(équivalent à un vecteur) de points en variable, il est stipulé que la longueur de ce tableau doit être au moins égale à NumberOfElements/2, pourquoi?
    Ensuite, j'essaye de tracer grâce à la fonction PlotXY mon spectre de phase (x la phase, y l'amplitude). Quand je compile et exécute le tout et que je clique sur le bouton (de l'interface que j'ai créée) qui est censé me générer mon spectre de phase j'obtiens le message d'erreur suivant :
    The program has cause a 'General Protection' fault at.... au niveau de la ligne où se trouve AmpPhaseSpectrum. 
    Je ne comprends pas.
    Merci d'avance,
    _trent_
    Résolu !
    Accéder à la solution.

    Ok merci, j'ai compris pour le NumberOfElements/2. Mais concernant le df, je dois faire quoi du coup? Je déclare un pointeur et je le mets dans la case df du recall fucntion panel? ou bien je ne met rien du tout? Parce que j'ai déclaré un double* df et je l'ai passé comme paramètre pour df mais ça ne me change pas l'erreur...
    Ah et puis ce que je n'ai pas dit non plus c'est que j'ai modifié tout mes tableaux contenant les différents points des signaux que je manipule en leur donnant une longueur de 50. En même temps, j'ai mis 64 pour number of elements donc normalement, si j'ai bien compris, la longueur des tableaux ne devrait pas poser de problème, si? Et puis du coup j'obtiens l'erreur suivante : Array argument too small. Argument must contain at least 64 elements.
    Du coup, je me place à NumberOfElements=32. Et ca me ramène à ma première erreur (Genral...) 

  • Principe de fonctionne​ment synchronis​ation 9205 ?

    Bonjour,
    Je souhaiterai travailler avec une carte 9205. Après avoir lu la datasheet de la carte NI9205, je n'arrive pas à comprendre son fonctionnement. Ou du moins, je pense l'avoir compris, mais n'en suis pas sûr.
    Ses caractéristiques sont 250 kHz de femax, 32 voies.
    Admettons que je travaille avec 16 voies. La fréquence maximale d'échantillonnage entre deux points d'une même entrée sera de 250/16 soit 15625 kHz, soit 64 µs.
    Prenons des signaux d'une fréquence de 50 Hz. Entre la première et la seizième voie, il y a donc une erreur de 64 µs (qui correspond à 16 x 4 µs, le temps de conversion du ADC).
    A 50 Hz, l'erreur de déphasage correspondante est de 1.15° ? (soit 360° / 20 ms x 64 µs) ?
    Les points arrivent bien avec le même horodatage pour une même trame donnée (de la première à la 16e, au premier coup, on a t0 ; de la première à la 16e, au second coup on a t0 + 64µs, etc.
    Merci !
    Résolu !
    Accéder à la solution.

    L’horodatage tient compte du déphasage entre les voies. Vous n’avez pas
    besoin de recaler les valeurs.
    Je vous joins un
    imprime écran montrant l’acquisition sur 16 voie d’un système simulé (NI Dac
    9172 et le module NI 9205). Sur celui-ci, il est possible de remarquer le
    déphasage entre les voies (0 à 15), de plus l’horodatage du premier échantillon
    est affiché (à droite) pour les voies 0 et 15. Les valeurs entre les deux sont
    bien différentes.
    Cordialement Samuel G.
    Samuel G. | Application Engineer Team Leader
    Certified LabVIEW Developer
    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;}
    Été de LabVIEW 2014
    12 présentations en ligne, du 30 juin au 18 juillet

  • Question fonctionne​ment logiciel labview , pour TPE lycée, Urgent SVP

    Bonjour,
    Nous sommes élèves d'un lycée et nous travaillons, dans le cadre d'un TPE sur la détection des exoplanètes par la méthode de transits: une variation de la courbe de la lumière d'une étoile prouverait l'existence d'une exoplanète en rotation autour de celle ci.
    notre problème:
    Nous avons reussi avec le logiciel Labview à faire une acquisition des données de notre expérience, et nous souhaitons afficher en temps réel la courbe de cette acquisition. Cependant, le logiciel nous affiche les données seulement en temps réel, il nous montre la variation de la lumière, sur l'instant, et nous aimerions pouvoir voir la courbe de cette lumière sur plusieurs secondes ( 10 ou 20 s). Il nous faudrait donc que le logiciel enregistre les données précédentes dans le temps et nous ne trouvons pas le moyen de le faire, surtout que nous ne comprenons que très peu l'anglais.
    Je vous met en pièce jointe le document labview que nous avons tenter de réaliser pour pouvoir afficher une courbe de la lumière dans le temps.
    et une image exposant notre problème.
    J'espere vraiment que vous pourrez répondre à ce message et nous aider, nous sommes bloqués à cette étape pour le reste du TPE, et le professeur ne sait, lui aussi, résoudre ce problème.
    Merci d'avance
    TL - lycée jean monnet
    Attachments:
    TPE_exoplanete.vi ‏81 KB
    TPE acquisition labview2.JPG ‏18 KB

    Alors... je ne sais pas ce que vous avez comme matériel d'acquisition, mais selon la configuration du VI express la fréquence d'acquisition (Rate) est de 1000 Hz et les acquisitions se font par bloc de 1000 points (Samples to read).
    Donc lorsque votre programme s'exécute, tant que vous ne cliquez pas sur "Stop", chaque seconde vous récupérez un bloc de 1000 points correspondant à une seconde de signal et vous affichez ces 1000 points dans un graph. Donc en effet vous n'avez pas l'historique, vous ne voyez que la seconde écoulée de signal.
    Pour avoir un historique, le plus simple est de remplacer le Graph (Waveform Graph) par un Chart (Waveform Chart). D'une éxécution de boucle à l'autre le chart va conserver les données ou "les ajouter à la suite bloc par bloc".
    La longueur de l'historique par défaut du chart est de 1024 échantillons, vous pouvez modifier cette taille en faisant un clic droit sur le chart, puis "chart history length" (littéralement : longueur de l'historique du chart), mettez 20000 (20 sec * 1000 Hz)et vous pourrez ainsi visualiser 20 secondes de signal.
    Pour ce qui est de l'enregistrement des données vous pouvez utiliser un VI express qui s'appelle "Write to measurement file", de la même manière que pour le DAQ Assistant vous pourrez le configurer afin d'avoir le type de fichier que vous souhaitez.
    Je suppose que le TPE doit être une occasion pour vous de mettre les mains dans le camboui donc je vous souhaite bon courage, si vous avez plus de question n'hésitez pas.
    PS :  une très bonne source d'inspiration pour les débutants : Help >> Find example... >> onglet "search" et faite une recherche avec "graph".
    When my feet touch the ground each morning the devil thinks "bloody hell... He's up again!"

  • Tracer sur un graphique la températur​e en fonction du temps

    Bonjour à tous,
    J'ai créé une interface me permettant de créer un scénario en plusieurs étapes.
    Avec comme commande, un palier ou une rampe et les paramètres associés.
    Ces données sont affichés dans un cluster.
    Ce que je souhaiterai, c'est afficher visuellement (graphiquement) mon profil tracé.
    Comment s'y prendre ?
    Cordialement
    Pièces jointes :
    Scenario_key.vi ‏49 KB

    Juste une idée sur le "fond" du code ,
    Je verrais plus ceci :  
    utiliser les noeuds de propriété au minimum.
    Il n'y a pas besoin de "relire" la valeur "IndexVals" à chaque fois ... la mémoriser dans un registre à décalage est suffisant.
    (tenir à jour ce SR dans les autres diagrammes de la structure event ... bien entendu)
    Aussi ...utilisation avantageuse de la structure "in place".
    (le code est minimum, c'est juste pour montrer)

  • Problème graphe en temps relatif

    Bonjour,
    J'ai crée un VI d'acquisition de tension avec un port USB NI9219 qui mesure différentes tension d'entrée à une fréquence élevée(ex : 100 Hz). De plus mon VI enregistre les mesures que lorsque la tension mesurée change de 0,01v. Le VI trace également les courbes de tension dans un graphe déroulant qui comporte tous les points enregistrés (et seulement ceux la) depuis le lancement de l'application.
    C'est sur ce point que je n'arrive pas à avoir un graphe déroulant avec plusieurs courbes (4 maximum) avec une échelle des x en temps relatif. C'est à dire de t=0 (ex : minutes) jusqu'a t=fin du VI
    Lorsque je met les x en temps relatif il ne me met pas de temps mais des valeurs abérantes. De plus il n'incrémente pas du temps éffectué entre 2 mesures, il incrémente le temps de 1.
    (ex : on a t=5min entre 2 mesure enregistrées mais la courbe incréménte le temps de 1 sur la valeur abérante).
    Avez vous des solutions pour mon problème. Merci.
    Cordialement.
    Solved!
    Go to Solution.

    Cette valeur correspond à l'heure de la mesure, 952500:36:41 correspondant à 14h36 et 41s.
    Cela permet d'horodater les points plus précisément.
    Si vous souhaitez recréer votre échelle de temps en X, il faudra modifier le T0 de votre courbe.
    Pour cela vous allez devoir utiliser la fonction Construire une waveform permettant d’insérer votre courbe et aussi de modifier le t0, on insère cette fonction dans une boucle For afin de traiter les 4 courbes.
    Au départ du VI on initialise un registre à décalage à 0 afin que nos premiers points commencent à 0, puis on devra multiplier l’horloge d’échantillonnage par le nombre de point afin de définir le t0 des tours de boucles suivants.
    Cela devrait résoudre votre probléme.
    Cordialement
    Christophe S.
    FSE East of France І Certified LabVIEW Associate Developer І National Instruments France

  • Changer etat d une variable booléenne

    Bonjour.
    Je débute avec labview et j'ai généré un signal numérique dont l'état est stocké dans une varable booléenne que je dois faire évoluer au cours du temps. La règle d'évolution du signal est que le signal a une chance sur dix de changer d'état.
    J'ai donc créer une variable booléene correspondant à l'état du signal, créer une boucle infinie à l'aide d 'une boucle while,stocker l'état du signal à laide d'une registre à décalage, réaliser un tirage aléatoire.
    VOIR pièce jointe
     Il faut que je crée une condition pour que l'état de ma variable booléenne change et la je bloque (passage de 0 à 1 ou vice versa); l'énoncé me demandant qu'il y ait une chance sur 10. Il me restera à afficher les résultat dans un graphe déroulant.
    Quelqu'un pourrait-il m'aider en m'indiquant comment changer l'état de ma variable afin que je puisse poursuivre mon travail?
    MERCI
    Résolu !
    Accéder à la solution.
    Pièces jointes :
    IMAGE 1.png ‏25 KB

    Merci beaucoup pour votre réponse qui m'a beaucoup aidé dans la partie 1. Je me permets donc de revenir vers vous pour la suite qui me pose un peu problème.
    Voila dans un premier temps ce qui m'est demandé dans la suite de l'exercice (partie 2)
     II] décodage des fronts montants
     On souhaite maintenant compter l'ensemble des fronts montants du signal. Pour cela, il faut détecter les changements d'état du signal (d'état bas à état haut).
     Modifier votre programme précédent pour stocker le nombre de fronts montants.
    Etapes intermédiaires :
    - créer une variable compteur
    --‐ Utiliser un registre à décalage pour pouvoir incrémenter le compteur
    --‐ Incrémenter le compteur lors d'un changement d'état
    Cela ne ME pose a priori pas de problème voir pièce jointe image 2.
    Qu'en pensez vous?
    La partie 3 me pose un peu plus de problème de part l'utilisation du MYDAQ.
    VOIR PIECE JOINTE INFO
    En fait j'éprouve des difficultés à retrouver le signal avec le MYDAQ. Je pense que le programme fonctionne mais je n'arrive pas à le relire avec l'oscilloscope.
    Voici la consigne de la partie 3 :
    3  génération du signal à l'aide du MYDAQ
    On souhaite maintennant envoyer le signal simulé sur la ligne de sortie D0 du MYDAQ. Pour cela, on doit modifier notre programme pour ajouter l'envoi du signal numérique sur la sortie D0 du MYDAQ. Réaliser la génération du signal corespondant sur sortie et vérifier à l'aide de l'oscilloscope MYDAQ que le signal est correct; Vous devez obeserver exactement le même signal que celui de votre face avant.
    Pouvez-vous m'indiquez si cela vous semble correct?
    Je vous emercie encore pour votre aide qui m'a fait beaucoup progressé.
    Pièces jointes :
    Image 2.png ‏87 KB
    info.png ‏248 KB

Maybe you are looking for

  • Illustrator CC won't open and asks for Verdana font to be enabled

    Has anyone encountered this error message? "Illustrator CC has stopped working. Please enable Verdana font(s) and relaunch Illustrator." I've checked the font and it's enabled but Illustrator refuses to open. I uninstalled CC and reinstalled it, but

  • Opening an ADF page from an OA framework page

    Hello, We have an OA framework page (a custom app) deployed in Oracle 9i Application server. We intend to develop some ADF pages which will be deployed in a separate Oracle 10g AS. I would like to know if it is possible to open an ADF page from an OA

  • Passing parameter from selection screen to corresponding report program.

    Hi all, I am developing a report in which there is a selection screen containing 2 list boxes having month 'from' and 'to' ;ie the month range for which  the report is to be run and a parameter for year.below it i have 2 radio button options which wi

  • Integrating Mobile device with SAP XI

    Hai,        In integrating mobile device with XI.       What are the settings i need to do in ALE settings.       what type of adapter i need to use. please provide complete information related to SAP R/3 settings like 1. logical system 2. rfc destio

  • Moving to Sky but can I still use my BT internet e...

    Been with BT internet for years but am moving to Sky. Will I still be able to use my @btinternet.com e mail  address after I have left? I did go to aol years ago but came back. In the time I was away I was still able to use my @btinternet.com email.