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

avec Java Discussion :

Envoi d'une trame TCP


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 62
    Par défaut Envoi d'une trame TCP
    Bonjour,

    je suis sur un projet dans lequelle je dois communiquer avec un automate par le Modbus/tcp.

    Mais j'ai quelque soucis :

    - le premier le module ne respecte pas le modbus enfin pas dans ça totalité. je m'explique
    par exemple il est dit dans la norme qu'une requête en écriture d'une seul bobine doit être former ainsi :

    mon programme envoye bien
    seul soucis c'est que les developpeurs de l'automate eux on decider que c'était
    - le deuxième : utilisant j2mod comme librairie je cherche le moyen de "modifier" le contenu de ma requête pour qui colle avec la trame qui devrait fonctionner.

    - ou alors pourriez-vous m'aiguiller pour envoyer dans des sockets du hexadécimal.
    j'arrive à établir des connections par le biais du tcp mais j'arrive pas a envoyer mes commandes en hexadécimal.

    Pour astuce je peux pas dire aux développeurs de l'automate que c'est des authistes et leur refaire recoder pour qu'il respect vraiment le protocole

    Merci d'avance.

  2. #2
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Par défaut
    Tu veux vraiment envoyer de l'hexadécimal (Chaine de caractère) ?
    Ou tu veux envoyer les valeurs correspondant à l’hexadécimal ?

    Parce que dans le deuxième cas tu as juste à envoyer de tableau d'unsigned byte via ton socket.

    Unsigned byte n'existe pas en java, il faut bidouiller en général : passer de -128=>127 à 0 (00) => 255 (FF)

  3. #3
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 62
    Par défaut
    dans ce cas là => par la création de socket.

    j'aimerais savoir comment envoyer une commande qui doit être en hexadécimal (et bien en hexa pas traduit en ascii ou autre) par le biais d'un socket tcp.

  4. #4
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Par défaut
    2 caractères hexadécimaux => 1 octet

    Socket.getOutputStream().write(byte[])

  5. #5
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Décembre 2011
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2011
    Messages : 62
    Par défaut
    ça donnerais donc un truc dans le genre là

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     
    this._port = 502;
    this._socket = new Socket("192.168.255.1", this._port);
    byte[] commande = new byte[]{(byte)00,(byte)00,(byte)00,(byte)00,(byte)00,(byte)06,(byte)05,(byte)00,(byte)00,(byte)255,(byte)06};
    this._socket.getOutputStream().write(commande);
    2 caractères hexadécimaux => 1 octet

    un hex => 2 byte ?

  6. #6
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Par défaut
    Alors :
    ==> Ça, ça n'existe pas, CF mon premier post sur le bidouillage.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    2 caractères hexadécimaux => 1 octet
    un hex => 2 byte ?
    HEIN ???

    00 => 0 => 1 octet => 1 byte à bidouiller
    06 => 6 => 1 octet => 1 byte à bidouiller
    FF => 255 => 1 octet => 1 byte à bidouiller

    Sinon au niveau de l'envoie ça devrait être bon. Avec un petit flush en prime.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Envoi d'une trame ethernet
    Par Sékiltoyai dans le forum Réseau
    Réponses: 4
    Dernier message: 22/03/2009, 16h51
  2. [Réseau] Connexion et envoie d'une trame
    Par ivanoe25 dans le forum Langage
    Réponses: 10
    Dernier message: 29/09/2006, 00h04
  3. Problème avec l'envoi d'une trame TCP
    Par fredoBreton dans le forum API, COM et SDKs
    Réponses: 14
    Dernier message: 17/11/2005, 20h19
  4. [Réseau] Envoyer une trame tcp
    Par heid dans le forum Web & réseau
    Réponses: 5
    Dernier message: 18/07/2005, 13h07

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