Test de communication pc-pc par null modem (port série rs232)

Soyez le premier à donner votre avis sur cette source.

Vue 58 350 fois - Téléchargée 5 142 fois

Description

Ceci n'est pas une appli mirrobolante, mais elle a l'avantage de résumer les bases de la communication par port série RS232 entre 2 PCs sous VB6.

Assistance technique : câblage d'un "Null Modem" DB9
nécessite deux prises femelles 9 broches
_______
\54321/
\9876/

1 --> 7-8 : DCD vers RTS/CTS
2 <-- 3 : RXD sur TXD
3 --> 2 : TXD vers RXD
5 ---- 5 : Ground sur Ground
7-8 --> 1 : RTS/CTS sur DCD

Remarque :
Cette appli nécessite :
Microsoft Form2.0 Object Library
Microsoft Comm Control 6.0

Source / Exemple :


'       Ce projet est un test de communication entre deux ordinateurs
'   via un port série RS232.
'       En connectant un PC à un autre, ce programme permet d'envoyer des
'   chaînes de 8 caractères maximum.
'       La configuration des ports est basique : "9600,n,8,1".

'       This project is a communication test between 2 computers on a
'   RS232 serial port.
'       After connecting the computers, you can send strings
'   of 8 characters maximum.
'       The configuration of ports is classical : "9600,n,8,1".

'       Il est aussi là à titre d'exemple pour ceux qui s'adonnent à la
'   communication par port série. On rappellera que ce port sert
'   essentiellement aujourd'hui pour les modems et les appareils industriels.

'       This software can else be used by those who want to train themselves
'   on communication with serial port. We can remember that, nowadays,
'   this port is essentially used for modems and industrials equipements.

'P S :
'   Les deux fenêtres des COM 1 et 2 sont identiques en tous points.
'
'   The two windows for COM 1 and 2 are exactly the same.

Private Sub Form_Load()
    Comm.InputMode = comInputModeText
    Comm.RThreshold = 1         'permet de gérer l'événement CommEvent : réception
    Comm.SThreshold = 1         'permet de gérer l'événement CommEvent : envoi
End Sub

Private Sub Comm_OnComm()

'   Cette procédure permet de gérer les événements présents autour et sur le port
'   Le cas présent, je teste l'envoi, la réception avec l'affichage du contenu du
'   buffer d'entrée, et l'événement Break de blocage du buffer de sortie.

'   This process work on events in and arround the port. Present case, I test
'   sending, reception followed by displaying the input buffer, and the event
'   Break which block the output buffer.

    Select Case Comm.CommEvent
    Case 0: Text1.Text = Text1.Text & "Travail terminé" & vbCrLf
    Case 1: Text1.Text = Text1.Text & "Envoi en cours" & vbCrLf
    Case 2: Text1.Text = Text1.Text & "Reception en cours" & vbCrLf
            Text1.Text = Text1.Text & Comm.Input & " -- reçu" & vbCrLf
    Case 1001: Text1.Text = Text1.Text & "Blocage" & vbCrLf
    End Select
End Sub

Private Sub Command1_Click()        'Bouton Envoyer / Send button
    On Error Resume Next
    Comm.Output = Text2.Text
End Sub

Private Sub Command2_Click()        'Bouton Ouvrir Port / Open serial button
    Comm.PortOpen = True
End Sub

Private Sub Command3_Click()        'Bouton Fermer Port / Close serial button
    Comm.PortOpen = False
End Sub

Private Sub Command4_Click()        'Bouton Break / Break button
    If Comm.PortOpen = True Then
    Select Case Comm.Break
        Case vbFalse
            Comm.Break = True
            Command4.BackColor = vbRed
        Case vbTrue
            Comm.Break = False
            Command4.BackColor = vbGreen
        End Select
    Else
        Comm.Break = False
        Command4.BackColor = vbGreen
    End If
End Sub

Private Sub Timer1_Timer()          'Une routine de test sur l'état du port / a loopback on testing state of port
    If Comm.PortOpen = True Then
        Label1.Caption = "Ouvert"
        Command2.Enabled = False
        Command3.Enabled = True
    Else
        Label1.Caption = "Fermé"
        Command2.Enabled = True
        Command3.Enabled = False
    End If
    Text3.Text = "OutBuffer : " & Comm.OutBufferCount & " | InputBuffer : " & Comm.InBufferCount
End Sub

Conclusion :


Je n'est pas poussé la gestion d'erreurs.
Alors, si vous constatez un bug,...vous savez à quelle porte sonner...

Dernière mise à jour:
pour ceux qui ne l'on pas, me laisser un message sur le site

PrX

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

thekingoftheweb
Messages postés
68
Date d'inscription
mercredi 9 janvier 2002
Statut
Membre
Dernière intervention
2 décembre 2002
-
Bon j'ai pas regardé mais je trouve le principe génial, si ça marche biensur

King
www.jeuxenligne.fr.st
cs_PrX
Messages postés
91
Date d'inscription
lundi 16 septembre 2002
Statut
Membre
Dernière intervention
2 novembre 2005
-
Merci, King

Le principe est simple, et, en plus, ça marche.........
Bien entendu, ce système de communication est dépassé aujourd'hui pour les jeux mais reste très utilisé pour la communication avec un automate ou pour la lecture de certain périphérique (lecteur de code à barres, ...)

PrX, :-)

PS : Ca marche si on connaît les Null Modem (sic).
Pour un automate, il faut avoir le cablâge qui lui convient (Perso, je travaille sur un Omron et c'est n'imp.)
cs_jackky
Messages postés
50
Date d'inscription
mardi 8 janvier 2002
Statut
Membre
Dernière intervention
6 juillet 2003
-
salut ta source est tres bien mais il manque le fichier fm20.dll
tu pourrais me l'envoyer le_charmeur24@hotmail.com
merci @ +
pioug43
Messages postés
32
Date d'inscription
lundi 23 décembre 2002
Statut
Membre
Dernière intervention
3 novembre 2006
-
je ne possede pas la derniere version et j'aurais voulu la recuperer merci d'avance pioug@wanadoo.fr
cs_chouikh
Messages postés
8
Date d'inscription
mercredi 11 juin 2003
Statut
Membre
Dernière intervention
26 mars 2009
-
salut PrX
ton programme fonction bien, je l'ai testé.
moi j'ai un autre probleme et peut etre vous pouvez m'aider. je suis entrein de travailler sur un projet d'interface entre un PC et une automate, mais franchement j'ai jamais travaillé sur un projet similaire, alors si vous avez des connaissances sur les principes de communication entre une automate et un PC j'aimerai bien que vous m'aider bien sûr si ça ne vous dérange pas.
webmaster@icat.ma

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.