IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Embarqué Discussion :

Lire données circulant sur port sériel RS232


Sujet :

Embarqué

  1. #1
    Membre du Club
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Juin 2014
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Juin 2014
    Messages : 215
    Points : 60
    Points
    60
    Par défaut Lire données circulant sur port sériel RS232
    Bonjour

    Je souhaite communiquer avec une balance qui à un port RS232.

    Je souhaite déclencher une pesée depuis une commande émanant du PC, la valeur en réponse doit être renvoyée en retour au PC pour être horodaté et enregistrée dans un fichier.
    Un petit utilitaire .exe est fourni par le fabriquant de balance.
    Il permet de recevoir une lecture de pesée déclenchée depuis le clavier de la balance et avec le bouton F2 du PC de déclencher une lecture de pésée qui est renvoyée en réponse.
    Si j'ai bien compris, cela doit permettre aussi de faire différente manipulation avec une liste de commande, mais je n'arrive pas à faire fonctionner cette partie.

    Pour l'instant, j'arrive à :
    • déclencher une pesée depuis le clavier de la balance dont la lecture est envoyée au PC. Attestant que la communication fonctionne dans un sens.
      Avec le petit utilitaire .exe fourni par le vendeur de balance, j'arrive aussi à déclencher une lecture de pesée depuis le PC avec la touche de raccourci F2 (qui correspond à la commande "SI<CR, LF>". Ce qui atteste que la communication fonctionne dans les 2 sens.


    Par contre, je n'arrive pas à :
    • avoir de réponse quand j'envoie la commande "SI<CR, LF>"


    Pour faire mes essais, j'ai utilisé l'utilitaire.exe fourni, et Putty, sur Windows. Je n'ai pas réussi à avoir de réponse à ma commande "SI<CR, LF>" avec Putty qui pourtant réceptionnait correctement une lecture déclenchée depuis le clavier de la balance. Le manuel de la balance insiste pour que <CR, LF> soit inclus après chaque commande, hors, je ne suis pas certain de ce qu'envoi Putty !

    J'ai aussi tenté avec screen et un terminal sous linux (cat </dev/ttyUSB0) et je n'ai pu que réceptionner une lecture initiée depuis le clavier de la balance. Encore une fois, pas de réponse à ma commande "SI<CR, LF>"

    J'ai donc testé ce qu'envoyait la touche de raccourci F2 de l'utilitaire .exe en injectant la sortie RS232 issue du .exe vers l'entrée d'un autre port RS232 connecté à un terminal Putty.
    Putty affiche bien la commande attendue "SI".

    Mon soucis est que je ne sais toujours pas si le CR et le LF sont envoyés en terminaison de ma commande !

    Comment pourrai-je m'en assurer ? Comment pourrai je faire afficher TOUS les caractères afin de m'assurer que ma commande a le bon format attendu par la balance ? A savoir : SI<CR, LF>

  2. #2
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2004
    Messages : 516
    Points : 706
    Points
    706
    Par défaut
    Bonjour, tu peux éventuellement "espionner" toutes les données transitant par le port série, en toutes les données gérées par le système d'exploitation.
    Pour la part j'utilise "device monitoring studio", la version gratuite étant suffisante pour ce que tu veux faire.

  3. #3
    Membre du Club
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Juin 2014
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Juin 2014
    Messages : 215
    Points : 60
    Points
    60
    Par défaut
    Je vais essayer ça dès que possible.

  4. #4
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 620
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 620
    Points : 56 862
    Points
    56 862
    Billets dans le blog
    40
    Par défaut
    Bonsoir,

    Je ne connais pas Putty, mais j'utilise souvent RealTerm :
    Nom : 1314949400_1621721900_org.png
Affichages : 120
Taille : 154,3 Ko

    En affichant au format ascii, tu visualises bien les fins de ligne (les CRLF), et tu peux choisir ce que tu envoies en fin de ligne (Bouton Send ASCII, avec End Of Line : CR/LF)

  5. #5
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 381
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 381
    Points : 19 066
    Points
    19 066
    Par défaut
    Salut à tous.

    Dans Putty, il faut se rendre dans la page "Terminal".
    Tu as deux possibilités qui sont :
    --> implicit CR in every LF
    --> implicit LF in every CR

    Cordialement.
    Artemus24.
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  6. #6
    Membre du Club
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Juin 2014
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Juin 2014
    Messages : 215
    Points : 60
    Points
    60
    Par défaut
    Avec Putty, j'ai essayé avec :
    --> implicit CR in every LF
    --> implicit LF in every CR
    Mais ça ne me donne rien de mieux d'autan que je ne suis pas sûr de ce que j'envoie car les CR et LF envoyés sont invisibles.

    J'ai essayé RealTerm et là je peux voir les CR et LF :
    Pas contre, même en reproduisant exactement la commande issue de mon utilitaire .exe, je n'arrive pas à déclencher et recevoir une pesée de la balance !
    En jaune apparait la commande reçue de l'utilitaire .exe.
    En vert, la commande reproduite avec RealTerm.
    Quand j'envoie depuis RealTerm, impossible d'avoir une réponse de la balance en retour ! Étrange non ?
    Nom : RealTerm1.PNG
Affichages : 105
Taille : 61,7 Ko

  7. #7
    Membre éclairé
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Juin 2004
    Messages : 516
    Points : 706
    Points
    706
    Par défaut
    Tu n'as pas présenté le protocole utilisé: vitesse, nombre de bits/car, parité. Tu es sur d'utiliser le même que celui de ton .exe?

  8. #8
    Membre du Club
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Juin 2014
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Juin 2014
    Messages : 215
    Points : 60
    Points
    60
    Par défaut
    Sur la photo précédente, les inscriptions en jaune sont celles envoyées depuis l'application .exe. et réceptionnées sur RealTerm (et auxquelles répondent aussi la balance quand c'est la balance qui est au bout du port au lieu de RealTerm)

    Ensuite, j'utilise les mêmes paramètres (9600bps, 8 data bits, 1 Stop bit, pas de parité, comme sur la balance) depuis RealTerm pour envoyer la commande vers la balance qui dans ce cas ne répond plus !

    Je peux aussi déclencher une mesure depuis le clavier de la balance qui est correctement renvoyée vers RealTerm (bien que j'ai eut des difficultés pour configurer RealTerm pour qu'il me renvoie ce qu'il recevait).

    Je ne sais où ça coince ?

    Nom : Capture2.PNG
Affichages : 106
Taille : 61,2 KoNom : Capture3.PNG
Affichages : 94
Taille : 63,6 KoNom : Capture4.PNG
Affichages : 90
Taille : 69,9 Ko

  9. #9
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 620
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 620
    Points : 56 862
    Points
    56 862
    Billets dans le blog
    40
    Par défaut
    Essaie avec un autre format d'affichage comme Display as uint8. Il y a peut-être un octet non imprimable caché.

  10. #10
    Membre du Club
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Juin 2014
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Juin 2014
    Messages : 215
    Points : 60
    Points
    60
    Par défaut
    Je ne sais pas exactement si j'ai modifié quelque chose, en tout cas, ça fonctionne maintenant !

    Nom : Capture5.PNG
Affichages : 87
Taille : 73,9 Ko

    Merci de ce conseil !, je tenterais ce format si j'ai de nouveau le soucis.

  11. #11
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 620
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 620
    Points : 56 862
    Points
    56 862
    Billets dans le blog
    40
    Par défaut
    Citation Envoyé par hary66 Voir le message
    Je ne sais pas exactement si j'ai modifié quelque chose, en tout cas, ça fonctionne maintenant !
    Donc, avant ça ne fonctionnait pas et on ne savait pas pourquoi... Maintenant, ça fonctionne mais on ne sait toujours pas pourquoi. Le lecteur qui passerait par ici chercher de l'aide pour un problème similaire risque d'être frustré

  12. #12
    Membre du Club
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Juin 2014
    Messages
    215
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Juin 2014
    Messages : 215
    Points : 60
    Points
    60
    Par défaut
    Je ne sais pas quoi dire.

    En effet, maintenant ça fonctionne.
    Voudrais tu que je fasse une manip supplémentaire et que j'apporte le résultat ?

    Essayer avec le format d'affichage Display as uint8 ?

    Je vais voir si j'ai le temps demain.

    En plus, ensuite, je dois passer une autre étape : Envoyer et réceptionner la commande par un petit .exe en C++ ou un script python

Discussions similaires

  1. Réponses: 0
    Dernier message: 07/11/2018, 12h10
  2. [JNI] Lecture/Ecriture sur port série RS232
    Par jabesq dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 20/09/2010, 17h01
  3. Reception et envoi sur port COM RS232
    Par foujino dans le forum Windows Forms
    Réponses: 2
    Dernier message: 12/02/2009, 09h34
  4. Lire les données du port série RS232
    Par Sytchev3 dans le forum Langage
    Réponses: 2
    Dernier message: 16/06/2008, 08h47
  5. [RS232] Procédure d'acquisition de données sur port serie
    Par kazaboua dans le forum Composants
    Réponses: 6
    Dernier message: 12/05/2007, 11h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo