Vb Excel et RS232

cs_viny Messages postés 2 Date d'inscription mercredi 15 octobre 2003 Statut Membre Dernière intervention 22 juillet 2005 - 22 juil. 2005 à 15:44
cs_lim Messages postés 329 Date d'inscription jeudi 20 novembre 2003 Statut Membre Dernière intervention 10 mai 2014 - 22 juil. 2005 à 16:59
Bonjour à tous,


J'ai un gros problème pour récupérer les données d'un laser. Ces paramètres sont les suivants 19200,n,8,1.


Sur l'hyperterminal je récupère des données de ce type :

« Espace »0 1 8 8« Espace » « Tabulation » « Espace »0 3 4 0« Espace » « Tabulation » « Espace »0 5 2 8 « Espace » « carré »
Soit :
0 1 8 8 0 3 4 0 0 5 2 8


Sur le petit programme en Vb excel qui fonctionne avec d'autres appareils, je n'arrive pas récupérer les données (on récupére n'importe quoi: des carrés , ...). Quelqu'un pourrait-il m?aider, SVP



Voici le programme :

Private Sub CommandButton1_Click()
Dim i As Integer
Dim valeur_traitee As String
Dim valeur As String

If ligne_depart = 0 Then
If colonne_depart = 0 Then
If nombre_mesure 0 And bool False Then
ligne_depart = 10
colonne_depart = 1
nombre_mesure = 1
bool = True
End If
End If
End If


While 1

'Vider le buffer
''MSComm1.InBufferCount = 0
'choisir un port série
MSComm1.CommPort = 1 ' 1 est le n° de port que vous pouvez modifier
'Paramétrage du port; les valeurs sont fournies par le constructeur de l'appareil.
'Ces valeurs peuvent être entrées ici (pas très "propre"!)
'ou dans une procédure d'initialisation (c'est mieux)
'ou dans la propriété "Setting" du contrôle
'L'idéal étant d'offrir à l'utilisateur la possibilité de changer ces valeurs à partir d'un menu "Réglage"
'La balance utilisée dans cet exemple requiert les valeurs suivantes: 1200 bauds, bit de parité, 7 bits de données, bit d'arrêt
MSComm1.Settings = "19200,n,8,1"
' indique au contrôle qu'il doit lire 1 seul caractère
'ce caractère servira à repérer la stabilisation de la balance
MSComm1.InputLen = 1
'ouvre le port
MSComm1.PortOpen = True

Do
DoEvents
Loop Until MSComm1.InBufferCount >= 35
MSComm1.InputLen = 35
valeur = MSComm1.Input
Label1.Caption = MSComm1.Input
Cells(ligne_depart, colonne_depart) = valeur
ligne_depart = ligne_depart + 1



'ferme le port
MSComm1.PortOpen = False
Wend
End Sub


Viny

1 réponse

cs_lim Messages postés 329 Date d'inscription jeudi 20 novembre 2003 Statut Membre Dernière intervention 10 mai 2014 5
22 juil. 2005 à 16:59
Salut


essaye d'initialiser ton portcom come suit


PortCom1.CommPort = 1


PortCom1.Settings = "19200,n,8,1"

'Permet d'ajouter l'évennement OnComm (Réception de données)
PortCom1.RThreshold = 1


PortCom1.PortOpen =
True



Ajoute la fonction suivante
L'évenemment OnComm permet de récupérer ce qui se passe dans le buffer du portcom.

Private Sub Portcom1_OnComm()
Label1.Caption = MSComm1.Input

End Sub

Normalement tu devrais retrouvé ta trame dans le label


Après tu n'a plus qu' atriaté la chaine

@+
LIM
0