Mesurer le nombre de bytes d'une trame ASCII variable

Bonjour,
Je travail sous Labview V8.5
Je voudrai mesurer le nombre de bytes d'une trame ASCII dont la taille peut varier. Pour une liaison RS232 classique j'utilise l'instruction " Bytes at port " mais ici avec une trame ASCII 128 , elle me retourne 0. En pratique cette trame peut varier entre 21 et 25 Bytes.
J'ai besoin de connaitre la longueur de trame pour parametrer le "visa read". En effet ma trame ascii commence par <DLE> ( 0x10) et se termine par <DLE><ETX>(0x1003). En règle général elle fait 21bytes. A l'intérieur de cette trame je peux retrouver un 0x10 et le module GPS (qui m'envoie cette trame) rajoute un 0x10 pour indiquer un nombre plutot qu'un <DLE>.  Etant donné que je lit des compteurs, il arrive qu'il y est la valeur 10 ( 16 en décimale ) et donc le module envoie 1010 au lieu de 10, ce qui me ralonge la trame. Actuellement j'indique 21 dans le "byte count " du "visa read" de ma lecture de RS232 mais elle peut donc augmenter et je rate des caratères et mon traitement en aval est décalé.
En gros quelle fonction remplace le "Bytes at port " pour de l'ascii.
Merci.
JohannB

Bonjour Johann,
C'est étrange que le noeud de propriété te retourne 0.
Si tu sais quelle sera la taille max de la trame a recevoir tu peux tout à fait spécifier cette valeur en entrée du VI "Read" car:
VISA READ DETAIL:
This function might return less than the number of bytes requested if the function reaches the end of the buffer, reaches a termination character, or if a timeout occurs. The output error cluster indicates if a timeout has occurred.
Ce n'est donc pas un problème.
Cordialement,
Romain DUVAL || Application Engineer Specialist ||Certified LabVIEW Architect (CLA) || Certified TestStand Architect (CTA)
National Instruments France

Similar Messages

  • Convertir une trame pour l'envoyer par liaison RS232

    Bonjour,
    mon projet consiste à communiquer une trame, à un afficheur LED (Michat) pour ceux il faut convertir envoyer la trame sous forme de chaine sur 1 octet mais je n'ai rien compris ou du moins mal compris .
    La trame :
    <STX> {Adresse} {0} {MESSAGE} <CR> <ETX> {XOR}
    {Adresse} est l’adresse de l’afficheur de 0x01 à 0xFE (1 octet)
    {0} est un attribut d’affichage FIXE de valeur 0x30 (1 octet)
    {MESSAGE} est le texte à afficher.
    {XOR} est le OU EXCLUSIF calculé de <STX> à <ETX> inclus.
    Codes ASCII de contrôle Valeur Hexa
    <ACK> Acknowledge 0x06
    <NACK> Non Acknowledge 0x15
    <CR> Carriage Return 0x0D
    <STX> Start of Text 0x02
    <ETX> End of Text 0x03
    < / > Slash 0x2F
    < \ > Back Slash 0x5C
    Caractères ASCII du jeux standard Valeur Hexa
    {0} à {9} Chiffres de 0 à 9 0x30 à 0x39
    {A} à {Z} Lettres de A à Z 0x41 à 0x5A
    Champ de valeur HEXA
    {VALEUR} Valeur hexadécimale en notation 0x00 à 0xFF
    Champ de message
    {TEXTE} Chaîne ASCII
    Champ de contrôle
    {XOR} Ou Exclusif exprimé en HEXA calculé de <STX> inclus à <ETX> inclus.

    Merci d'avoir répondu à mon message.
    Mon travaille consiste à afficher un message sur le panneau MICHAT grâce à LabView .
    Je dois plus précisement envoyer une trame sur le port RS232 du PC directement relier au panneau.
    ci-joint la doc concernant le panneau .
    Cordialement.
    Pièces jointes :
    ProtocoleTrafic_v306 (1).pdf ‏773 KB

  • Comment savoir une fin d une trame donnes reçu apres phaesun

    bnjr j ai besoin de votre aide j ai un probleme de aquisition des donnes par phaesun le probleme c est comment je trouve la fin d une trame dse donnes reçu apres phaesun ds mon programme labview voilà le lien:http://www.erm-energies.com/p235-automate-de-gesti​on-avec-acquisition-de-donnees-12-24-48vdc-avec-bo​...         d automate aquisition donnes (phaesun)  vous pouvez trouvez ds le site manuel comment fonctione cette pieces et d autre chose merci de votre attention

    Apparently a duplicate post with a different user name - http://forums.ni.com/t5/Instrument-Control-GPIB-Se​rial/aquisition-de-RS232/td-p/3103356
    If you post in French and link to a manual in French, please use the French language board.

  • Comparer deux chaine contenant une valeure numerique variable

    Bonjour à tous,
    je cherche une maniere simple de comparer deux chaines contenant une valeure numerique variable au milieux mais sans tenir compte de cette valeure. Par exemple les chaine suivante :
    Debut_chaine_00_Fin_de_chaine
    Debut_chaine_01_Fin_de_chaine
    Debut_chaine_02_Fin_de_chaine
    comparées avec une chaine de reference me renverrai "true" si le format de la chaine est reconu soit "Debut_chaine_" une valeure numérique sur 2 digit et " _Fin_de_chaine" ou False dans le cas contraire.
    Aurriez vous une idée pour ce genre de fonction ?
    Merci
    Sébastien
    Résolu !
    Accéder à la solution.

    au lieu de "supérieur à -1", tu peux utiliser directement "supérieur ou égal à 0"
    (c'est juste pour faire le malin  )
    [0-9][0-9] == [0-9]{2}

  • Divide 16-bit Word into its HI and LO Bytes, then Convert to ASCII????

    Hello,
    I am trying to do the mentioned action:
    Divide 16-bit Word into its HI and LO Bytes, then Convert to ASCII
    I downloaded this .zip file and got the .lks and .l4t files.. I do not know what these files are?  Where can I just find a VI for what I want to do?
    If anyone has one, let me know!
    Thanks,
    Danny
    Solved!
    Go to Solution.

    Dennis_Knutson wrote:
    Use the Split Number function on the Numeric>Data Manipulation palette. Then do a Type Cast (same palette).
    johnsold wrote:
    Danny,
    Look at the Data Manipulation and Conversion sections of the Numeric Palette. Split Number and Byte Array to String are your friends.
    Type Cast Man is worried about carpal tunnel syndrome from dropping too many primitives.

  • Répartition en nombre d'image sur une page

    Bonjour,
    Photographe, je crée des livres albums de mes mariages. je fais des glisser-déposer de lot d'image de Lightroom sur Indesign, c'est super. J'ai remarqué que si on glise une série, d'images avec Maj + cmd, je peux créer des mises en pages de series de 9 images. est ce que quelqu'un pourrais me dire comment modifier pour par exemple crée une page de 30 images.
    Merci
    Philippe

    La touche fléchée vers la droite augmente le nombre de colonnes, celle vers le haut augmente le nombre de lignes. On peut aussi utiliser le script « Imagecatalog  » se trouvant dans le menu Fenêtre > Utilitaires > Scripts (CS5) Fenêtre > Automatisation > Scripts (CS4 et CS3). Il faut ensuite ouvrir le dossier Application > Samples.
    P.-S : il y a peu d'utilisateurs francophones ici, et d'excellents forums en français !

  • Nombre d'occurrence dans une chaîne de caractère

    Bonjour,
    Voila j'aimerais construire un VI permettant de me donner le nombre de fois ou je trouve le caractère que je specifie, dans une chaîne de caractère.
    En vous remerciant.
    Cordialement.
    Luc
    Résolu !
    Accéder à la solution.

    "on" a discuté de "tout ça" avec altenbach sur le forum anglophone.
    J'ai voulu "tester" avec une petite routine en assembleur et un appel DLL.
    (recherche du nombre d'occurrences d'un caractères dans une chaine)
    à ma grande surprise, je n'arrive pas à faire "mieux" en assembleur !
    Je suis très étonné ! Peut-être LV prend-t-il un "temps fou" dans sa procédure d'appel à une DLL.
    Je ne vois que ça.
    clic ici
    (mon dernier post)

  • Paramètrer et envoyer une trame

    Bonjour à tous,
    Actuellement en stage, j'ai à ma charge la création d'un programme EN LABVIEW pour programmez un composant en OTP (One Time Programming), je vous met la datasheet du composant ici pour y jeter un oeuil.
    La chaîne que je veux envoyer comporte 1bit de start; 2 x 8bits de data + 4bits de commande; 1bit d'idle soit 20 bits.
    J'ai fais quelques essais, avec la liaison RS232 et le SPI d'un NI USB-8451, mais le problème est que je n'obtient que des trames de 8 bits avec des bits de start et stop là ou je ne veux pas... Étant débutant en LV je ne connais pas encore tous les composants! Donc auriez vous quelques conseils ou solution peut-être?
    Cordialement
    PS: Je vous joint une image de l'allure que doit avoir la trame.
    Pièces jointes :
    trame.JPG ‏109 KB

    Bonjour,
    J'ai jeté un coup d'oeil rapide à la doc de votre composant et le protocole de communication n'est ni de l'i2c ni du SPI.
    Or le NI 8451est fait pour de l' i2C ou du SPI, j'ai peur que le driver ne permette pas de générer des trames comme vous souhaitez le faire.
    Peut-être en utilisant les lignes DIO de la carte, à condition que votre composant n'ai pas de fréquence d'horloge minimale( je n'ai rien trouvé dans la doc).
    L'idéal étant selon moi d'utiliser une carte série R contenant un FPGA.
    Cordialement,
    Yann

  • Envoi d'une trame avec labview en protocole TCP/IP

    Bonjour a tous, je suis étudiant en IUT GEII et je doit réaliser la communication entre des spots d'éclairage et un automate, je doit faire l'envoi de trame pour contrôler les spots, mais je suis débutant sous labview et je voudrait savoir comment j'aurai pu envoyer des trames avec un protocole TCP/IP
    Merci, Cordialement

    Bonjour Laurent,
    Vous allez dans la palette Communication de données >> Protocoles, et vous trouverez ce dont vous avez besoin.
    Vous pouvez également trouver des exemples dans Aide >> Rechercge d'exemples
    Bonne journée !
    Sarah

  • Lecture d'une trame RS-232

    Bonjour,
    Je suis débutant sur LabVIEW, version 8.2.
    Je voudrais savoir comment exploiter ma trame RS-232, j'ai besoin que de quelque information sur la trame, comment faire pour diviser la trame en plusieurs parties et recevoir seulement les informations dont j'ai besoin? Quel outil dois-je utiliser, merci d'avance?

    Bonjour,
    Le format de votre trame est en "string" (chaîne de caractères) ?
    Si oui, vous pouvez utiliser les fonctions dans la palette "chaîne"
    Cordialement

  • Given filename or path contains Unicode or double-byte characters.Retry using ASCII characters for filename and path What does this mean? it happen when I publish an OAM

    Given file name or path contains Unicode or double-byte characters. Retry using ASCII characters for filename and path
    What does this mean? It is happening when I try to publish an OAM for Dreamweaver.
    Also: How can I specify the browser in Edge Animate? It is just going wherever. Are there no Preferences for Edge Animate?
    BTW. Just call it Edge. Seriously. Do you call it Illustrator Draw? Photoshop Retouching?

    No, my file name is mainContent.oam
    My project name is mainContent.an
    This error happens when I try to import into Dreamweaver. Sorry, I wasn't clear on that earlier.
    I thought maybe it was because I had saved my image as a png. So re-saved as a svg, still get the error.
    DO I have a setting is Dreamweaver CC that is wrong? Should I try this in Dreamweaver CS6? I might try that next.
    Why is this program so difficult? I know Flash. I know After Effects. I can work the timeline part just great. It's always in the export that I have problems.
    On a MacPro, 10.7.
    Are you an Adobe person or just a nice helper?

  • Lire une fréquence variable, parfois nulle

    Bonjour,
    Je voudrais lire une fréquence avec DAQmx, sur une carte PCI 6624 (compteurs).
    J'arrive à le faire simplement avec le DAQ Express, mais le problème est que cette fréquence varie au cours du temps, et peut, dans certains cas, être nulle. Quand elle est nulle, j'ai une erreur comme quoi le timeout est dépassé.
    Comment puis-je faire pour résoudre ce problème ? Avec les noeuds de propriété ?
    Je voudrais pouvoir lire la fréquence en permanence, et savoir quand elle est nulle, sans avoir d'erreur...
    Merci d'avance.

    Reliez le VI que j'avais posté ici  à la sortie du cluster d'erreur de votre VI Express en définissant son entrée Erreur à annuler selon l'erreur en cas de fréquence nulle (-200474 si je ne m'abuse). Alternativement, le même résultat peut être obtenu en utilisant General Error Handler.vi en définissant ses entrées de la manière suivante :
    exception action : cancel error on match
    exception code : code de l'erreur à ignorer
    La capture d'écran ci-dessous illuste les deux variantes :
    Donnez-moi des nouvelles si le VI Express devait tout de même afficher une boîte de dialogue avec l'erreur et je vous indiquerai alors les opérations suivantes à réaliser.
    Message Edité par JB le 04-07-2008 10:11 AM
    Attachments:
    Example_VI_BD2.png ‏4 KB

  • 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

  • Démarrer une mesure avec un bouton-poussoir

    Bonjour,
    Dans mon programme labview, je mesure trois tensions à l'aide d'une carte d'acquisition NI-usb 6009. Et j'aimerais faire en sorte que lorsque j'appuie sur un bouton-poussoir, les mesures commencent à être prise. Mais je ne parvient pas à le "câbler" vu que la sortie d'un bouton-poussoir est booléen et que les mesures sont réelles. Comment dois-je placer mon bouton-poussoir dans le programme pour que lorsque je l'active, les mesures se font et qu'elles ne se font pas simplement lorsque j'appuie sur "Run" ?
    Merci d'avance
    Résolu !
    Accéder à la solution.

    C'est bon j'ai trouvé

  • Problème de mesure lors d'une deuxieme séquence

    bonjour, je possède un DMM de chez data translation (le DT2044). j'utilise les drivers fournis par data translation.Lorsque sous teststand je lance ma premiere séquence tout se passe bien j'ai toute mes mesure.lorsque je veut la relancé une deuxieme foix,ma séquence s'effectue mais ma carte ne me retourne aucune valeurs. De plus normalement au début de ma séquence j'initialise mon DMM et cela ne se produit même pas. je suis obligé de fermer teststand et de le réouvrir pour pouvoir refaire une séquence.

    Hello seb65,
    Sorry about my lack of understanding French, but I believe I can give you some hints on your problem and I have posted my thoughts in both English and a www.babelfish.com English to French translation for your perusal.
    English:
    Have you been able to create any sequence that initializes the DMM once and then acquires data from the instrument that can be run multiple times with the same results? It sounds to me like you are not receiving the results because the DMM is not being initialized or controlled properly. You should probably try accomplishing this simple task first in order to verify that it can be done.
    On another note, do you know if the driver is VISA based or if it uses IVI? If the DMM is IVI compliant you might want to try using the IVI step types (if you have TestStand 2.0 or higher). If the driver is VISA based you might need to look into using the Session Manager API to share the VISA session for your instrument across code modules. For an example that uses the IVI step types look in your \Examples\IVI directory (there is also information about the steptypes in the TestStand User Manual), and for Session Manager look in the \Examples\SessionMgr directory (There is also a help file for SessionMgr in the \Shared\SessionMgr directory).
    Babelfish English to French translation:
    Avez-vous pu cr�er un ordre qui initialise le DMM une fois et puis acqu�rez-vous des donn�es de l'instrument qui peut �tre couru des p�riodes multiples avec les m�mes r�sultats? Il me retentit comme vous ne recevez pas les r�sultats parce que le DMM n'est pas initialis� ou n'est pas command� correctement. Vous devriez essayer probablement d'accomplir cette t�che simple afin de v�rifier d'abord qu'elle peut �tre faite. Sur une autre note, savez-vous si le conducteur est VISA bas� ou s'il emploie IVI? Si le DMM est IVI conforme vous pourriez vouloir essayer d'employer les types de l'�tape IVI (si vous avez TestStand 2,0 ou plus haut). Si le conducteur est VISA bas� vous pourriez devoir examiner employer le directeur api de session pour partager la session de VISA pour votre instrument � travers des modules de code. Pour un exemple qui emploie les types de l'�tape IVI regardent dans le votre < annuaire de TestStand>\Examples\IVI (il y a �galement des informations sur les steptypes du manuel d'utilisateur de TestStand), et pour le regard de directeur de session dans l'annuaire de \Examples\SessionMgr (il y a �galement un dossier d'aide pour SessionMgr dans < annuaire national d'Instruments>\Shared\SessionMgr).
    Jason F.
    Applications Engineer
    National Instruments
    www.ni.com/ask

Maybe you are looking for

  • Ipod Touch 5th Generation has songs on it that are not mine

    When my "Show All Music" setting is toggled to ON, my Ipod Touch 5th Generation will have several songs I don't own or recognize that is mixed in with my music. These songs are not downloaded to my device, but somehow the Cloud thinks that I own them

  • JMS Adpater Error

    Hi all I configure the JMS receiver Adpater of webSphereMQ but i got the error as followed: <b>Receiver channel. Details: MQJMS2005: failed to create MQQueueManager for '172.31.235.100:QM_Test'</b> I have a doubt: The XI and MQ are in the same server

  • BO4 - Changing name of existing connection on repository and impact on existing unx universes

    Hi, If we have universes (unx ) which have connections and want to rename the connection,  I know we can change the name of the connection on the repository via the repository resources in the Information Design Tool. I notice existing universes whic

  • How do I download raw images into photoshop elements 11.

    I am having difficulty downloading my raw images to photoshop elements 11.  Files are currently on a thumb drive, but I don't know how to download to elements.  I have the thumb drive plugged in --- not sure where to go from here. I have verified tha

  • Column & Row Headings

    Is there any way in Numbers to suppress the display (viewing and/or printing) of row and/or column headings? For example, I don't want to see A,B,C,... across the top or 1.2.3... down the left side. Besides, by suppressing these displays I should be