Commmunication avec un sonar via le rs485

madmat88 Messages postés 7 Date d'inscription vendredi 11 novembre 2005 Statut Membre Dernière intervention 17 novembre 2005 - 11 nov. 2005 à 03:19
madmat88 Messages postés 7 Date d'inscription vendredi 11 novembre 2005 Statut Membre Dernière intervention 17 novembre 2005 - 12 nov. 2005 à 03:44
bonjour,

je dois faire une interface pour communiquer avec un sonar qui utilise le rs485
j'ai charge le mscomm, mais comme mon sonar n'utilise pas le code ascii, je dois communiquer juste en binaire
j'ai fait pas mal de recherche sur google, mais je ne trouve pas une solution adaptee
je veux juste envoyer des instructions, et recuperer les donnees
est ce quelqu'un aurrait des pistes pour realiser un tel programme?

merci

4 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
11 nov. 2005 à 04:45
Salut
En binaire ... ?
Si tu dois lui envoyer des chiffres entre 0 et 255, ce chiffre représente un code ascii : Chr(tonChiffre)

De mémoire, le RS485 ~ boucle de courant et un port série de PC ne sait pas gérer ça. C'est du RS232.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0
madmat88 Messages postés 7 Date d'inscription vendredi 11 novembre 2005 Statut Membre Dernière intervention 17 novembre 2005
11 nov. 2005 à 06:22
salut

en fait pour communiquer avec le rs485 j'utilise un usb to serial hub (et en plus il fonctionne)
en fait mon probleme c'est que je ne sais pas quel protocole il faut utiliser pour pouvoir communiquer avec mon sonar (comment il faut faire pour recevoir des donnees)
merci
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
11 nov. 2005 à 19:53
Salut
Là, il faut que tu vois avec le fournisseur du sonar, il doit avoir une fiche technique sur le protocole d'échange.
Pour recevoir les données, il n'y a pas (comme pour les Winsock) d'évènement de réception. Il faut que tu ailles lire le buffer de réception.
Tu installes un Timer sur ta forme avec un interbal de 500 msec
Dans le code du Timer, tu mets (comme expliqué dans l'aide) :

Dim InString as String
' Extrait toutes les données disponibles.
MSComm1.InputLen = 0
' Vérifie la présence de données.
If MSComm1.InBufferCount Then
' Lit les données.
InString = MSComm1.Input
End If

Et les données reçues se trouveront dans InString
Attention, traite-les tout de suite car dans 500mSec, elle seront écrasées !

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
0
madmat88 Messages postés 7 Date d'inscription vendredi 11 novembre 2005 Statut Membre Dernière intervention 17 novembre 2005
12 nov. 2005 à 03:44
salut
merci pour ta reponse
je n'arrive toujours pas a recevoir de donnee de mon sonar
voici mon code

Private Sub Command1_Click()
MSComm1.Output = "255,7,0,248" + Chr$(13)
Label1 = Val(MSComm1.Input)
End Sub


Private Sub Command2_Click()
MSComm1.PortOpen = False
End
End Sub


Private Sub Form_Load()


MSComm1.CommPort = 1
MSComm1.Settings = "19200,n,8,1"
On Local Error GoTo error
MSComm1.PortOpen = True
Exit Sub
error:
MsgBox ("Port can not be open" & error)
Exit Sub


End Sub


Private Sub Timer1_Timer()


Dim InString As String
MSComm1.InputLen = 0
If MSComm1.InBufferCount Then
InString = MSComm1.Input
End If


End Sub

si quelqu'un pouvait me dire si il y avait des erreurs dans ce code pour communiquer, sachant que je communique en binaire

merci beaucoup
0
Rejoignez-nous