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

WinDev Discussion :

BALANCE (precia molen) communication avec HyperTerminal


Sujet :

WinDev

  1. #21
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 498
    Points : 461
    Points
    461
    Par défaut
    Bon dev!

  2. #22
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 19
    Points : 2
    Points
    2
    Par défaut
    Merci !

    euh, pour la trame de départ envoyé, tu utilise bien SOH CR LF. C'est ce que je fais mais je n'est aucun réponse. (j'utilise un Sévenement :caractère reçu qui marche bien en Maître A... après avoir ouvert le port et ses paramètres)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sEvénement(EnNumPort,sEveCaractèreReçu,"Reception")
    J'ai aussi essayé SOH ENQ 01 L CR LF !

    >Yo

  3. #23
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 498
    Points : 461
    Points
    461
    Par défaut
    C'est plutôt SOH+ENQ+01+L+CR+LF (cf exemple p22 de la doc Precia)
    Assure toi que cela marche dans l'hyperterminal...
    As-tu précédé ton appel d'un sOuvre puis d'un SFixeParamètre?

  4. #24
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 19
    Points : 2
    Points
    2
    Par défaut
    d'accord, j'ai bien fait souvre et sfixeparametre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    EnNumPort=1
    sFerme(EnNumPort)
    bTest est un booléen = sOuvre(EnNumPort,10000,10000,sTimeoutDéfaut,Vrai)
    SI bTest ALORS
    	sFixeParamètre(EnNumPort,9600, 0, 8, 0,Vrai,Vrai,Vrai)
    	Trace("Connexion réussie !")
    	sEvénement(EnNumPort,sEveCaractèreReçu,"Reception")
    Tout est correct!

    Pour l'envoi de la trame dans l'hyperterminal, tu veux dire qu'il faut envoyer
    SoH ENQ 01 L CR LF (en hexa) par "transfert/Envoyer un fichier texte" ???

    >Yo

  5. #25
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 498
    Points : 461
    Points
    461
    Par défaut
    Non, il faut envoyer la trame via SEcrit()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    EnNumPort=1
    sFerme(EnNumPort)
    bTest est un booléen = sOuvre(EnNumPort,10000,10000,sTimeoutDéfaut,Vrai)
    SI bTest ALORS
    	sFixeParamètre(EnNumPort,9600, 0, 8, 0,Vrai,Vrai,Vrai)
    	Trace("Connexion réussie !")
    FIN
    sCommandePoids est un Buffer =Caract(0x1)+Caract(0x5)+Caract(0x30)+Caract(0x33)+Caract(0x4C)+Caract(0x0D)+Caract(0x0A) //Demande de poids brut
    sEcrit( EnNumPort, sCommandePoids )
    Moi, j'utilise ensuite SLit()

  6. #26
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 19
    Points : 2
    Points
    2
    Par défaut
    C'est ce que je fait ensuite, mais je savais pas qu'il fallait utiliser le type Buffer. Je prenais un type Chaine.
    J'essaye ça et je reviens !

    >Yo

  7. #27
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 498
    Points : 461
    Points
    461
    Par défaut
    ce qui m'étonne c'est ta configuration dans sFixeParamètre...
    Moi, je suis en 9600-Even-7-1 et je configure ma connexion sans les paramètres DTR/DSR, RTS/CTS et XON/XOFF
    càd :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    sFixeParamètre(1, 9600, 2, 7, 0)
    tout simplement!

  8. #28
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 19
    Points : 2
    Points
    2
    Par défaut
    Pour ce qui est de la parité, il y en a aucune et il y a 8 bits par caractère en accord avec la déclaration dans la balance (bits:8nP1) que le commercial de PreciaMolen m'a conseillé de mettre.

    Pour les paramètres RTS DTR Xon ... je l'ai laissé dans le doute même s'il ne sont pas utiles pour moi !

    Ce changement de paramètres n'ont cependant aucune incidence, je viens de tester...
    >Yo

  9. #29
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 498
    Points : 461
    Points
    461
    Par défaut
    Tu as réussi à faire une demande de poids et avoir une réponse avec l'hyperterminal??

  10. #30
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 19
    Points : 2
    Points
    2
    Par défaut
    Bonjour !

    Non, j'ai repris l'affaire et le poids est enfin envoyé !
    En fait l'autre grosse erreur que j'avais faite était le type Chaine que j'envoyais au lieu de Buffer. C'était comme si je n'envoyais rien !

    J'utilise Sévenement (je dois) qui m'envoie le poids en deux partie et j'essaie actuellement d'envoyer les différents blocs pour voir ...

    A+
    >Yo

  11. #31
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 498
    Points : 461
    Points
    461
    Par défaut
    Pourquoi "dois"-tu utiliser sEvenement alors que tu interroges ta balance en esclave? Vu que c'est le PC qui demande, tu sais quand la balance va te répondre!

  12. #32
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 19
    Points : 2
    Points
    2
    Par défaut
    Pour des soucis d'optimisation, le Sevenement prend moins de ressource que un thread de fond qui lit le buffer toutes les X centièmes de seconde, non? a moins que je me trompe !

    Ce que je fesais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Souvre
    SFixeparamètres
    Thread lancé (trace(Slit(Buffer d'Entrée))) toutes les 1/2 secondes
    Sécrit(MaTrame)
    Ce que je préfère :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Souvre
    SFixeparamètres
    Sévenement(caractère reçu, appel procedure)
    Sécrit(MaTrame)
    --------------------
    Procedure :
    Trace(Slit(Buffer d'Entrée))
    >Yo

  13. #33
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    498
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 498
    Points : 461
    Points
    461
    Par défaut
    Ce que j'ai fais :
    Initialisation de la balance au début de la fenêtre (SOuvre, SFixeParamètre).
    Définition d'une procédure locale exécutée en tache de fond toutes les 20ms. Dans cette procédure, : je teste si la balance est stable et si c'est le cas je récupère le poids(SEcrit puis SLit). Quand tu dis que cela prend des ressources c'est que tu l'as observé? C'est un point où j'ai eu un peu de mal aussi mais en jouant avec la fonction Multitache(-1) ça marche du tonnerre!

  14. #34
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 19
    Points : 2
    Points
    2
    Par défaut
    C'est ce que j'ai lu sur internet !
    Oui, je sais j'ai vu plusieurs sujets sur d'autres forums que tu as déposé sur ce sujet (dont celui de WD) je regarde et j'essaye ...
    >Yo

  15. #35
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 19
    Points : 2
    Points
    2
    Par défaut
    salut !

    En effet, le multitâche (-1) résoud pas mal de problèmes de gestion du temps...
    J'ai tout de même garder mon Sévenement(caractère reçu) qui marche et je fais plusieurs manipulations de la trame reçu pour prendre que ce qui m'intéresse !



    Un grand Merci à Fucce qui a bien voulu prendre du temps pour m'aider
    > Yo longue vie à developppez.com

  16. #36
    Nouveau Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Août 2012
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Sénégal

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2012
    Messages : 1
    Points : 1
    Points
    1
    Par défaut documentation i200B
    Citation Envoyé par yoh49 Voir le message
    OUI, j'ai reçu 4 pdf dont 3 qui sont trop important pour que je puisse les mettre en lien ...
    Le zip est le plus important (protocole).
    Je peut te les donner par courriel ?
    >Yo
    salut,
    peux tu m'envoyer les 4 fichiers pdf de l'i200B car je veux connecter et parametrer un indicateur I200B sur un pont bascule .
    mon mail:icisse0@gmail.com
    merci d'avance

  17. #37
    Membre émérite
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Points : 2 533
    Points
    2 533
    Par défaut
    Citation Envoyé par yoh49 Voir le message
    ...Pour les paramètres RTS DTR Xon ... je l'ai laissé dans le doute même s'il ne sont pas utiles pour moi !...
    Juste une petite remarque, ces paramètres sont loin d'être anodin, ce sont eux qui permettent de gérer le flux de données qui transite sur le port série.

    Ces paramètres permettent d'indiquer à l'autre périphérique que l'on est prêt à recevoir ou à émettre. Généralement chaque périphérique possède un buffer de données ou sont stockées les éléments émis par l'autre périphérique. Quand ce buffer arrive proche de sa limite, le périphérique émet un signal pour indiquer à l'autre périphérique d'arrêter d’émettre.

    En gros, sans ces paramètres, on risque de perdre des données si un des 2 périphériques n'arrive pas à traiter les données avant que le buffer ne sature.

    Ces paramètres sont à définir sur les 2 périphériques et de manière identique. XON/XOFF sont 2 caractères ascii qui sont envoyés sur la paire data du câble, DTS/CTS sont des signaux levés sur une paire spécifique. (il faut donc que le câble soit adapté pour les gérer)

    Il est vrai que ce que j'indique là étais valable à l'époque (époque lointaine des VT52/VT100 et des imprimantes séries !!) où je traitais des flux séries, possible que cela ai fortement évolué depuis et que ce soit devenu obsolète, mais cela m'étonnerait beaucoup.
    Si ce message vous a semblé utile, il est possible qu'il soit utile à d'autres personnes. Pensez au . Et n'oubliez pas le le moment venu !

    On n'a pas à choisir si l'on est pour ou contre la décroissance, elle est inéluctable, elle arrivera qu'on le veuille ou non.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Communication avec balance precia molen i20
    Par juju1988 dans le forum Langage
    Réponses: 21
    Dernier message: 28/05/2015, 16h50
  2. Communication avec indicateurs PRECIA MOLEN
    Par el_pedro dans le forum C#
    Réponses: 4
    Dernier message: 20/07/2013, 23h36
  3. probleme de communication avec une balance
    Par jo9090 dans le forum LabVIEW
    Réponses: 1
    Dernier message: 17/02/2012, 11h44
  4. Envoie données balance Precia Molen
    Par Elwe31 dans le forum VB.NET
    Réponses: 7
    Dernier message: 21/09/2011, 09h26
  5. [Dialog06] Protocol de communication avec Balances
    Par darkendorf dans le forum Windows
    Réponses: 1
    Dernier message: 15/06/2010, 09h08

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