Lecture / Ecriture simultannée

Bonjour,
Pour une application, il me faut générer un signal sinusoidale qui est envoyé dans un procédé de commande et je dois lire la sortie de ce procédé, jai réaliser mes VI FPGA et RT qui me semble bon mais je ne saisi pas si il est judicieux de lire et écrire les cartes E/S dans un même VI, exist-il un moyen plus fiable?
Cordialement
Nathan
Résolu !
Accéder à la solution.
Pièces jointes :
Regul Num.7z ‏309 KB

Bonjour,
Tout le monde n'a pas 7zip sur son pc. Tu pourrais remettre ton code en zip classique. Ce sera plus facil pour t'aider.
Donc sinon avant de regarder ton code, si tu accèdes aux modules d'entrées ou de sorties dans un même VI FPGA, pas de soucis au niveau des ressources, le FPGA est fait pour fonctionner en parallèle. Pour la partie RT, il faudra regarder ton code, mais tu peux faire des tâches en parallèles, mais si tu perds la connexion, il y a des chances que soit le CompactRIO est un peu en surcharge, soit le réseau a du mal à envoyer toutes les données.
Dans tous les cas, une face-avant RT a vocation a être supprimée même si pendant le développement, c'est bien pratique et rapide de l'exécuter directement. et il est préférable d'avoir une application hôte (sous windows) qui communique avec le CompactRIO pour afficher les données.
Je t'invite également a regarder ce document si ce n'est déjà fait pour t'aider dans le développement de ton applciation CompactRIO : http://www.ni.com/compactriodevguide/f/
Merci
.mesLeft{float:left} .mesInfo{border-left:solid 1px #989898;font-size:x-small;color:#989898} .mesLogo{float:right;opacity:0.18} .mesLogo:hover{opacity:0.9}
Maxime R.  
  CLD - Certified LabVIEW Developer / Développeur LabVIEW Certifié  
  CLAD - Certified LabVIEW Associate Developer   

Similar Messages

  • Synchonisation lecture ecriture

    Bonjour,
    j'uitlise une carte PCIe 6341 pour générer une rampe de potentiel envoyée à un appareil et je récupère un potentiel au retour. Pour cela, j'ai un module en VB6 qui génère la rampe de potentiel (TH_volta) et récupère le potentiel (TH_lecturecourant). La forme de la rampe est stockée auparavant dans le tableau_E et le signal est récupéré dans le tableau_I.
    Ca marche sans message d'erreur. Mon probleme est que lorsque la frequence augmente les deux signaux se désynchronisent. En gros, les points du tableau_E ne correspondent plus à ceux du tableau_i.
    Avez-vous une idée ?
    Merci. Cordialement !
        '----------------- GENERATION SIGNAL EN SORTIE-----------------
    DaqmxErr = DAQmxCreateTask("", TH_volta)            'tache génération du signal triangulaire
    DaqmxErr = DAQmxCreateAOVoltageChan(TH_volta, DAQmx_device & "/" & DAQmx_output_channel, "Uin", _
                                                                    -1 * gammeV, gammeV, DAQmx_Val_VoltageUnits2_Volts, "")
    DaqmxErr = DAQmxCfgSampClkTiming(TH_volta, "OnboardClock", frequence, DAQmx_Val_Rising, _
                                                               DAQmx_Val_AcquisitionType_FiniteSamps, nb_points * nb_cycles)
    DaqmxErr = DAQmxWriteAnalogF64(TH_volta, nb_points * nb_cycles, True, -1, _         
                                                      DAQmx_Val_GroupByScanNumber, tableau_Eeff(0), nb_sample_ecrit, ByVal 0&)
        '---------------- MESURE DE LA VOIE i ------------------------
    DaqmxErr = DAQmxCreateTask("", TH_lecturecourant)   ' tache récupération du courant (sous forme d'un potentiel)
    DaqmxErr = DAQmxCreateAIVoltageChan(TH_lecturecourant, DAQmx_device & "/" & DAQmx_inputY_channel, _
                                                                  "Courant", DAQmx_Val_InputTermCfg_RSE, -1 * gammeI, gammeI, _
                                                                  DAQmx_Val_VoltageUnits2_Volts, "")
    DaqmxErr = DAQmxCfgSampClkTiming(TH_lecturecourant, "OnboardClock", frequence, DAQmx_Val_Rising, _
                                                               DAQmx_Val_AcquisitionType_HWTimedSinglePoint, _
                                                               nb_points * nb_cycles)
    DaqmxErr = DAQmxReadAnalogF64(TH_lecturecourant, nb_points * nb_cycles, -1, _
                                                           DAQmx_Val_GroupByScanNumber, tableau_i(0), nb_points * nb_cycles, _
                                                           1, ByVal 0&)
    DaqmxErr = DAQmxStartTask(TH_lecturecourant)

    Bonjour,
    Merci pour votre reponse.
    J'utilise en effet la liaison de donnée pour la lecture et l'ecriture de variable sur le bus Modbus.
    Il doit y avoir un probleme de synchronisation car cela ne foncionne que pour l'ecriture seule ou la lecture seule.
    J'ai essayé d'utilisé des variables partagées comme vous l'avez suggeré. Je crée donc un I/O servor OPC.
    Je le caractérise en OPCLookOutDrivers puis je declare de nouvelle variable dans mon projet que je lie au elements du serveur OPC precedement declaré.
    Update:100ms
    DeadBand:0%
    Reconnect PollRate:1s
    Server Instance Preference:In process
    Read/Write Method:Asynchronous
    Lorsque j'utilise ces variable dans un Vi, le flag de la connection reste rouge, donc echou.
    Je ne comprend pas pourquoi cela ne fonctionne pas...

  • Problème Lecture/Ecriture fichier binaire

    Bonjour,
    Mon objectif est de créer un programme qui permet de lire un certain nombre d'octets dans une trame qui se répète plusieurs fois dans un fichier A . Il faudrait que je puisse enregistrer ses données dans un autre fichier binaire B.
    J'ai réalisé deux VI, un permettant la lecture et le filtrage des données, un autre permettant l'écriture des données dans un fichier à part.
    Celà fonctionne presque... En fait lors de l'écriture des données dans le nouveau fichier B , 4 nouveaux octets apparaissent  sans qu'ils ne soient présent dans les données que j'envoie à  la fonction "Ecrire dans un fichier binaire". Après quelques tests, je me suis aperçu que ces 4 octets représente le nombre d'éléments que je récupère à la lecture du premier fichier A..
    Par exemple, si je décide de lire 4 octets  par trame  dans le fichier A, le traitement se passe correctement; et j'enregistre ces données dans un tableau.
    Ensuite lorsque je transfert les données de ce tableau dans le fichier B, devant chaque élément je trouve 00 00 00 04. J'ai aussi remarqué que ces octets sont au format Big-Endian alors que je travaille au format Little-Endian.
    Exemple en images :
    Le fichier départ est octets_départ.jpg << En rouge les 4 octets que je sélectionne.
    Le fichier final est octets_final.jpg << En rouge les 4 octets sélectionnés précedemment, en vert les 4 octets non demandés !
    Je peux fournir les fichiers VI  si besoin.
    Merci d'avance à ceux qui prendront la peine de me lire,
    Cordialement,
    English :
    I want to realize a program who read binary file and keep only words I want. So I wrote two VI for this. One who read the first binary file A, and one who write these data in a binary file B.
    My problem is when I write the data from the file A, I write 2 words I  don't want to write too. Apparently, these words represent  the number of words I select in the first binary file A.
    These images show that.
    The first picture : octets_départ.jpg << In red the words I want to keep.
    The second picture : octets_final.jpg << In red the words I keep from the file A, in green the words I don't want and I don't know.
    I can send the VIs if it's necessary..
    Best regards,
    Thanks for your attention.
    Jérôme LIBBRECHT
    Message Edité par JeromeL le 08-27-2007 07:34 AM
    Jérôme LIBBRECHT
    Attachments:
    octets_départ.JPG ‏10 KB
    octets_final.JPG ‏3 KB

    J'ai trouvé la solution.
    La fonction "Ecrire dans un fichier binaire" intègre une entrée permettant de choisir si l'on veut ajotuer la taille ou nom de ce que l'on écrit. Je n'avais pas câblé cette entrée, et donc par défaut, il m'ajoutait la taille.
    Il faut rajouter une commande ou une constante booléenne de valeur  "FALSE" pour éviter le problème que j'ai décrit plus haut.
    Merci quand même.
    Cordialement;
    English
    I have found ! The function "Write to binary file" include an entrance to specify if you want to add the Size of the data you write. I had put nothing on this entrance, so the default value was to add the size.
    I add a constant value to FALSE in this entrance and I didn't have the problem
    Thanks for your help.
    Jérôme LIBBRECHT
    Best regards,
    Jérôme LIBBRECHT

  • Lecture/Ec​riture

    Hi,
    Je souhaiterai avoir une aide pour mon soft.
    J'ai un programme sur labview qui me fait une lecture/ecriture dans une mémoire via RS232. Et m'affiche le résultat sur un tableau (taille 128*128), En somme ce que j'écris doit corresponde à ce que lis. Tout cela marche.
    Mais j'aimerais maintenant si possible pouvoir soit entourer ou soit afficher mes données qui ne correspondent pas à ce qui sont ecris. (mes données envoyées sont des bit soit 1 soit 0 sur 128*128).
    Donc S'il y a une diffrence entre l'écriture et la lecture je veux la faire apparaitre visuellement (souligné, entourer, afficher en gros)
    Toutes vos propositions seront les bienvenues.
    Thanks for your help

    Hello,
    Si c'est un tableau, tu ne peux pas le faire. Tous les éléments d'un tableau ont la même apparence.
    Tu pourrais essayer de supersposer un tableau de nombre et un tableau de leds, mêmes taille. En rendant la led transparente à l'état faux et en couleur à l'état vrai, tu verras la couleur au travers du tableau de nombre là où il y a erreur. il faut mettre le tableau de leds en arrière-plan, et rendre le "fond" du tableau de chiffres transparent pour voir les leds allumées au travers.
    Ce n'est qu'une idée...
    Francis M | Voir mon profil
    Certified LabVIEW Developer

  • Authorisations to run Adobe Reader under Windows 8

    Under windows 8 with adobe reader 11, I have not been able to launch the program. Each time the system says I don't have the authorisations required (even when I follow instructions to get additional authorisations which I seem unable to obtain despite using the normal sequence of "properties" , "security" " advanced  etc. and in this case I get the following message in the "target" slot"
    The name "c:\program files\adobe\READER 11.0\Reader\AcroRd32.exe" is not valid. Verify that the routing (?) and the name of the file are correct
    when I click on  the Security tag although the location of the programes of Adobe Reader 11 are in fact in the location detailed above. It would seem that windows 8 has a security system that I don't seem to be able to adjust. (I have used Acrobat under Vista and under XP without these problems) . At the moment and after three days of efforts I am still incapable of getting Reader 11 to run..

    (a) After installation of Reader 11.0, the following text appears on the 
    screen after either double clic on the screen icone or clic on c: directory 
    (c:\programmes\adobe\Reader 11.0 :-
    Title: Reader 11.0
    Vous ne disposez pas des autorisations requises pour acceder à ce dossier 
    (Translation (not on screen): You don't have the authorisations required to 
    accede to this file)
    (There are two tabs ("Continue" and "Cancel")
    If one clics on "Continuer" the screen reads:
    Reader 11.0
    L'acces à ce dossier vous a été refusé. Pour acceder à ce dossier vous 
    devez utiliser l'onglet de securité :
    Translation: Acces to this file for you has been denied. To acces this 
    file  you should use the "Security" tab.
    One tab: "Fermer" (Close)
    If one then does a right clic on the Reader 11.0 screen icone, and then 
    clic on "properties" then clic on "Security", I get a listing of "groupes or 
    users"  which for this computer gives the following : "System", "John 
    Willis([email protected]"), "Administrateur (rulepar\Administrateur), 
    "Administrateurs (rulepar\Administrateurs), "Interactif". Each of these has a  check
    mark against "Controle Totale",
    "Modification", "Lecture et execution", lecture", "Ecriture" and the three 
    "rulepar" entries each have a check mark against "Autorisations  spéciales".
    If one clics on the tab "Avancé" then
    on the "Autorisations tab  'john willis ([email protected]_
    (mailto:[email protected]) ), 'Administrateur  (rulepar\Administrateur), "INTERACTIF",
    "Administrateurs  (rulepar\administrateurs), "Systeme"  all have "Controle Totale"
    ,  "Interactif" has "Lecture et Execution"  and "Administrateyr 
    (rulepar\Administrateur) and "john willis ([email protected]_ (mailto:[email protected]) )
    have "Special"
    on the "Partage" (share?) tab there are two entries (Type = Autoriser" 
    Principal for "Administrateurs (rulepar\Administrateurs) and "Tout le monde 
    (everybody)
    on the Audit tab there is nothing and on the Acces Effectif page there is 
    "Select a user but nothing else.
    The title of this page is c:\users\Public@Desktop\Adobe Reader XI. lnk 
    under a page title "Parameters of advanced security for Adobe Reader XI
    Regards and thanks
    John Willis
    [email protected] (mailto:[email protected])
    In a message dated 05/06/2013 14:35:32 Paris, Madrid (heure d’été), 
    [email protected] writes:
    Re:  Authorisations to run Adobe Reader under Windows 8
    created by Pat Willener (http://forums.adobe.com/people/pwillener)  in 
    Adobe Reader - View the full  discussion
    (http://forums.adobe.com/message/5380876#5380876)

  • Evénement déclenché par une variable connectée par Datasocket à un serveur OPC

    Bonjour,
    J'utilise un serveur OPC pour lire et écrire des variables sur un automate. J'ai essayé de connecter les variables directement avec un connexion Datasocket et d'utiliser les VI en exemple. Dans les deux cas, les ressources de mon PC augmentent et les temps de réponse sont assez longs.
    Dans mon application, j'ai besoin d'"attendre" une valeur particulière d'une variable automate. Je voudrais donc dans un premier temps, vérifier que la variable n'est pas à la valeur souhaitée et si ce n'est pas le cas, avoir un événement qui se déclenche au changement de valeur de cette variable. Cette méthode de programmation fonctionne lorsque la connexion de la variable locale n'est pas activée, mais pas avec la connexion Datasocket.
    Est-ce normal? Y-at-il un moyen pour que ce soit le serveur qui informe le client Labview que la variable a changé d'état?
    Cécile

    Bonjour Cécile !
    Et bienvenue sur ce Forum ...francais
    Je ne vous apporterai pas d'élément complet de réponse car je n'ai jamais utilisé de process DATASOCKET .
    Cependant je pense pouvoir vous aider lorsque , je vous cite :
    "Dans les deux cas, les ressources de mon PC augmentent et les temps de réponse sont assez longs. "
    Je pense que vous utilisez des boucles contenant des tableaux ou des variables locales et pire encore ,pour l'espace mémoire, des fonctions concaténation, des fonctions de modification de tableau etc...
    En effet contrairement à certains languages de programmation utilisant des boucles (presque tous maintenant) Labview génére à chaque itération de boucle une allocation mémoire (différente si ce n'est pas le premier appel ) lors d'une lecture ou écriture de variable locale (imaginez alors si c'est un tableau de clusteur par ex...) l'utilisation mémoire augmente alors à chaque lecture ecriture des variables...
    Utilisez un registre à décalage (click droit sur la boucle for ou while) pour que votre variable soit transmise à la prochaine itération (même en arretant Labview, vous pouvez utiliser les valeurs précédents l'arret !) et ne soit plus réallouer à chaque itération
    vous pouvez avoir plus de détails en lisant l'Application note suivante...
    Labview Performance and Memory Management
    et un sujet (en anglais) qui définit bien la différence et le fonctionnement des variables
    locales et noeuds de propriété
    que vous pourrez retrouver dans le répertoire manuals de LAbview...n'oubliez pas de préciser à chaque sujet votre config et des infos précises sur votre problème , le monde des sytèmes electronique - informatique et vaste et varié...
    CordialemntMessage Edité par Ecosmose_CNRS le 05-26-2005 06:13 PM
    Julien
    Conception Informatique et électronique
    CNRS LCSR Web
    Orléans la Source FRANCE

  • Daqmx 200088

    Bonjour  tous,
    je suis sous labview 2011.
    J'ai développé un projet dans lequel un Vi me pose problème (DAQ_Potar_Continu.vi)
    C'est un Vi que j'appelle plusieurs fois (jamais en meme temps) pour faire l'acquisition de tous mes signaux. Cette acquisition se fait à partir du moment où je met mes moteurs en route (par le port COM). Quand le moteur arrive à la fin de son mouvement, j'envoie normallement un signal booleen à l'acquisition pour l'arreter, pour ensuite traiter les donnees.
    Tout marche bien au premier appel de ce vi, mais lorsque je le rappelle un peu plus tard (le Main Vi etant toujours en cours) l'erreur -200088 apparait (la tache n'existe pas). J'ai mis juste apres le daqmx un vi "Tache fine ?" et à la premiere iteration, ca me répond "NON", or l'acquisition s'est bien faite... le vi suit son cours normallement. Lors du deuxième appel, je pense que le fait que la tache ne soit pas finie lui pose problème. J'ai donc mis un "arreter tache" et "supprimer tache", mais ca n'arrange pas grand chose.
    J'ai essayé de faire différement mes acquisitions (dans les diagrammes désactivés) mais je n'y arrive pas. La deuxième itération ne veut pas se lancer.
    Pour résumer, je veux faire l'acquisition de mes tensions à partir du moment où je lance mes moteurs et que l'acquisition s'arrete à la fin du mouvement du moteur. Et que ca marce autant de fois que j'ai besoin d'appeler ce Vi.
    Des idées ? Parce que là, je sèche !
    Merci d'avance pour votre aide.
    David.
    Pièces jointes :
    DAQ_Potar_Continu.vi ‏224 KB
    Muscle CommB.vi ‏33 KB
    FGV.vi ‏30 KB

    Bonjour,
    - Je n'en suis pas certain, mais je crois que vous pouvez faire une seule tâche sur plusieurs modules, cela pourrait simplifier la lecture de votre code.
    - Etes-vous bien conscient qu'avec le cluster d'erreur, l'ensemble des opérations s'effectue l'une après l'autre? Rien ne s'exécute en parallèle, est-ce voulu?
    - Pourquoi utiliser un assistant DAQ alors que tout le reste utilsie des fonctions DAQmx bas-niveau, beaucoup plus simples à gérer et à modifier si nécessaire.
    - Vous n'appelez la fonction TaskIsDone qu'une fois, cela n'a aucun intérêt. Généralement, on l'utilsie dans une boucle pour vérifier que l'opération est finie, et on recommence si ça ne l'est pas, cependant, c'est plutôt utile dans le cas de génération de données, lorsqu'on ne sait pas si la géénration est finie. Dans le cas d'une acquisition, finie qui plus est, c'est plutôt le nombre de points à lire qui va être primordial, et qui va définir quand est-ce que la fonction de lecture rend la main. Si votre fonction est paramétrée en mode acquisition continue, c'est tout à fait normal que le booléen TaskIsDone retourne Faux.
    - Si je comprends bien, vous venez créer vos tâches plusieurs fois (plusieurs appels) et les supprimer à chaque fois. Les différents appels sont-ils faits de manière relativement proche temporellement? Il n'est pas impossible que les tâches n'aient pas été compléteemnt supprimées au moment où vous tentez de les recréer, et que cela pose problème. Si j'étais vous, je préférerais créer les tâches en dehors du sous-VI, appeler le VI pour les lecture/ecriture de manière périodique, et supprimer les tâches après que le sous-VI ait rendu la main.
    Il faudrait mettre des sondes sur chaque cluster d'erreur en sortie des fonctions d'écriture et faire arreter le code lorsqu'une erreur apparait pour savoir quelle tâche vous affiche l'erreur de tâche qui n'existe pas. Cela pourrait potentiellement venir de l'assistant DAQ.
    Je vous invite à répondre aux questions que je vous ai posé, et à faire les modifications proposées pour voir le changement de comportement.
    Cordialement,
    ps: N'oubliez pas d'enregistrer les modifications dans un nouveau VI pour ne pas perdre ce que vous aviez déjà avant, au cas où.
    Olivier L. | Certified LabVIEW Developer

  • Comment recuperer le volum ( Lettre) d'une clé USB pour creer un chemin relatif avec Labwindows cvi

    Bonjour,
    Apres multiple recherche sur internet, je n'ai rien trouvé pouvant être utilisé sur CVI.
    Voici mon probleme, j'essaie de recuperer le volum (lettre) d'une cle USB brancher sur un port de mon ordi ou bien de recuperer les différents volum branchés sur l'ordinateur.
    Le but est de voir creer un chemin relatif pour que la clé USB puisse être utilisé en lecture/ecriture sur différent PC.
    Chaque PC attribue une lettre particuliére à la clé ce qui empêche de voir pouvoir creer un chemin statique.
    Merci d'avance pour vos réponses.

    LeViins a écrit :
    Bonjour,
    bien de recuperer les différents volum branchés sur l'ordinateur.
    Bonjour, pour info sous LabVIEW, la fonction "list folder" ou lister le contenu du dossier, si le chemin de recherche est vide... il retourne les différents disques du PC
    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

  • Connexion CAN lente à la reception de données - File d'attente

    Bonjour,
    J'ai un problème dans la reception CAN. Je travail avec un IXXAT et je communique (j'envoie et reçois des trames).
    MAIS, il y a une création d'une file d'attente des données, c'est à dire, qu'au demarrarge de mon exe, les données affichées sont directes...
    Puis plus le temps s'écoule (15, 30, 60...secondes), les donnés se rafraichissent de moins en moins rapidement...
    Au bout d'1 minute de connexion, les datas ont pret de 5 sec de retard et découlent comme se elles étaient bloquées dans une file d'attente ...
    J'ai vérifié les param FIFO, ils sont à 1... donc normalement, ils n'ont pas d'influence sur mon programme.
    Y a t'il un autre paramètre a modifier afin de désactiver cette fonction ?
    Merci d'avance !

    Bonjour Eric,
    En fait, je réalise ma comm en 3 phases :
    -> Première séquence, j'ouvre ma comm (VI Config CAN)
    -> Deuxieme séquence, je lis et j'écris (VI Lecture Ecriture), et simultanément je éxécute les différentes actions avec mon programme global (piloter un DAQ générateur de signaux via un IHM)
    -> Troisième séquence, je ferme la comm (je n'ai pas joint le VI, c'est uniquement Close) en mm temps que la fermeture de mon programme.
    J'ai regardé la fonction Prod/Consommateur, j'ai tenté de la mettre en place, mais je n'ai pas reussi a retrouver ma lecture dynamique des trames CAN... mais peut être est-ce car je n'ai pas bien compris l'action de cette fonction? Comment la fonctionnalité file d'attente peut justement supprimer ma file d'attente que je ne veux plus avoir ?
    En ce qui concerne le programme "exemple", il fonctionne très bien. J'en conclu que c'est la réalisation de l'ensemble de ma boucle qui ralentit la comm et donc me fait avoir du retard?... J'ai tenté de mettre les 3 séquences dans ma boucle de réalisation générale du programme : je n'ai plus ce phénomène de retard, mais ma comm mets 1 à 2 sec à se rafraichir (je ferme et ré-ouvre une nouvelle connexion à chaque tour de boucle...) et ralentit enormément le programme global...
    Pièces jointes :
    Lecture ecriture.vi ‏153 KB
    ConfigCAN.vi ‏34 KB

  • Ni 6221 intput/out​put

    Bonjour,
    Nous devons faire une lecture/ecriture d'une carte SCB-68. Nous voulons réaliser cette tâche en continue afin d'écrire directement la valeur de l'entré sur la sortie.
    Voila notre programme:
    #include <stdio.h>
    #include <windows.h>
    #include "include/NIDAQmx.h"
    int main(){
    while(1){
    ecriturelecture();
    Sleep(1000);
    return 0;
    int ecriturelecture(void)
    TaskHandle taskHandle;
    int lecture, ecriture;
    int32 read,written;
    DAQmxCreateTask("",&taskHandle);
    DAQmxCreateDIChan(taskHandle,"Dev1/port1","",DAQmx​_Val_ChanForAllLines);
    DAQmxStartTask(taskHandle);
    DAQmxReadDigitalU32(taskHandle,1,10.0,DAQmx_Val_Gr​oupByChannel,&lecture,1,&read,NULL);
    printf("Valeur: %i\n",lecture);
    ecriture=lecture;
    DAQmxCreateTask("",&taskHandle);
    DAQmxCreateDOChan(taskHandle,"Dev1/port0","",DAQmx​_Val_ChanForAllLines);
    DAQmxStartTask(taskHandle);
    DAQmxWriteDigitalU32(taskHandle,1,1,10.0,DAQmx_Val​_GroupByChannel,&ecriture,&written,NULL);
    return 0;
    Nous arrivons à lire la première valeur mais ensuite toute les valeurs sont égales à 0.
    Comment faire en sorte d'écrire la valeur d'entrée sur la sortie sans devoir relancer le programme ?
    Merci d'avance

    Bonjour,
    Je vous suggère de démmarrer votre programme à partir d'un exemple. Depuis Windows :
    Démarrer >> Tous les programmes >> National Instruments >> NI-DAQmx >> Support de code textuel >> Exemples
    Sur mon PC ils se retrouvent à cette adresse :
    C:\Users\Public\Documents\National Instruments\NI-DAQ\Exemples\DAQmx ANSI C
    Bien cordialement,

  • Comment accéder en lecture et ecriture à des variables définit pour les utilisateu​rs ???

    Bonjour,
    Je travail sous TestStand 3.5 ET LabView 8 et je désirerai accéder en lecture et en écriture à des variables que j'ai créées au niveau des utilisateurs. Je m'explique, dans TestStand j'ai créé pour l'utilisateur par défaut 2 variables, NbBon et NbMauvais. Maintenant lorsque je crée un utilisateur les champs NbBon et NbMauvais apparaisse au même titre que PassWord ou bien encore FullName. Maintenant je désire écrire et lire les valeurs de ces champs à partir de LabView, comment puis je faire ???
    Merci de toute l'aide que vous pourrez m'apporter.
    Will W

    Les variables globales sont stockées dans le fichier "StationGlobals.ini" du répertoire "ini" de TestStand. Pour sauvegarder les variables de manière durable, il faut sauver ce fichier. La plus simple des méthodes est d'utiliser la méthode "Engine.CommitGlobalsToDisk()". Vous trouverez ci-joint le VI modifié de façon à sauvegarder les valeurs sur disque.
    Cordialement,
    Attachments:
    Access Prop.vi ‏25 KB

  • Ecriture sur fichier sans boucle while

    Bonjour,
    J'ai créé un vi d'enregistrement de données qui ne comporte pas de boucle while, le but étant de pouvoir éxécuter d'autres fonctions durant cet enregistrement. Il se compose en plusieurs sous-vi et fonctionne de la manière suivante:
    1- Récupération de deux entrées analogiques (effectué en permanence pour affichage sur graphe),
    2- Au top, création d'un tableau 1D comprenant: heure / Analog Input 1 / Analog Input 2, puis insertion de ces lignes 1D dans un tableau 2D (et ce jusqu'au second top).
    3- Au second top, ecriture de ce tableau 2D dans un fichier tableur.
    Le programme fonctionne bien mais mon problème réside dans le fait que je ne peux pas gérer ma fréquence d'enregistrement, même en insérant une horloge d'échantillonnage dans la lecture de mes analog inputs.
    Savez-vous d'où vient le problème?
    Je vous remercie par avance de vos réponses.

    Bonjour,
    Quel type de matériel utilisez-vous ? Quelle type de fichier écrivez-vous ?
    Ceci étant, d'après votre description, la seule façon que vous avez de "cadencer" l'écriture dans votre fichier dans votre cas précis, est la fréquence du second top. Pour cadencer votre enregistrement, il faut l'intégrer dans une boucle qui à ce que cette boucle ne s'exécute qu'une fois. Utilisez alors la fonction "attendre en ms" plutôt que la fonction "attendre un multiple de milliseconde" pour se faire.
    N'hésitez pas à nous contacter pour toute demande ou renseignement complémentaire.
    Bien cordialement,
    Yannick.
    Yannick D.
    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;}
    >> Du 30 juin au 25 août, embarquez pour 2 mois de vidéo-t'chat ! Prenez place pour un voyage au coe...

  • Probleme Ecriture port serie, quel code envoyer

    Bonjour,
    Actuellement en école d'ingénieur, dans un projet pour une entreprise, je dois réaliser un VI permettant la lecture de données d'un capteur (thermocouple) sur lequel un microcontroleur a été gréffé, puis par la suite on souhaite envoyer des informations au capteur pour pouvoir modifier son gain, son offset.
    Mon problème se situe au niveau de l'envoie d'information.
    L'entreprise travaillait sous hyperterminal. Lorsque que le capteur envoyait les informations, il suffisait d'appuyer sur la touche "a" du clavier pour selectionner le paramêtre à modifier, appuyer ensuite sur "p" pour augmenter ce paramêtre et enfin appuyer sur "echap" pour valider cette modification et sortir du paramétrage.
    Ma question est donc, comment dois envoyer l'information sous labview afin de simuler l'appui sur les touches "a" puis "p" puis "echap".
    Dans un premier temps j'ai pensé a utilisé le code ASCII des touches du clavier, mais cela ne marche toujours pas
    note; le paramêtre associé à la touche "a" est l'offset du capteur.
    Je vous laisse en pièce jointe mon VI.
    Merci de votre aide !
    Résolu !
    Accéder à la solution.
    Pièces jointes :
    port serie ecriture(modif11).vi ‏85 KB

    Je ne peux pas ouvrir ton code, pas ta version de LabVIEW sur mon PC.
    Je te propose quelques pistes :
    > hyperterminal configure le port série (parité, vitesse, ….) tu fais de même, via VISA Open ?
    > il y a peut-être un caractère de fin de commande (CR, LF, …) à ajouter,
    > tu utilises la fonction VISA Write, un des paramètres d’entrée est une chaîne de caractère, ton idée de câbler une constante string « a » ou « p » me semble correcte.
    Je pense donc que ton problème provient de la configuration du port ou d’un caractère de fin de commande ou réception.
    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

  • HT5100 I have downloaded lectures from iTunes u but they do not show up on my bookshelf.  Why?

    I have downloaded lectures from iTunes u.  It had been working fine, but now my downloads do not show up on my bookshelf.  They do show up as downloaded when I search through the catalog.  How do I fix this?

    Wow, I just checked & all the DOWNLOADED songs MADE it into my iTunes "Songs". Thanks anyway!

  • How do i use ibooks for saving my lecture notes / power point slides please?

    Hi, how do I use ibooks for savng / storing my lecture notes on please? (on either a iphone or ipad). Also, can I save powerpoint slides to it too? thanks.

    iBooks can only read two formats -- .epub and pdf.  So you have to convert your lecture notes or powerpoints to one of those.  To do that, check the Save, Export, or Share functions of whatever app you are using to create your notes.

Maybe you are looking for

  • When using gmail (and at other times), firefox freezes and I can't get anything to function, particulary Sign Our

    After launching firefox and accessing gmail, I try to access and response to messages. So I compose a message and clickeed "SEND" but there is no action. This initially looked like a wi fi issue, but spent several hours on the phone with Shaw, who ra

  • Adobe Acrobat Std XI - Quick Pick Toolbar

    Had issues with Acrobat Pro 9.5 so uninstalled and upgraded to XI Std. Customized the quick pick toolbar with all the tools used most often. Opened a pdf and all the customization disappeared. Added the tools back in but they keep disappearing. Am I 

  • When using SSL Word Files ask for username and password.

    I have SharePoint Foundation 2013 setup and it works great.  I need to allow users access when they are not connected to our local network, so for testing purposes I added a domain signed certificate and assigned it to IIS on 443. Internally when I t

  • Using LT for motion menu background – problems

    I'm trying to use a LT texture (Canvas>Sinopia) as a motion menu background. I exported 30 secs of the rendered texture direct from LT. The QT file size is 1.09 GB. Couldn't get it to work in DVDSP. Took that file into FCP and re-exported it using cu

  • Can't get the Quiz Total to be the correct Value

    I've searched and I can't find, so I'm hoping someone has a suggestion. I have a software simulation assessment that I cannot score properly. Here's the situation. There are five slides. Slide 1 - Application's review page Slide 2 - First Wizard page