Communication RS232 - Ecriture sans reponce!! [Résolu]

Signaler
Messages postés
146
Date d'inscription
lundi 15 juin 2009
Statut
Membre
Dernière intervention
14 février 2013
-
Messages postés
146
Date d'inscription
lundi 15 juin 2009
Statut
Membre
Dernière intervention
14 février 2013
-
Bonjour à vous tous,

j'ai un petit souci avec mon système. Sous VB2008

Pour se loger à une supervision en RS232 je doit lui envoyer:
LOGIN/0/
Pour cela j'ai utilisé un serialPort:
SerialPort1 = New SerialPort()
SerialPort1.PortName = "COM1"
SerialPort1.BaudRate = 9600
SerialPort1.Parity = 0
SerialPort1.DataBits = 8
SerialPort1.StopBits = 1
SerialPort1.Handshake = 0
SerialPort1.Open()


J'utilise Writeline ensuite pour lui envoyer le texte.

SerialPort1.WriteLine("LOGIN/0/" & vbCr)


Et la je n'est aucun retour de m'a supervision. J'ai posé un analyseur de trame pour bien voir ce qui se passe, mais rien en retour (bien sur je voie bien l'envoie.

Pour faire des essaies j'ai utilisé l'hyperterminal et je lui envoie exactement la même trame suivit de l'une ou l'autre des touches entrée donc soit Cr soit CrLf le système me répond parfaitement.

J'ai tenté avec avec Write mais idem. j'ai testé aussi avec Write, caractère par caractère suivit de VbCrLf mais idem.

Vu que je voie exactement la même chose sur l'analyseur de trame avec mon programme ou avec l'hyperterminal, je sèche. Qu'est ce qui peut bien enpecher le traitement a la fin de l'envoie de ma trame.

Il va de soit que les paramètres de connexion sont les mêmes à part Handshake dont j'ignore l'utilité.

Merci de votre aide.

Technicien en électricité Industriel (39 ans), en cours de reconversion BTS IRIS 2eme Année.
Au lycée pendant l'année scolaire, et en stage pendant les vacances scolaire.

9 réponses

Messages postés
146
Date d'inscription
lundi 15 juin 2009
Statut
Membre
Dernière intervention
14 février 2013

OK, C'est bon a force d'essais.

En faite sur la supervision il y a 2 ports RS232 qui sont multiplexé et la commutation se fait grâce au signal RTS ou DTR. Inactif pas défaut avec l'objet SerialPort. Mes collègue développant sous VB6 il utilise un autre Objet qui est actif par défaut apparemment.

Donc il suffit que j'ajoute:

SerialPort1.DtrEnable = True
SerialPort1.RtsEnable = True

voila..
Messages postés
146
Date d'inscription
lundi 15 juin 2009
Statut
Membre
Dernière intervention
14 février 2013

En faite c'est comme si la supervision attendait quelque chose lui disant qu'il a tout reçu. Pourtant sur l'analyseur j'ai exactement la même chose.
Je tourne en rond...

Technicien en électricité Industriel (39 ans), en cours de reconversion BTS IRIS 2eme Année.
Au lycée pendant l'année scolaire, et en stage pendant les vacances scolaire.
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
WriteLine

gaffe, pas confondre avec Write

WriteLine ajoute un CrLf


Renfield - Admin CodeS-SourceS - MVP Visual Basic
Messages postés
146
Date d'inscription
lundi 15 juin 2009
Statut
Membre
Dernière intervention
14 février 2013

Bonjour Renfield, effectivement j'ai bien vu que WriteLine m'ajoutait un CrLf, mais mon problème c'est que ni avec l'un ni avec l'autre (Write ou WriteLine) cela marche pourtant j'arrive à avoir la même trame, et ce qui me chagrine encore plus c'est que j'ai exactement la même chose qu'avec l'hyperterminal qui lui fonctionne.


Technicien en électricité Industriel (39 ans), en cours de reconversion BTS IRIS 2eme Année.
Au lycée pendant l'année scolaire, et en stage pendant les vacances scolaire.
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
la config du port est bonne ?

Renfield - Admin CodeS-SourceS - MVP Visual Basic
Messages postés
146
Date d'inscription
lundi 15 juin 2009
Statut
Membre
Dernière intervention
14 février 2013

Je pense que c'est la mon problème mais je voit pas ou mettre toute les configurations par rapport à hyperterminal.
Voici la configuration de HyperTerminal:
Com1
9600
8 bits de données
Parité aucun
Bit d'arrêt 1
Aucun contrôle de flux

Ensuite dans l'hyperterminal il y a l'emulation qui est en auto
ligne de zone tampon et défilement à 500 et il y a encore d'autre paramettre qui me semble plus ou moins utile.

Pour le serialCom j'ai paramettré que ce que j'ai mis plus haut, a savoir:
SerialPort1.PortName = "COM1"
SerialPort1.BaudRate = 9600
SerialPort1.Parity = 0
SerialPort1.DataBits = 8
SerialPort1.StopBits = 1
SerialPort1.Handshake = 0

le reste je l'ai laissé par défaut.


Technicien en électricité Industriel (39 ans), en cours de reconversion BTS IRIS 2eme Année.
Au lycée pendant l'année scolaire, et en stage pendant les vacances scolaire.
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
tentes en activant le handshake...

Renfield - Admin CodeS-SourceS - MVP Visual Basic
Messages postés
146
Date d'inscription
lundi 15 juin 2009
Statut
Membre
Dernière intervention
14 février 2013

Idem.. Aucune réponse, l'analyseur voie bien les trames envoyées mais pas de retour
Messages postés
146
Date d'inscription
lundi 15 juin 2009
Statut
Membre
Dernière intervention
14 février 2013

J'ai essayé avec un sleep avant l'envoie des données, et après. Mais rien à faire.

Avec Hyperterminal: j'ai crée un fichier texte avec la commande et un retour la ligne, je lui est envoyé et sa marche....