Acquisition données rs232 oscilloscope

djavos Messages postés 6 Date d'inscription mercredi 9 décembre 2009 Statut Membre Dernière intervention 3 janvier 2010 - 15 déc. 2009 à 09:32
djavos Messages postés 6 Date d'inscription mercredi 9 décembre 2009 Statut Membre Dernière intervention 3 janvier 2010 - 15 déc. 2009 à 09:33
Ayant pour mission d'acquérir des données d'un oscilloscope (Tecktronix TDS2012) via un port RS232, nous sommes à la recherche d'une application permettant de retracer les courbes obtenu à l'écran de l'oscilloscope.

Il nous est déjà possible de communiquer avec l'oscilloscope grâce à une application open source. Nous récupérons ainsi les données de la courbe souhaité mais nous n'avons pas trouvé comment mettre en forme ces données. Le format reçu est de la forme :
:CURVE x,x,x,x,x,x,x,etc...(CURVE étant une réponse à la requête CURVE? et x les différents points, il y a en tout 2500 points).

Connaissez-vous un moyen de récupérer juste la forme de la courbe avec les valeurs crêtes? En gros faire une copie d'écran de l'affichage de l'oscilloscope ou bien de récupérer la courbe sur Excel.

Sinon pour l'instant voici ce que nous avons en VBA sur Excel pour essayer de récupérer les points ;mais dès le moment où l'on fait "Acquisition des donnnées", il y a un bug et plus de réponse de Excel.
Pouvez-vous nous indiquez où se situe l'erreur svp?

On utilise l' ActiveX MSComm32.ocx pour le module de communication.

Merci de vos réponses et bonne journée

1 réponse

djavos Messages postés 6 Date d'inscription mercredi 9 décembre 2009 Statut Membre Dernière intervention 3 janvier 2010
15 déc. 2009 à 09:33
Private Sub CommandButton1_Click()

Dim valeur() As String, textline As String

MSComm1.InBufferCount = 0

'choix port série
MSComm1.CommPort = 1

'9600 bauds, sans parité, 8 bits de données, 1 bit d'arrêt
MSComm1.Settings = "9600,N,8,1"

'ouvre le port
MSComm1.PortOpen = True

MSComm1.InputLen = 5

MSComm1.Output = "CURVE?" & Chr(13)

'Boucle tant qu'on obtient pas :CURVE
Do While MSComm1.Input <> ":CURVE"
Loop

textline = MSComm1.Input

valeur = Split(textline, ",")
For i = 0 To UBound(valeur)
Cells(i, 1) = valeur(i)
Next i

'ferme le port
MSComm1.PortOpen = False

End Sub
0
Rejoignez-nous