Communication RS232 - Ecriture sans reponce!!

Résolu
cs_megamario Messages postés 146 Date d'inscription lundi 15 juin 2009 Statut Membre Dernière intervention 14 février 2013 - 21 déc. 2009 à 13:32
cs_megamario Messages postés 146 Date d'inscription lundi 15 juin 2009 Statut Membre Dernière intervention 14 février 2013 - 21 déc. 2009 à 15:50
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

cs_megamario Messages postés 146 Date d'inscription lundi 15 juin 2009 Statut Membre Dernière intervention 14 février 2013
21 déc. 2009 à 15:50
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..
3
cs_megamario Messages postés 146 Date d'inscription lundi 15 juin 2009 Statut Membre Dernière intervention 14 février 2013
21 déc. 2009 à 13:41
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.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
21 déc. 2009 à 13:49
WriteLine

gaffe, pas confondre avec Write

WriteLine ajoute un CrLf


Renfield - Admin CodeS-SourceS - MVP Visual Basic
0
cs_megamario Messages postés 146 Date d'inscription lundi 15 juin 2009 Statut Membre Dernière intervention 14 février 2013
21 déc. 2009 à 13:59
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.
0

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

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
21 déc. 2009 à 14:01
la config du port est bonne ?

Renfield - Admin CodeS-SourceS - MVP Visual Basic
0
cs_megamario Messages postés 146 Date d'inscription lundi 15 juin 2009 Statut Membre Dernière intervention 14 février 2013
21 déc. 2009 à 14:10
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.
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 71
21 déc. 2009 à 14:14
tentes en activant le handshake...

Renfield - Admin CodeS-SourceS - MVP Visual Basic
0
cs_megamario Messages postés 146 Date d'inscription lundi 15 juin 2009 Statut Membre Dernière intervention 14 février 2013
21 déc. 2009 à 14:32
Idem.. Aucune réponse, l'analyseur voie bien les trames envoyées mais pas de retour
0
cs_megamario Messages postés 146 Date d'inscription lundi 15 juin 2009 Statut Membre Dernière intervention 14 février 2013
21 déc. 2009 à 15:23
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....
0