Liaison série RS232

Bonjour tout le monde,
J'ai fais un programme qui permet de lire la trame de donné envoyé par l'intermédiaire d'une liaison série, sauf que je ne sais pas si ça marche, car pour l'instant je n'ai toujours pas l'appareil qui sera connecté ... Mon programme lit la trame, puis la découpe la ou je lui ai demandé avant de transformer ces morceaux de trames en nombre qui seront ensuite affiché sur la face avant. J'ai bien peur que mon programme ai des problèmes de synchronisation avec le début de trame. Par contre, si il commence bien au début, logiquement il doit s'aretter à la fin vu que je lui ai rentré la longeur de la trame (23 octets).
Alors je voulais savoir si quelqu'un ici pouvait tester mon programme avec n'importe qu'elle appareil connecté en série pour voir si il fait bien l'acquisition des 23 premiers octets envoyés. A moins que quelqu'un ai une méthode pour "feinter" le PC et lui faire croire qu'on lui a envoyé quelquechose sur le COM1. Et d'après vous es-ce que mes craintes sur la synchronisation en début de trame vont s'avérer vraies ?
Je vous ai mis en pièces jointes mon VI en version 8.5 ainsi qu'une capture d'écran.
Je vous remercie d'avance.
Résolu !
Accéder à la solution.
Pièces jointes :
Panel (Station météo).vi ‏35 KB
Station météo diagramme.PNG ‏72 KB

J'ai rajouté la fonction VISA Wait On Event.
Pour le caractère de terminaison, je me suis posé la question et justement, moi mon caractère de terminaison c'est <CR><LF> (Carriage Return and Line Feed). Comment faire pour le modifier et mettre <CR><LF> dans "Car de terminaison" sur ma face avant ?
Pour la partie bleue, j'ai l'impression dans votre doc qu'il y a des virgules entre chaque donnée, il vous suffit alors d'utiliser la fonction "Spreadsheet String to array" en définissant le séparateur en virgule (au lieu de Tab par défaut), et vous aurez automatiquement un tableau vous retournant les différentes données séparées.
Merci beaucoup de l'astuce, je ne connaissais pas ! J'ai par contre un problème, je n'arrive pas à relier de tableau à la sortie de "Spreadsheet String to array". Et sinon, que dois-je relié à "Chaîne de format" ?
Merci beaucoup !
Pièces jointes :
fil de liaison brisé.png ‏3 KB
schéma modif2.png ‏21 KB

Similar Messages

  • Liaison série à 115200 bits/s

    Je suis en train de réaliser une Appli qui reçoit des données via une liaison série RS232 à 115200 bits/s.
    Seulement je n'arrive pas à l'optimiser afin qu'elle ne fasse plus d'erreur d'overflow ou qu'elle saute une ligne de donnée.
    Dans mon Vi principal, j'ai dissocier la lecture du buffer du traitement des données.
    Pouvez vous m'indiquer un moyen d'améliorer la reception des données ?
    Merci d'avance.
    Ci joint l'appli réduite .
    Voir le fichier Lisezmoi pour le fonctionnement
    Attachments:
    Appli.zip ‏717 KB

    Bonjour,
    Apres un coup d'œil sur votre application, il s'avère que vous ne cadencez pas
    vos boucles while. A partir du moment où l'on en utilise une il faut impérativement
    la cadencer. Sinon elle tourne au max, cela implique qu'elle utilise des
    ressources non nécessaires, et que de plus vous risquez de rater des itérations.
    Essayez déjà ça, puis tenez nous au courant
    Cordialement
    Richard Keromen
    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;}
    >> Découvrez, en vidéo, les innovations technologiques réalisées en éco-conception

  • Comment récupérer avec Labview des données délivrées par un autocollérateur via la port série ( RS232)

    Bonjour à tous,
      J'écris pour solliciter une aide car je dois recupérer avec Labview des données délivrées par un autocollérateur via la port série ( RS232). Sera la bienvenue, des sites, des cours,  des codes ds d'autres langages, tout ce qui peut m'aider.
       Merci d'avance à touste et à tous
    j'attends avec impatiance votre réponse

    Bonjour,
    comme l'a très bien dit "tbob", il existe de nombreux exemples de communication série fourni avec LabVIEW.
    Si vous débutez en LabVIEW, il existe des ressources pédagogiques sur le site de National Instruments qui vous aideront à commencer à programmer avec LabVIEW.
    Ci-joint un lien depuis lequel vous pourrez accéder à ces différents tutoriaux :
    http://www.ni.com/academic/lv_training/how_learn_lv.htm
    De plus, il existe dans le "Developper zone" du site de NI, un grand nombre de bibiothèque de fonctions spécialement dévéloppées pour le contrôle instruments, un grand nombre d'instruments possède sa librairie, peut-être y trouverez vous le votre.
    http://sine.ni.com/apps/we/niid_web_display.drv_search
    En espérant que ces différents liens vous aideront,
    Cordialement,
    Benjamin M
    NIF

  • Comment commander un système de déplacement Charlyrobot avec Labview via le port série RS232

    Bonjour
    Je souhaite commander un système de déplacement Charlyrobot (moteur pas à pas via module électronique) avec labview via le port série RS232.
    Si quelqu'un a une idée ou une solution pour y parvenir, pourra-t-il me guider ?
    Merci d'avance.
    Jerak

    Bonjour, les fonction VISA READ et WRITE permettent d'envoyer deschaines de caracteres sur le port serie (ou de les lire depuis). Après, le point important est de bien connaitre la syntaxe utilisee par le moteur pas a pas pour les commandes. Ces informations doivent etre dans le manuel du moteur.
    Mais, c'est certain, uniquement avec les VISA Read et Write, il est parfaitement possible de commander votre moteur (j'ai eu un projet de ce genre recemment et ca fonctionne tres bien).
    Quelques petits points qui peuvent vous causer des soucis:
    _ le baud rate de votre port et de votre moteur doivent etre configure a l'identique;
    _ si vous utilisez Windows XP ou 2000, verifiez la longeur des buffer alloue par windows pour la lecture et l'ecriture (dans le gestionnaire de peripheriques) vous risquez des problemes si vous tentez de lire 1 ou 2 octets et que les buffers sont configures a 10 ou + (c'est un probleme que j'ai rencontre, c'est pour ca!).
    Bonne prog.
    Raoul
    Raoul Chodziesner-Bonne
    Ingénieur Instrumentation
    CRIL TECHNOLOGY - Groupe ALYOTECH
    "Celui qui pose une question peut paraitre idiot sur le moment, celui qui n'en pose pas le reste toute sa vie!"

  • Réception sur Labview de données par Liaison série depuis un PIC18F458

    Bonsoir à tous,
    Dans le cadre d'un projet ingénieur, j'ai dû développer une application sous un PIC18F458. A présent, j'ai des mesures que je souhaite pouvoir afficher sous Labview par la liaison série du PIC.
    J'ai donc utilisé les exemples données sous Labview (8.4), et cela me renvoi quelques résultats... Le problème est que dans l'exemple, l'afficheur renvoi une chaîne de caractère. Pour ma part, ce sont des mesures que je vais afficher, donc j'ai modifier cet partie en ajoutant une convertion en "tableau d'octet" pour pouvoir commencer a visualiser quelque chose de cohérent.
    N'y a t-il pas un autre moyen que d'afficher un tableau d'octets?
    De plus, je souhaite envoyé plusieur mesures différentes sous labview, je souhaiterais savoir comment les réceptionner correctement, comment savoir laquelle est ma mesure de tension ou de courant par exemple?
    Merci d'avance de votre temp,
    Bien cordialement,

    Merci,
    J'ai travailler durant toutes la journée sur la mise en protocole pour l'envoi de différente valeur sur labview, mais j'éprouve des difficultés à le faire.
    Tout d'abord, sur la partie PIC, comment définir ce protocole? (Envoi de plusieur trames consécutives, avec un identifiant de départ par exemple?)
    Et sur labview, comment réussir à découper ces trames et savoir quel est la bonne?
    Si quelqu'un aurais des idées, cela m'aiderais beaucoup.
    Ci-joint ma fenêtre labview.
    PS : mon code PIC simplifié est le suivant :
    OpenUSART (USART_TX_INT_OFF & USART_RX_INT_OFF & USART_BRGH_HIGH & USART_EIGHT_BIT & USART_ASYNCH_MODE, 64);
    while(1)
    while(BusyUSART());
    WriteUSART(totalSums); //variable totalSums
    delay(); //(0,5 seconde)
    while(BusyUSART());
    WriteUSART(accumulator); // variable accumulator
    Merci d'avance,
    Pièces jointes :
    Labview.PNG ‏78 KB

  • Problème lors de la commande d'un multiplexeur à partir d'une liaison série

    bonjour ,
    mon problème est le suivant : lorsque j'ai écris 2 fois sur le bus série donc deux fichiers Write et j'ai mis un seul fichier read la machine me renvoie seulement l'état de la première commande qui était écrit dans le premier fichier Write,
    alors qu'elle est censée renvoyer les deux états en même temps , je m'explique :
    j'ai écris dans le premier fichier Write M01C01 et dans le deuxième M02C01 , je n'ai récupéré que la deuxième c'est à dire M02C01 ,alors que je devrait recevoir en sortie M01C01 M02C01.
    Si vous auriez besoin d'informations complémentaires, n'hésitez pas !

    Bonjour,
    Merci d'avoir posté votre question sur les forums de National Instruments.
    Si je comprends bien le problème que vous exposez, vous rencontrez un comportement étrange lors de l'écriture sur votre port série de trames d'information.
    En effet, vous ne récupérez qu'une partie des informations que vous envoyez. 
    Ai-je bien compris le problème ?
    Si tel est le cas, êtes vous sûr du paramétrage de votre lecture ? J'entends par là, avez vous vérifié le nombre de bits que vous venez lire sur votre port série ? Il est possible que le mesage lu soit tronqué.
    Lors de votre écriture, comme procédez vous ?
    Etes vous sur que votre buffer n'est pas réécrit à chaque fois que vous envoyez une trame ? Cela pourrait expliquer le comportement en sortie.
    Le plus simple serait sans doute que vous postiez votre VI en pièce jointe à ce forum. Je pourrais ainsi vérifier que votre code fonctionne bien comme vous l'attendez.
    Je vous remercie par avance pour vos réponses.
    Bien cordialement,
    Guillaume H.
    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;}
    >> NIDays 2011, le mardi 8 février au CNIT de Paris La Défense

  • Transmissi​on fichier txt via RS232

    Bonjour,
    Mon application consiste a éditer un fichier au format txt et l'envoyer à une commande numérique via une liaison série RS232, ma question porte sur la transmission du fichier. Je voudrais savoir si il est possible d'envoyer le fichier txt directement sur le port série ou si un traitement est nécessaire en amont.
    Cordialement
    Nathan
    Résolu !
    Accéder à la solution.

    Bonjour,
    Pour la gestion d'un RS-232 série depuis LabVIEW, ce sera vraissemblablement au travers de la la palette E/S Instruments » NI-VISA. Dans la palette avancé, il existe une fonction VISA Write From File, qui pourrait convenir (lecture en mode binaire). Si ça ne convient pas, un petit traitement sera nécessaire. Tout dépend de la façon dont sera édité le fichier en question, i.e directement depuis l'application LabVIEW qui enverra le texte/le fichier, ou depuis votre éditeur texte favori (j'ai une préférence pour notepad++)
    Cordialement,
    .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  

  • Fonction qui attent une période de temps

    Bonjour tout le monde, 
    Spoiler (Highlight to read)
     je veux commander un moteur via une inerface labview, ce moteur marche en deux sens up et down, et ceci à partir  d'une liaison  série RS232, en effet, je voudais que lorsque j'appuie sur le boutons up par exemple il marche pendant une période de temps ,entrée par l'opérateur, et il s'arrete automatiquement , bon au début j'ai mis les deux boucles de marche de de stop en série, et une delay time entre les deux, mais il y aurait un retard d'envois c ad lorsque je veux que le moteur marche pendant 20 secondes je doix appuiyer 20 secondes sur le boutonsn, puis il marche pendant 20s et s'arrete..
    est ce qu'il y a une fonction mieux.
    SVP qui peut m'aider !!! 

    Put your code in a while loop.
    WHen you click a button to start the engine, store the current time in a shift register.
    Check every 250 milisecond whether the 20 seconds have passed bu substracting the current time from your saved time out of shift register.
    If 20 second have passed by, stop engine, if not, check time again
    Kind regards,
    - Bjorn -
    Have fun using LabVIEW... and if you like my answer, please pay me back in Kudo's
    LabVIEW 5.1 - LabVIEW 2012

  • Communication entre Captivate et Dokeos concernant le score

    Bonjour,
    Je sollicite votre aide concernant un problème que je rencontre lorsque j’intègre un module réalisé avec Captivate 4 dans Dokeos 1.8.4. En effet, une fois ce module intégré dans la plate-forme Dokeos, le tracking ne fonctionne pas et je n’arrive pas à récupérer le score de l’apprenant… J’ai fait plusieurs tests en changeant les paramètres dans Captivate mais rien n’y fait ! Quelqu’un aurait-il quelques conseils à me donner ?
    Merci d’avance.

    bonjour,
    La liaison série (RS232) est un moyen de communication très répandu pour la transmission de données entre un ordinateur et un périphérique.
    Mais comment vas-tu encapsuler les données à transmettre ?
    Pour faire simple, il te faut un driver qui est en quelque sorte le programme qui fait le lien entre le logiciel d’application et le matériel.
    Le premier réflexe : internet. Le driver de ton instrument n’existe pas sur Internet (IDNet) alors tu vas devoir l’écrire. Pa de chance, cela va être plus compliqué, car tu ne connais pas l'IDE LabVIEW.
    Sur du RS232, il est recommandé d’utiliser l’API VISA pour encapsuler les commandes (ensemble des VIs permettant de lire des données ou commander l’appareil). Tu vas devoir faire le driver Play & play LabVIEW (recherche sur internet comment).
    Par contre, comme tu utilises un automate, il faut regarder s’il n’existe pas un serveur OPC, pour communiquer avec lui. (recherche sur internet OPC et le nom de ton automate)
    Sinon je connais un très bon livre pour apprendre à utiliser LabVIEW (et pas labview). Bonne chance.
    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

  • Comment, à parir d'un programme labview peut-on ecrire dans un port serie rs232

    Bonjour,
    je suis actuellement en stage et je cherche à réaliser un programme labview permettant d'imiter un capteur donnant une profondeur et une altitude.
    les informations sont à envoyées à un programme labview sur compact RIO via une liaison RS 232.
    en vous remierciant d'avance,
    cordialement

    Salut,
    Pour écrire sur un port série RS232, il faut utiliser les VIs "VISA Read" et "VISA Write" dans E/S d'instruments => Série de la palette de fonctions du diagramme pour envoyer/recevoir des données. Il faut aussi avant toutes choses configurer le port sur lequel les données vont transiter. Pour cela, utilise le VI "VISA Configure serial port" et "VISA Close" (accéssoirement pour cesser les échanges) dans la même palette.
    En espérant que cela ai put t'aider =)
    @ +

  • Récupérer les données du port de communication série

    Bonjour,
    Je pilote des moteurs pas à pas par Labview via des modules de commande moteurs.
    Je communique avec eux par la liaison série du PC.
    Ces modules de commandes me renvoie des informations en retour mais je ne sais pas comment les récupérer via Labview. J'ai essayé le "visa read" mais sans succès...
    Quelle méthode dois-je utiliser?
    Merci d'avance de vos réponses.
    Cordialement.

    Bonjour,
    Et merci d'avoir posté sur nos forums.
    Il nous manque quelques informations pour répondre à votre problème :
    - Est-ce que votre moteur est visible sous MAX ou sous le VISA Interactive Control ? Quel est le driver que voit votre instrument sous le gestionnaire de périphériques de Windows ?
    - Avez-vous cherché si des drivers existaient déjà pour votre instrument (fournis par le constructeur, ou téléchargeables ici )
    Par ailleurs, je vous suggère, avant d'essayer des VIs tout faits, d'essayer d'envoyer une commande simple et la lire. Pour cela, vous trouverez un ou deux exemples dans l'aide de LabVIEW (Aide-> Recherche d'exemples -> E/S Matérielles -> Série)
    Pour ce qui est de la réponse de Tinnitus, il se peut effectivement qu'un instrument ne marche pas très bien via VISA, mais mieux avec l'hyperterminal. Cela est dû aux caractères de terminaison employés, ou à la vitesse d'écriture vers l'instrument.
    Par ailleurs, quel est le type de commandes que vos moteurs accepte ?
    Cordialement,
    Eric M. - Application Engineering Specialist
    Certified LabVIEW Architect
    Certified LabWindows™/CVI Developer

  • Classe singleton et dialogue avec port série en as3

    Bonjour,
    j'essaye de dialoguer avec le port série en utilisant le code fourni ici. Quelqu'un pourrait-il m'aider en fournissant un exemple complet et notamment le code que je dois inclure dans le fichier principal. Comment créer l'instance du singleton ? Comment recevoir des données ?
    Merci d'avance.
    Thomas

    Bonjour,
    Que voulez vous dire par "recherche de fichier texte" ? Est-ce que votre application doit proposer une fenêtre d'ouverture de fichier ou l'utilisateur peut sélectionner votre fichier et l'envoyer octet par octet par votre liaison série ?
    De quelle version de LabWindows/CVI disposez vous ? Avez vous installé la gestion de l'API Windows ?
    Cordialement,

  • Erreur de cadrage

    Bonjour,
    j'utilise un convertisseur NI USB / RS232. Je fais l'acquisition de données sur 3 ports série du convertisseur et sur 2 ports série de l'ordinateur.
    Parfois, j'ai le message : "Une erreur de cadrage est survenue lors du transfert", mais pas systématiquement.
    Je voudrais savoir comment faire pour qu'il n'apparaisse plus et surtout àcause de quoi cela est du.
    Est-ce que je reçois trop de données, et qu'il y a saturation? J'ai 2 liaisons série 115kbits/s et 3 liaisons série 9600 bits/s.
    Merci pour votre aide.
    Cordialement,

    Bonjour,
    Je vous propose de regarder ce thread qui traîte de la même question :
    http://forums.ni.com/ni/board/message?board.id=170&message.id=79543&requireLogin=False
    En espèrant vous avoir aidé
    Cordialement,
    Richard Keromen
    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;}
    >> Découvrez, en vidéo, les innovations technologiques réalisées en éco-conception

  • Adaptateur usb rs422

    Bonjour à tous,
    j'ai pour projet de remplacer une partie d'un banc de test tournant sous une autre application par labview.
    je travaillerai sous labview 8.2. sur un PC portable équipé d'une interface GPIB, port série RS232, USB.
    les 2 systemes de positionnement sont équipés deux moteurs asynchrones raccordés chacun sur un variateur de vitesse le tout raccordé sur un ordi via une carte interface relais (connecteur SUB-37).  
    deux codeurs absolus permet de retrouner la position du mât et du plateau, chaq codeur est raccordé sur l'ordi via une carte interface par liaison RS422.
    Dans un premier temps il me faut gérer un plateau tournant et le déplacement sur un mat d'antenne.
    - j'utilise un adaptateur (convertisseur) usb/rs422-2ports pour les deux codeurs: Comment je le configure dans MAX ou Labview pour pouvoir renvoyer les positions dans mon programme labview? ensuite le pourt rs422 fourni l'alim 24Volts à la carte dans le pc. influence pour l'adaptateur usb?
    - Peut-on commander les moteurs (en marche avant,arrière et selection de vitesse) via le variateur de vitesse  par labview?
    Voici rapidement ce qu'il faut pour à mon avis pour gérer le systeme de positionnement des antennes.
    Merci de m'aider
    cordialement

    Bonjour Lamba,
    Le driver permettant de lire vos trames RS 422, est le driver NI Serial.
    Ensuite pour commander vos moteurs, il vous faut une carte dediée, permettant d'assurer la rotation de votre moteur dans les deux sens....
    Une possibilité est d'utiliser l'Offre groupée NI Motion Control.
    Si vous souhaitez obtenir plus d'informations concernant les modules nécessaires à votre application, je vous encourage à contacter National Instruments au 01.54.66.24.24.
    Je vous souhaite une bonne journée,
    Rémi 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;}
    >> Les rencontres techniques de NI - Mesures et acquisition de données : de la théorie à la mise en ...

  • Aucune fenêtre s'ouvre pour mettre les données de la carte de crédit à jour.

    Vous me demandez de mettre à jour les données de ma carte de crédit, mais cela est impossible. Aucune fenêtre ne s'ouvre pour cela.

    Bonjour,
    ... Je suis le fournisseur du logiciel ....
    Afin d'éviter les conclusions trop rapides mais entrer trop dans les détails, quelques compléments :
    Nous utilisons actuellement les V7.1.? des DLL DAQmx et Common de NI (version du driver de 2005) , alors que la version actuelle du driver est 9.1.1
    L'application tourne sur des PC de 2005 (Fujitsu-Siemens M440, 3 Ghz, 512 Mo RAM, en hyperthreading)
    Les données acquises sont effectivement du type RS232 d'un point de vu des tensions (type V24/V28) mais c'est le seul point commun avec une liaison série. Les bits transmis sur chacune des 8 voies sont acquis par la PCI 6224 sur 8 entrées digitales. Les données sont échantillonées à 48 000 échantillons par seconde cadensés par un OCXO externe et lues par le logiciel applicatif toutes les secondes pour traitement.
    Tous les traitements longs de l'application ont été "traqués" de manière à s'assurer d'être présent lors de la Call Back NI. Lorsque cette erreur (50410) se produit, on s'apperçoit que le temps entre deux entrées dans la Call Back est très-très-très largement supérieur à la seconde sans que les autres processus ai subi de ralentissement..... Comme si, de temps en temps la carte tardait à nous délivrer son IT.
    Les erreurs mentionnées se produisent de manière aléatoire et après un très long temps de fonctionnement (> 24 heures voire >48 heures... voire 27 jours !)
    Merci pour votre collaboration.

Maybe you are looking for

  • Firmware upgrade correct steps?

    We are carrying out a firmware upgrade on our 9509's from 3.3(1c) to 5.2(2) and I want to know if the steps below are correct? Check hosts for paths to both Fabric's. Take a backup of the config for all the switches. On Fabric A upgrade switch 1 to 4

  • Problem exporting from final cut pro to compressor

    Hi, I'm trying to export to compressor from Final cut pro, but every time i do so, I keep getting the same error message 'Selection contains no media' but it does. It will export to Quicktime fine. I'm only trying to export to compressor so I can sav

  • How do I associate a clock (source) with a (or multiple) counter channels

    We are newbies using a 6602 with the SCB-68 interface. We are reading 8 different TTL pulse trains. We've determined that we need buffered periodic event counting (BPEC) and that we need a common clock (source). We've used the measurement and automat

  • Search by channel name in Vimeo does not work

    For example, I enter "ecc" and all I get is a Canon video but if I do search on the Vimeo website I get numerous results. Any idea? Thanks, Tim

  • I can't find the result of my scan anywhere...what am i doing wrong?

    i've followed the instructions i found on my mac and in the forum however, every time i scan a doc (i see evidence of it in the scanner menu) it never shows up how/where i believe i've saved it.  i have scanned a document with the standard settings t