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

C Discussion :

Problème communication socket avec S7, Type BYTE


Sujet :

C

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 134
    Points : 122
    Points
    122
    Par défaut Problème communication socket avec S7, Type BYTE
    Bonjour,

    pour un projet, je dois réaliser une connexion SOCKET avec un automate.
    Dans la trame définie, il y a une longueur de 1 allouée pour une valeur passée en BYTE.
    J'ai un problème de compréhension avec ce champ.

    De mon côté, lorsque je veux envoyer un message, j'ai défini ce champ comme un unsigned char que je convertis dans le message final avec un %c

    ex:
    unsigned char usValByte = 0;
    char titi[20];

    sprintf ( titi, "%11.11s%c%5.5s", "toto", usValByte, "test" );


    Le problème, c'est qu'en faisant ceci, le %c = valeur de fin de chaine de caractère et j'envoi une trame incomplète???

    Je dois mal comprendre cette notion de BYTE.

    Quelqu'un peut-il m'aider.

    Merc

  2. #2
    Membre éclairé
    Avatar de Pouet_forever
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 671
    Points : 842
    Points
    842
    Par défaut
    0 == '\0' donc si tu veux passer un '0' il faut tout simplement que tu fasses :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    unsigned char usValByte = '0'; /* Note les quote */
    Plus tu pédales moins fort, moins t'avances plus vite.

  3. #3
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 134
    Points : 122
    Points
    122
    Par défaut
    ok, c'était une des solutions envisagées,
    mais je dois recevoir et passer la valeur '12' par exemple dans ce champ BYTE (sur une longueur de 1 dans la trame)
    comment je fais dans ce cas ?

  4. #4
    Membre éclairé
    Avatar de Pouet_forever
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    671
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 671
    Points : 842
    Points
    842
    Par défaut
    Bah après c'est toi qui voit, tu peux aussi tout simplement 'décaler' de 1. C'est-à-dire que 0 donnera 1, 1 donnera 1, etc.
    Faut voir exactement ce que tu veux faire.
    Plus tu pédales moins fort, moins t'avances plus vite.

  5. #5
    Membre régulier
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    134
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2006
    Messages : 134
    Points : 122
    Points
    122
    Par défaut
    Sorry, je ne comprend pas.

    ici, si je veux passer les valeurs binaires 0 et 12 dans deux unsigned char, comment je dois m'y prendre ?
    unsigned char ucZero = (binaire de 0)
    unsigned char ucZero = (binaire de 12)

Discussions similaires

  1. [WD10] Communication socket avec pocket PC
    Par y0p dans le forum WinDev
    Réponses: 1
    Dernier message: 05/11/2007, 11h29
  2. problème de caractère avec un TYPE
    Par PoichOU dans le forum SQL
    Réponses: 1
    Dernier message: 01/06/2007, 19h55
  3. Problème communication sockets serveur mutli-client
    Par muad'dib dans le forum Réseau
    Réponses: 5
    Dernier message: 17/05/2007, 02h21
  4. problème d'overflow avec variable type double
    Par ben83 dans le forum VB 6 et antérieur
    Réponses: 13
    Dernier message: 15/02/2007, 09h55
  5. Problême de Socket avec un applet java (RMI/policy)
    Par Vesperal dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 12/04/2006, 12h00

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