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 :

Communication série rs232


Sujet :

VB.NET

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 131
    Points : 46
    Points
    46
    Par défaut Communication série rs232
    bonjour;
    voila je travail sur un projet ou je vais faire une communication entre mon pc et MSC32EX SERAD (http://www.serad.fr/Commande-d-axes-MCS32ex.htm) ce dernier elle est programmé a l'aide du MCBex Software et la communication se fait avec le port série RS232, donc j'ai trouvé un code source je l'ai exécuté avec Visual Studio Express 2012 et ça marche.
    ce que je veux savoir si comment faire pour communique le code source et MSC 32EX ?
    comment établir la communication? je suis perduuuuu

  2. #2
    Membre émérite
    Avatar de imperio
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : Mai 2010
    Messages : 852
    Points : 2 298
    Points
    2 298
    Par défaut
    Je comprends pas ton problème. Si t'arrives à te connecter dessus, qu'est-ce qui t'empêches de lui envoyer des données ?

  3. #3
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 131
    Points : 46
    Points
    46
    Par défaut
    bonjour,

    j'arrive a détecter le port mais quand j’envoie une donner rien ne se passe il n'y a rien qui s'affiche.

  4. #4
    Expert éminent sénior

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 189
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 189
    Points : 17 141
    Points
    17 141
    Par défaut
    Qu'est-ce qui devrait afficher quelque chose?
    Et qu'attends-tu précisément?
    Mes principes de bases du codeur qui veut pouvoir dormir:
    • Une variable de moins est une source d'erreur en moins.
    • Un pointeur de moins est une montagne d'erreurs en moins.
    • Un copier-coller, ça doit se justifier... Deux, c'est un de trop.
    • jamais signifie "sauf si j'ai passé trois jours à prouver que je peux".
    • La plus sotte des questions est celle qu'on ne pose pas.
    Pour faire des graphes, essayez yEd.
    le ter nel est le titre porté par un de mes personnages de jeu de rôle

  5. #5
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 131
    Points : 46
    Points
    46
    Par défaut
    bonjour;

    voila je travail sur un projet ou je vais faire une communication entre mon pc et MSC32EX SERAD (http://www.serad.fr/Commande-d-axes-MCS32ex.htm) ce dernier commandera après une machine industriel lui envoyer des taches.
    MSC32EX SERAD est programmé a l'aide du MCBex Software et un terminal HMI DIALOG 80 et la communication se fait avec le port série RS232, je me suis lancer sur un code source que j'ai trouvé sur le net je l'ai exécuté avec Visual Studio Express 2012 et ça marche avec aucune erreur.
    mais la je suis perduuuu je ne sais pas comment faire pour établir la communication entre mon pc et le MMCS 32EX afin d'échanger des tache ou envoyer ou recevoir des variables ou même commencé par un simple exemple est d'afficher un bonjour sur le terminal HMI DAILOG.
    ps: la je travaille tout seul personne pour me guider ou pour me conseiller avec quoi programmer quel est le langage ou logiciel...

  6. #6
    Membre émérite
    Avatar de imperio
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2010
    Messages
    852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

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

    Informations forums :
    Inscription : Mai 2010
    Messages : 852
    Points : 2 298
    Points
    2 298
    Par défaut
    Tu te rends bien compte que ce que tu nous racontes n'a absolument aucun sens j'espère ? Si on t'a mis sur ce projet, t'es au moins censé avoir des bases dessus non ?

    Sinon, quand t'as as ton lien avec la machine. Pour envoyer les commandes il te suffit généralement d'écrire les codes correspondants sur la connexion. Le code que tu as trouvé te fournit sans doute quelque chose pour faire ça. La liste des commandes doit t'avoir été fournie normalement (ça, on peut pas les deviner !).

  7. #7
    Membre éprouvé Avatar de fenkys
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    376
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 376
    Points : 1 054
    Points
    1 054
    Par défaut
    Bonjour,

    Il faudrait déjà avoir la doc, or le site web affiche une erreur 404.
    Il serait aussi interessant d'avoir le code source, or le site web est inaccessible
    Enfin, il faudrait que tu arrives à mieux t'exprimer. Utiliser le port série n'est pas difficile, mais il faudrait qu'on arrive à savoir ce que tu veux faire.

    Cordialement
    Fenkys

  8. #8
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 131
    Points : 46
    Points
    46
    Par défaut
    Bonjour,
    voila une image d'une interface que je veux mettre en point :
    Nom : Capture.PNG
Affichages : 1219
Taille : 9,0 Ko

    cette interface permettra d'établir une communication entre mon pc et le MCS 32EX SERAD pour effectuer le téléchargement de la configuration, des variable, des taches... entre le pc et la MCS pour cela j'utilise le câble série pour la communication.

    Donc j'ai commencer à programmer avec visual basic pour le moment j'ai réalise le programme du port en plus à charger un fichier de mon ordinateur mais pour l'envoyer j'arrive pas je comprend pas comment faire, je pense qu'il faut l’enregistre dans un buffer avant de l'envoyer?

    en plus avant d’envoyer ou recevoir le fichier il faut attendre l'instruction que je clique sur F6 dans le MCS.

    pour m'inspire j'utilise le code en delphi suivant qui marche très bien :
    code_delphi.txt

  9. #9
    Membre éprouvé Avatar de fenkys
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    376
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2007
    Messages : 376
    Points : 1 054
    Points
    1 054
    Par défaut
    Pour communiquer avec un périphérique il te faut un protocole. La description de ce protocole est fournie par le fabricant du matériel. Si tu n'as pas le protocole tu ne peux rien faire. Si tu ne nous le communique pas, on ne pourra pas t'aider.

  10. #10
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 131
    Points : 46
    Points
    46
    Par défaut
    Bonjour,

    le Mcs 32ex est équipé en standard d'un port communication rs232 qui est utilisé pour effectuer le téléchargement de la configuration, des variable des taches... entre le pc et la MCS.
    sachant que le porte série de communication possède un buffer ou tampon de réception/ transmission de 500 octets.
    donc j'utilise le port série pour communiquer.

    pour le moment voila le code que j'ai réaliser :
    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
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
     
    Imports System.IO
    Imports System
    Imports System.Threading
    Imports System.IO.Ports
    Imports System.ComponentModel
     
    Public Class Form1
     
        'DATA RECEIVED recevoir les données
        Dim inputData As String
        Public Event DataReceived As IO.Ports.SerialDataReceivedEventHandler
     
        Dim myPort As Array  'les ports Com détecter sur le pc seront stokés ici
        Delegate Sub SetTextCallback(ByVal [text] As String) 'Added to prevent threading errors during receiveing of data
     
     
        Private Sub frmMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            'When our form loads, auto detect all serial ports in the system and populate the cmbPort Combo box.
            myPort = IO.Ports.SerialPort.GetPortNames() 'Obtenir tout les ports series 
     
            For i = 0 To UBound(myPort)
                PortBox.Items.Add(myPort(i))
            Next
     
            PortBox.Text = PortBox.Items.Item(0)    'Set cmbPort text to the first COM port detected
            DeconnecteButton.Enabled = False
            Me.KeyPreview = True
     
        End Sub
     
     
        'BUTTON CHARGER
     
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles ChargeButton.Click
     
            Dim dlg As OpenFileDialog = New OpenFileDialog() 'Charge un fichier sur le disque
            If dlg.ShowDialog() = Windows.Forms.DialogResult.OK Then
     
            End If
     
            Dim sDatasTexte = System.IO.File.OpenText(dlg.FileName).ReadToEnd() 'Récup le contenu format texte
     
            ' Place le contenu dans un buffer d'octets (ASCII: 1 char = 1 octet) (UNICODE: 1 Char = 2 octets)
            Dim bBufferBytes() As Byte = System.Text.Encoding.ASCII.GetBytes(sDatasTexte)
     
            'TextBox.Text = sDatasTexte ' Affiche le bloc de texte
     
            ' Et affiche le bloc sour forme d'octets (Convertit les retour chariots pour l'affichage)
            For i = 0 To UBound(bBufferBytes)
                TextBox.Text = TextBox.Text & String.Format("{0:X2} ", bBufferBytes(i)) ' Ou Hex(bBufferBytes(i))
                If System.Text.Encoding.ASCII.GetString(bBufferBytes, i, 1)(0) = vbLf Then TextBox.Text = TextBox.Text & vbCrLf
            Next
     
            ' Ecrit le buffer complet sur le SerialPort
            SerialPort1.Write(bBufferBytes, 0, bBufferBytes.Length)
     
            Timer1.Start()
     
        End Sub
     
        'BUTTON CONNECTER
     
        Private Sub Button2_Click(sender As Object, e As EventArgs) Handles ConnecteButton.Click
            SerialPort1.PortName = PortBox.Text  'Réglez le port série ou port COM sélectionné au démarrage
     
            'Autres propriété du port com
            SerialPort1.BaudRate = 9600
            SerialPort1.Parity = IO.Ports.Parity.None
            SerialPort1.StopBits = IO.Ports.StopBits.One
            SerialPort1.DataBits = 8
            SerialPort1.Open()  'Open our serial port
     
            'ecrire les informations dans la memoire tampon de sortie du port serie
            If SerialPort1.IsOpen = True Then
                ToolStripStatusLabel1.Text = "Port ouvert"
            End If
            'ToolStripStatusLabel1.Text = "Connecter"
     
            ConnecteButton.Enabled = False      'Désactiver bouton Connect
            DeconnecteButton.Enabled = True     'activer le bouton Déconnecter
            RadioButton.BackColor = Color.Gray
            ChargeButton.Enabled = True
     
        End Sub
     
        'BUTTON ENVOYER
     
        Private Sub Button3_Click(sender As Object, e As EventArgs) Handles EnvoyButton.Click
            ' SerialPort1.Write(ChargeButton.Text & vbCr) 'The text contained in the txtText will be sent to the serial port as ascii
            'plus the carriage return (Enter Key) the carriage return can be ommitted if the other end does not need it
     
            ToolStripStatusLabel1.Text = "Appuyez sur 'F6' de la commande numérique puis patientez..."
     
            If Me.KeyPreview = True Then
                SerialPort1.Write(ChargeButton.Text & vbCr)
                'SerialPort1.Write(Chr(10))
     
            End If
     
        End Sub
     
     
        'BUTTON DECONNECTER 
     
        Private Sub Button4_Click(sender As Object, e As EventArgs) Handles DeconnecteButton.Click
            SerialPort1.Close()             'Close our Serial Port
     
            ConnecteButton.Enabled = True
            DeconnecteButton.Enabled = False
            RadioButton.BackColor = Color.Red
            ChargeButton.Enabled = False
     
        End Sub
     
     
        'BUTTON RECEVOIR
     
        Private Sub Button6_Click(sender As Object, e As EventArgs) Handles RecevButton.Click
            ToolStripStatusLabel1.Text = "Appuyez sur 'F6' de la commande numérique puis patientez..."
     
            If Me.KeyPreview = True Then ' le teste de button F6
                'SerialPort1.Write(ChargeButton.Text & vbCr)
                SerialPort1.Write(Chr(10))
                Timer1.Start()
            End If
     
            'SerialPort1.Write(Chr(13))
     
     
     
        End Sub
     
        'BUTTON SAUVEGARDER
        Private Sub Button7_Click(sender As Object, e As EventArgs) Handles SauvegardeButton.Click
     
        End Sub
     
        'TIMER DE LA BAR 
        Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
            ProgressBar1.Increment(1)
            If ProgressBar1.Value = 100 Then
                'Label2.Text = "Télechargement Réussi"
                ToolStripStatusLabel1.Text = "Télechargement Réussi"
            End If
            Label1.Text = ProgressBar1.Value & ("%")
        End Sub
     
        'TESTE DU BUTTON F6
     
        Private Sub Form1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
            If e.KeyCode = Keys.F6 Then
                MsgBox("œuvres")
     
            End If
        End Sub
     
        Private Sub SerialPort1_DataReceived(ByVal sender As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived
     
            inputData = SerialPort1.ReadExisting
     
            Me.Invoke(New EventHandler(AddressOf Affiche))
        End Sub
     
        'afficher les donnees recues dans l’interface utilisateur
        Private Sub Affiche()
            TextBox1.Text &= inputData
        End Sub
     
    End Class
    voila ma logique pour activer le bouton Recevoir un fichier :
    - Click sur le bouton recevoir
    - attendre une instruction que je doit fait sur le terminal opérateurs IHM (dialog 80) donc appuyer sur F6
    - dés que cette instruction est réalisé normalement je commence à recevoir des données stock dans la mémoire de MCS ver mon pc et elle seront afficher dans la textBox.
    - lire les donnée sur le port série.
    -Après avoir récupérée les données je vais les sauvegarder.

    pur le bouton Charger
    - charger un fichier de mon pc.
    - puis mettre les donnée dans un buffer
    -pour l'envoyer il faut que je Click sur F6 de MCS pour le transféré de mon Pc vers MCS.


    voila l'interface


    Nom : Capture.PNG
Affichages : 1190
Taille : 9,6 Ko

  11. #11
    Membre émérite
    Avatar de white_tentacle
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    1 505
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 1 505
    Points : 2 799
    Points
    2 799
    Par défaut
    Si je ne me trompe pas, c’est du VB.Net.

    Tu aurais donc beaucoup plus facilement de l’aide sur le sujet en postant dans le forum adéquat…

  12. #12
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2015
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2015
    Messages : 131
    Points : 46
    Points
    46
    Par défaut
    oui si du VB.net
    pouvez-vous m'aider

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

Discussions similaires

  1. communication série via rs232 avec vb.net
    Par lemabs dans le forum Windows Forms
    Réponses: 1
    Dernier message: 16/11/2009, 16h35
  2. Communication port série (RS232) avec VC++
    Par sanatou dans le forum Visual C++
    Réponses: 2
    Dernier message: 30/10/2006, 13h49
  3. [Debutant(e)] Liaison série RS232 et servlet
    Par bourack dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 07/01/2005, 14h50
  4. [API] Communication série NON-bloquante : OVERLAPPED/Thread
    Par Rodrigue dans le forum C++Builder
    Réponses: 2
    Dernier message: 07/11/2003, 13h43

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