begin process at 2012 02 14 15:18:47
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Control

 > TEST DE COMMUNICATION PC-PC PAR NULL MODEM (PORT SÉRIE RS232)

TEST DE COMMUNICATION PC-PC PAR NULL MODEM (PORT SÉRIE RS232)


 Information sur la source

Note :
8,2 / 10 - par 5 personnes
8,20 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Control Niveau :Débutant Date de création :08/11/2002 Date de mise à jour :21/11/2002 14:04:19 Vu / téléchargé :53 419 / 4 467

Auteur : PrX

Ecrire un message privé
Commentaire sur cette source (16)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
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

  • ' 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
'       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  

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source avec une capture IMPRIMER UN CONTRÔLE
Source avec Zip Source avec une capture EXTRACTION DEPUIS UN FICHIER TEXTE ET REMPLISSAGE D'UN BASE ...

 Sources de la même categorie

Source avec Zip COMMUNICATION MODBUS MASTER par sergelapointe
Source avec Zip Source avec une capture DÉPLACEMENT AVEC FLÈCHES DANS UN PAVÉ DE TEXTBOX 9X9 DYNAMIQ... par EhJoe
Source avec Zip Source avec une capture Source .NET (Dotnet) CONTROLSTARS EN RÉPONSE À JAKNIGHT007 par bigboss9
Source avec Zip Source avec une capture Source .NET (Dotnet) CALENDRIER ANNUEL NORME ISO par Prog1001
Source avec Zip Source avec une capture Source .NET (Dotnet) CONTROLE STARS par jaknight007

Commentaires et avis

Commentaire de thekingoftheweb le 09/11/2002 01:32:27

Bon j'ai pas regardé mais je trouve le principe génial, si ça marche biensur

King
www.jeuxenligne.fr.st

Commentaire de PrX le 12/11/2002 14:08:49

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.)

Commentaire de jackky le 18/11/2002 16:55:40

salut ta source est tres bien mais il manque le fichier fm20.dll
tu pourrais me l'envoyer le_charmeur24@hotmail.com
merci @ +

Commentaire de pioug43 le 23/12/2002 13:40:48

je ne possede pas la derniere version et j'aurais voulu la recuperer merci d'avance pioug@wanadoo.fr

Commentaire de chouikh le 25/08/2003 13:44:20

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

Commentaire de anthonyo25 le 08/02/2004 11:40:23

Bonjour a tous, et un grand merci a Prx

Voila la question que je me pose en tant que débutant: Est-il possible de modifier quelque peux le programme, pour qu'il puisse envoyer, un fichier de grande taille (un jeux par exemple) ?
  En effet actuellement, je me lance dans la réalisation(sans prétention), d'un petit explorateur de fichier, avec lequel je voudrais selectionner  un fichier et l'expédier via le port serie.
    Auriez-vous quelque infos, a partager avec moi ? Merci de votre aide. Et bonne continuation.

Commentaire de PrX le 22/03/2004 15:37:50

Pour l'envoi d'un gros fichier, il faut d'abord se rappeler que le port serie transfere par paquet de 8 mots.

En soi, la transmission de gros fichier doit etre quasi directe si on se limite au Null Modem. Mais tres lente!
Je preconise la gestion des reseaux (controleur wincom)

Commentaire de v6comm89 le 14/04/2004 11:48:19

J'ai un problème avec mon port sertie sous visual basic 6 :
je n'ai rien du tout en sortie de mon port com1 lorsque j'utilise MScomm
par contre quand j'utilise un programme programmé en c
il y a quelque chose en sortie
Je voudrai donc savoir d'ou vient le problème dll manquante, un composant à ajouté, etc...
j'ai tester le programme de
TEST DE COMMUNICATION PC-PC PAR NULL MODEM (PORT SÉRIE RS232)
mais ça ne marche pas (rien en sortie)
que ce soit l'exe ou à partir de la source.

Commentaire de crazylion le 13/05/2004 22:31:45

Salut, moi jvoudrais savoir comment est ce que l'on peut faire pour afficher la trame complete, au lieu d'afficher la trame par 8 octets

Commentaire de winner24 le 25/11/2004 22:38:00

slt prX, je trouve votre programme correct mais ca marche pas faut au câble a vb6, je sais pas ,?? je vs demande vivement d'élargir votre source pour permettre:
-de dialoguer entre le hote et l'invité
-lister un répertoir
-transfert de fichier
si ca vous interesse biensur, bon courage!!

Commentaire de Le mirage le 14/05/2005 21:20:09

slt , désire savior comment envoyer un nombre de bits sur le port série, par exemple je veux envoyer 10001000
commment je peux envoyer cet octet toute à la fois ou succecivement

Commentaire de PrX le 16/05/2005 23:11:54

Merci a tous pour vos messages...!!!

Je voudrais d'abord m'excuser, mais ca fait pres de 1 an que je galere sur 36 choses a la fois et j'ai un peu trop delaisse mes sources a partir de mars 2004, de plus que je travaillais surtout en VC++6 au Quebec a ce moment la.
La, je suis revenu mais en recherche d'emploi, et je programme donc moins que je n'ecris des lettres de motivation.(lol)

Voici les reponses aux questions:
1)Le controle MSComm ne permet pas de lire le port de sortie, seulement la reponse... Perso, j'avais teste avec un NULL MODEM connecte entre mon COM1 et ùmon COM2.

2)Si ca ne marche toujours pas, verifier le cablage de la connectique.

3)A la question de mon affichage par trame de 8 octet, je n'ai pas mis en place de protocole de coomunication dans mon exemple. Mais on peut tou a fait lire un trame de plus de 8 caracteres si on en met place un. Exemple : <trame> + <CRLF>

4)le tansfert bit a bit n'est pas une chose que j'ai pratique beaucoup en VB6 avec le controle MSComm, mais en VC++6. Ma reponse est que la communication existe de 2 facons : BIT et textuelle. Je ne sais pas si le controle maitrise la 1ere methode.

5)La communication complete par port serie (cad comme le LAN) est une chose tres interessante a etudier.
Toutefois, je tiens a preciser qu'au jour ou j'ai ecris ce code, je travaillais sur la communication PC/Automate. C'est pour ca que je n'avais pas etendu mon travail.
Enfin, je pense que, sauf cas particuliers, ce mode de dialogue PC/PC est devenu relativement obsolete avec l'apparition des reseaux 10Mbit,100Mbit et gigabit.

Encore un grand merci a tous! ;-D

PrX

Commentaire de mounaouir le 13/12/2005 11:42:16

je sui entrain de réaliser une communication serie entre une automate et un PC mais chez moi j'utilise 2 pc mais tj ca marche pas d'ou je peut commencer je sait pas ou se reside le PB HARD ou SOFT
corrdialement orienter moi merci
badrmnr@gmail.com
badr_mnr@yahoo.fr

Commentaire de PrX le 13/12/2005 22:56:31

Mounaouir,

J'ai bien recu votre message.

Comme je le precise dans les commentaires, une connexion RS232 PC<->Automate dépend de trois choses essentiels :
- le cable de connexion (quelle broches à quel fil)
- le protocole de communication (caractere de debut de chaine, de fin de chaine, caractere de controle s'il existe, formatage de la chaine, etc...)
- le type de codage (caracteres alphanumeriques, sur un seul octet uniquement, etc..)

Personnellement, j'ai eu des problemes de discussion avec un automate Omron, meme avec le cable idoine.
Cependant la plupart des fabricants dispose aujourd'hui d'un logiciel de supervision d'automate, en version complete ou "Lite", comme je l'ai utilise plus tard pour le projet qui m'avait lance dans cette etude.

Pour le probleme de deux PC, mon programme n'a jamais pose de probleme particulier.
Le seul mauvais point est que je n'ai pas defini de protocole de communication. D'ou la lecture par 8 caracteres.
Verifiez donc la qualite et les connexions des broches dans votre cables "Null Modem".

Si la solution n'est pas la, il me faudrait plus d'elements pour vous etre d'un plus grand secours.

Salutations,

PrX

Commentaire de Tgrafik le 25/06/2006 00:10:05

J'ai un problème avec mon port série sous visual basic 6 : je viens d'écrire une application VB6.0 et
je n'ai rien du tout en sortie de mon port com1 lorsque j'utilise MScomm (PORT SÉRIE RS232).
Je suis capable de recevoir des messages mais je ne peux en envoyer. Je voudrai donc savoir d'ou vient le problème. Est-ce une dll manquante, un composant à ajouté, version Windows XP PRO INCOMPATIBLE, etc... ???

Commentaire de jameljaballah le 25/05/2011 02:54:45

salut tt le mande
je suis en train de réaliser cette application,, aider moi

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,702 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales