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

VB.NET Discussion :

envoyer et recevoir des trames


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 37
    Par défaut envoyer et recevoir des trames
    Bonjour à tous,

    Je rencontre un petit problème dans le développement d'une application en VB 2010.
    L'application est connectée à un automate qui doit envoyer et recevoir des trames
    Le problème c'est que je travaille sur visual basic et je ne connais pas ce logiciel et c'est pour celà que je fais appel à vous


    Voilà j'ai codé ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
    Sub Calcul_checksum()
            Dim TabEnvoyé As Byte() = New Byte(12) {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}
     
            TabEnvoyé(0) = &H2  ' initialisation_connection(0)
            TabEnvoyé(1) = &H3F ' initialisation_connection(1)
            TabEnvoyé(2) = &H30 ' Id(0)
            TabEnvoyé(3) = &H31 ' Id(1)
            TabEnvoyé(4) = &H31 ' Id(2)
            TabEnvoyé(5) = &H44 ' Type_registre(0)
            TabEnvoyé(6) = &H52 ' Type_registre(1) 
            TabEnvoyé(7) = &H48 ' Registre(0)
            TabEnvoyé(8) = &H52 ' Registre(1)
            TabEnvoyé(9) = &H30 '  Nb_registre(0)
            TabEnvoyé(10) = &H31 ' Nb_registre(1)
            TabEnvoyé(11) = &H30 ' Nb_registre(2)
            TabEnvoyé(12) = &H31 ' Nb_registre(3)
     
     
            Dim Somme As Integer = 0
     
            ' Calcul du Cheksum de la trame Envoyé 
            For Each x As Byte In TabEnvoyé
                Somme = Somme + x
            Next
     
     
     
            'Dans la trame envoyé : on a forcement 709 (>255) ou 2C5 en Hexa donc représenté sur 3 digits en hexa
     
            Dim bt As Byte() 'je declare bt qui est un octet 
            bt = BitConverter.GetBytes(Somme) 'Retourne la valeur de l'entier non signé 32 bits spécifié sous la forme d'un tableau d'octets.
            Dim a1 As String = Hex(bt(0)) 'dans a1 j'aurais C5
     
     
            Dim aa As String = Hex(Somme)
     
     
        End Sub
    Dans un premier , j'aimerais comprendre comment on code envoyer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      Sub envoi()
     
        End Sub
    Dans un second temps, j'aimerais comprendre comment on code recevoir
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
      Sub reception()
     
        End Sub
    Donc je vous fait appel et je n'y arrive pas : j'y est réfléchis toute la journée
    Merci d'avance
    Je ne connais pas trop ce langage mais je veux apprendre c'est dans le cadre de mon stage.
    Bonne journée

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Par défaut
    on va commencer simplement... tu connais quel langage ?

    es tu familiarisé avec un langage, sous Dotnet, quelconque genre C# par exemple ou d'un autre éditeur comme Delphi.NET ?

    Ensuite il faudra etre plus précis quand à ces trames... si tu parle de trame tu parle de connexion client/serveur en réseau... pour cela les modeles de connexions réseaux sont légions et sans d'autre information il est impossible de mieux t'aider...
    ton application doit-elle se connecter via des sockets TCP à un serveur sur automate, ou catché des messages envoyés dans le réseau, au ptit bonheur la chance, voir en UDP... ?

  3. #3
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Je parie que c'est une connexion sur port COM

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Par défaut
    oui j'y ai pensé après avoir quitté le bureau...
    si c'est ça il est pas rendu...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 37
    Par défaut
    Mon amis m'avait parlait du mode TCP/UDP
    Âpres je ne vois pas du tout peut par connexion avec les ports mais je ne sais pas du tout
    Voilà

  6. #6
    Membre Expert Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Par défaut
    humm ce code me dit quelque chose ...
    tu attend vraiment qu'on fasse tout a ta place ...

    soit, mais nous on sais déjà faire, c'est a toi d'apprendre tu est en stage
    et tu ne t'aide pas vraiment, surtout quand tu n'écoute rien a ce qu'on te dit
    *je parle du topic précédent que tu a lancé*

    bon pour ton envoie de trame
    je te fait une explication sous vb 2008
    a toi de l'adapter en vb 2005

    1°) tu ajoute l'outil "SerialPort" a ton formulaire

    une fois ajouté il apparait



    2°) tu configure cet outil par rapport a ton protocole de connexion



    rien de trés effrayant je te rassure quand je dit protocole
    tu dit juste si il y a un bit de parité, de start, de stop etc.
    (comme en cours)


    3°) tu programme en vb l'envoie et la lecture sur le SerialPort

    voila aprés tu a quelques lignes de codes a programmer pour envoyer ta trame
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ' ouverture du port
    spRS232.Open()
    ' lecture du port
    spRS232.Write(TabEnvoyé, 0, 13)
    je me rend compte d'une chose
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    !!!!!!!!!!!!!!! "TabEnvoyé" !!!!!!!!!!!!!!!!!!!!
    !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
    ENLEVE MOI CET ACCENT MAINTENANT

    Ensuite,
    pour lire ce qui arrive sur le SerialPort
    ben c'est simple tu a un événement qui le voi tout seul

    tu va dans ta page de code (du formulaire) et en haut :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Private Sub spRS232_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles spRS232.DataReceived
            'déclaration des variables
            Dim budd(13) As Byte
            Dim strRecu As String = Nothing
            ' lecture de la trame recu "sur 13 bytes"
            spRS232.Read(budd, 0, 13)
            ' fermeture du port
            spRS232.Close()
     
            For ii As Integer = 0 To 12
                strRecu = strRecu & ":" & Hex(budd(ii))
            Next
            ' Affichage de la trame
            MessageBox.Show(strRecu)
        End Sub
    voila avec sa du devrais avoir de quoi a avancer,
    par contre je te prévient tu a intérêt a essayer de bosser un peut tout seul

    et au risque de me répéter c'est un aperçu sous vb 2008
    je ne sais pas si c'est la même chose sous vb 2005

    bonne continuation,

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 37
    Par défaut
    Justement si je demande de l'aide : c'est pour essayer de comprendre le système car niveau visual basic j'ai commencé juste pour mon stage.
    J'ai fais avant juste du visual studio au lycée
    Merci de ton aide et je vais lme débrouiller un peu tout seul

Discussions similaires

  1. Envoyer/recevoir des trames ethernet
    Par orochimaru dans le forum Réseau
    Réponses: 13
    Dernier message: 03/07/2009, 20h19
  2. Réponses: 7
    Dernier message: 07/01/2009, 08h53
  3. Réponses: 0
    Dernier message: 02/09/2008, 21h06
  4. DotMsn : Envoyer et recevoir des messages
    Par Couz02 dans le forum Framework .NET
    Réponses: 19
    Dernier message: 03/06/2008, 19h46
  5. Envoyer et recevoir des fichiers aves les Sockets
    Par kaderscream dans le forum C++Builder
    Réponses: 2
    Dernier message: 20/08/2006, 17h51

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