Lecture port série avec adaptateur RS232/USB

nassim2b Messages postés 6 Date d'inscription vendredi 28 janvier 2011 Statut Membre Dernière intervention 22 mars 2011 - 19 mars 2011 à 09:46
bobbretagne1 Messages postés 4 Date d'inscription lundi 23 février 2009 Statut Membre Dernière intervention 23 juin 2012 - 9 févr. 2012 à 15:26
Bonjour à tous,

Je travaille sur un programme lecture/écriture d'un port série RS232.
Le programme fonctionne très bien grace a la fonction OPENCOM, ou encore SENDSTRING ect...Cela avec la dll : RSCOMM.dll.

Cependant dès que j'utilise un adaptateur RS232/USB ( car il n'y a pas tous les ordinateurs qui dispose d'un port RS232 ) ben le programme ne fonctionne plus...

Pourtant des témoins lumnieux de l'adaptateur me "montre" que j'arrive bien à ouvrir le port, et que j'envoi bien des chaines de caractères.


Mais je n'arrive plus à communiquer avec mon module : D'habitude en envoyant des codes spécifiques à mon module ses paramètres changent mais là plus rien..

Donc avez vous une solution ?
Dois-je utiliser une autre dll ( par ex MSCOMM.OCX dont je ne trouve nulle part les commandes) ?

Toutes les solutions ou suggestions seront les bienvenues car je suis vraiment bloqué et je vous en serai très reconnaissant...


Merci d'avance,

17 réponses

NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
19 mars 2011 à 12:32
Bonjour,

pour le MSCommControl :
http://www.google.fr/#hl=fr&biw=1278&bih=825&q=vb6+mscomm+control&aq=f&aqi=&aql=&oq=&fp=c39575edefb5e913

Sinon, ça ne devrait pas poser de problèmes particuliers, as-tu testé avec un autre programme, comme l'hyperterminal par exemple ?

0
nassim2b Messages postés 6 Date d'inscription vendredi 28 janvier 2011 Statut Membre Dernière intervention 22 mars 2011
19 mars 2011 à 14:11
Salut,

merci pour ta réponse, la communication se fait sans problème avec et sans l'adaptateur USB avec l'HyperTerminal.

Mais la communication ne marche bien que sans l'adaptateur USB avec mon programme.

Donc je voit pas qu'elle est la différence car j'arrive bien à envoyer une chaine avec l'adaptateur USB mais il doi y avoir un truc à rajouter ou quelque chose..


Et je ne trouve pas quoi...
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
19 mars 2011 à 14:23
Bonjour,

Un port COM, virtuel ou pas reste un port COM.
Dans mon travail on utilise des port COM déporté sue des modules TCP (vus comme des port COM virtuels coté application, mais PORT COM), aucune différence d'accès (autre que vérifier si le module est accessible avec un ping) n'est nécessaire.

Si ça ne fonctionne pas, c'est peut être (je ne vois pas vraiment pourquoi, mais bon) :
- Quel est le numéro du port généré ?
- Comment tu configure les caractéristiques de ton port (vitesse, parité, ...) ? (Par ton appli, je pense, mais j'ai déjà vu des personnes régler ça dans le gestionnaire de périphérique)
- Le port est déjà en cours d'utilisation ?
- Tu te connecte et te déconnecte trop rapidement (Ouverture, envoi, fermeture) ?

Sinon, je vois mal, tu as déjà fais un tour pour savoir si adaptateur que tu utilises ne pose pas des pb à d'autres personnes ?

0
nassim2b Messages postés 6 Date d'inscription vendredi 28 janvier 2011 Statut Membre Dernière intervention 22 mars 2011
19 mars 2011 à 14:30
Les paramètres du port sont 115000,8,n,1.
j'ai essayer PORT COM2,COM3 et COM5 et c'est pareil.
J'ai bien régler les ports via le gestionnaire des tâche et entrant la bonne parité,vitesse ect...Mais ces paramètres sont réglable directement sur mon programme.

Pour l'adaptateur je ne l'ai pas essayer sur une autre machine vu que l'hyperterminal fonctionns sans problème avec l'adaptateur et je n'ai pas trouver de soucis pour cet adaptateur, le voici :

http://www.ciao.fr/Keyspan_Adaptateur_serie__466947

Et je n'ai pas compri ta question sur la vitesse de la connexion ??
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
19 mars 2011 à 14:40
Bonjour,

115000 n'est pas une vitesse standard de communication, c'est peut être pour ça que ça ne fonctionne pas, la vitesse standard la plus proche est 115200 bauds.

0
nassim2b Messages postés 6 Date d'inscription vendredi 28 janvier 2011 Statut Membre Dernière intervention 22 mars 2011
19 mars 2011 à 14:45
Oui je me suis tromper lorsque je tapait, je voulait bien dire 115200 bauds.

Donc selon vous, le problème ne vient pas de la RSCOMM.dll ?
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
19 mars 2011 à 15:00
Bonjour,

Je ne sais pas, je ne lai jamais utilisé.
Dsl, mais je ne comprend pas pourquoi ça bloque.

0
nassim2b Messages postés 6 Date d'inscription vendredi 28 janvier 2011 Statut Membre Dernière intervention 22 mars 2011
19 mars 2011 à 15:01
Merci quand même !

Les autres suggestions sont les bienvenus...
0
cathyminnie Messages postés 2 Date d'inscription mercredi 30 novembre 2011 Statut Membre Dernière intervention 18 février 2012
5 déc. 2011 à 20:54
Kikou, j'ai exactement le même problème avec une centrale d'acquisition AOIP PC10 en modbus RTU, communication impeccable sur COM1 (une vraie RS232 d'origine PC), plantage total en COM3 sur un convertisseur USB... Inexplicable, tous paramétrages identiques, seul le port change... Peut être une mauvaise implémentation physique des DTR RTS CTS sur le convertisseur, mais les notices sont "laconiques" sur le sujet (c'est un euphémisme)... Merci quoi qu'il en soit pour toute suggestion.
0
Utilisateur anonyme
5 déc. 2011 à 23:28
Salut tout le monde:

cathyminnie: Dans ton cas je ne sais pas trop, mais dans le cas de nassim2b il dit:
des témoins lumnieux de l'adaptateur me "montre" que j'arrive bien à ouvrir le port, et que j'envoi bien des chaines de caractères

Je ne vois que ton câble comme problème, s'il est démontable regarde les broches 2,3 et 5 sur une DB9 et 2,3 et 7 sur une DB25(c'est marqué en tout petit dessus)
2 = Rx (ou Tx)
3 = Tx (ou Rx, je m'en rappelle plus :))
et la dernière c'est la masse.

Ceci-dit je n'en suis pas sûr, mais ça ne coûte rien de vérifier.
J'ai déjà utilisé un adaptateur usb et à 115200 bauds ça fonctionne aussi, il n'y a pas de raison.

Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
bobbretagne1 Messages postés 4 Date d'inscription lundi 23 février 2009 Statut Membre Dernière intervention 23 juin 2012
9 févr. 2012 à 04:26
Salut
j'ai le même problème de réception des trames venant d'une machine.
Avec Docklight pas de soucis avec Com1 (Port reel sur PC)et Com14 (Port passant sur USB
Avec VBA excel 2007 et le dll NetComm1, pas de soucis avec les 2 ports
Avec mon programme sous VB2010 express, en bouclage pour faire les tests Com1 vers Com14 pas de soucis, avec la machine et le port COM1 pas de soucis mais des que j’essaye avec le port 14 (passant sur USB) je ne reçois rien, pas d’événement d'arrivée de trame.
si quelqu'un à une idée !!!!

merci
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
9 févr. 2012 à 10:17
Bonjour,

As-tu essayer de voir pour récupérer avec un Timer ?
As-tu configuré la propriété Thresold (ou similaire) à 1 ?
Quel code as-tu testé ?
(Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : ) )

0
Utilisateur anonyme
9 févr. 2012 à 12:00
Salut,

NHenry, je crois m'en rappeler que tu avais un simulateur de ports com, non? comment il s'appelle déjà?

Ça pourrait aider Bob pour faire ses tests.


Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
9 févr. 2012 à 12:31
Bonjour,

Je précise que la version en ma possession est en x86 utilisant des drivers x86, donc pour les x64, il faut faire une recherche plus étendue.

ViN Soft Virtual Serial Cable.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, ce lien ou encore celui-ci[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
0
Utilisateur anonyme
9 févr. 2012 à 12:52
Re:
Mais il nous a pas dit qu'il était en 64 bits, ou j'ai mal lu?

Sinon j'ai trouvé un autre SUR CE LIEN
Free Virtual Serial Ports Emulator 0.938 (ça a l'air très complet)



Cordialement


CF2i - Guadeloupe
Ingénierie Informatique
0
bobbretagne1 Messages postés 4 Date d'inscription lundi 23 février 2009 Statut Membre Dernière intervention 23 juin 2012
9 févr. 2012 à 15:03
Bonjour et merci pour votre aide
J'ai bien un simulateur de Port Com (Virtual Serial port emulator). Cela fonctionne très bien avec.
voici le début pour le parametrage qui fonctionne avec l'emulateur ou d'un port à l'autre du PC.
.SerialPort.PortName = Port
.SerialPort.BaudRate = Vitesse
.SerialPort.DataBits = Données
.SerialPort.ReceivedBytesThreshold = 1
.SerialPort.Handshake = Handshake.None/size

je n'ai pas essayé avec un timer car avec cela :
Public Sub RS232_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort.DataReceived
cela fonctionne.

je ne sais pas si je peux utiliser la dll que j'utilise avec excel pour voir si cela fonctionne.

j'ai deja eu des problèmes avec une liaison entre un PC et un automate omron
0
bobbretagne1 Messages postés 4 Date d'inscription lundi 23 février 2009 Statut Membre Dernière intervention 23 juin 2012
9 févr. 2012 à 15:26
Rebonjour,
erreur de manip

voici le code et est ce que je peux utiliser le NetCommOCX qui fonctionne avec excel et le port RS232/USB et ma machine pour récupérer des trames dans VB2010 express ?
    
[size=50]'Récupération des données RS232
    Public Sub RS232_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort.DataReceived
        'Sortie de la routine Interruption RS232 pour aller afficher les données
        Dim DonnéeValable As Boolean = True
        Do
            Dim DonnéeAscii As String = ""
            'Test si la trame  à OD OA pour pouvoir traiter les données reçus
            ValeurStock = ValeurStock + Me.SerialPort.ReadExisting
            VerificationReception(DonnéeValable, DonnéeAscii)
            If DonnéeValable = True Then
                Me.Invoke(New _Affiche_ASCII(AddressOf Affiche_ASCII), DonnéeAscii)
                DonnéesNonSauv = True
            End If
        Loop While DonnéeValable
    End Sub
    ' Ouverture Port  RS232
    Sub OuvertureRS232(ByVal Port As String, ByVal Vitesse As Integer, ByVal Données As Integer, ByVal Parity As String, ByVal Arret As String)
        With MenuIWT
            .SerialPort.PortName = Port
            .SerialPort.BaudRate = Vitesse
            .SerialPort.DataBits = Données
            .SerialPort.ReceivedBytesThreshold = 1
            .SerialPort.Handshake = Handshake.None
            Select Case Parity
                Case "None"
                    .SerialPort.Parity = IO.Ports.Parity.None
                Case "Even"
                    .SerialPort.Parity = IO.Ports.Parity.Even
                Case "Odd"
                    .SerialPort.Parity = IO.Ports.Parity.Odd
            End Select
            Select Case Arret
                Case "One"
                    .SerialPort.StopBits = IO.Ports.StopBits.One
                Case "OnePointFive"
                    .SerialPort.StopBits = IO.Ports.StopBits.OnePointFive
                Case "Two"
                    .SerialPort.StopBits = IO.Ports.StopBits.Two
            End Select
            'TODO : Test si port de Communication déja ouvert
            .SerialPort.Open()
        End With
    End Sub
0
Rejoignez-nous