Forum: PC Hard- und Software Multimeter -Keysight- USB-Schnittstelle auslesen


von Phil (Gast)


Lesenswert?

Guten Abend,

ich möchte die Messwerte des Multimeters 
(http://literature.cdn.keysight.com/litweb/pdf/5990-6425EN.pdf?id=1967545) 
über Excel VBA auslesen und in einer Tabelle speichern.

Ich finde keine Informationen zur Baudrate usw. ..

Ich habe dies noch nie gemacht. Wie soll ich da am besten vorgehen? VBA 
habe ich drauf.

Viele Grüße

Phil

: Verschoben durch User
von Phil (Gast)


Angehängte Dateien:

Lesenswert?

Nachtrag: Ich habe die für die Übertragung wichtigen Daten ausfindig 
gemacht. Wie gehe ich am besten vor ( zwecks Libary für Excel .. usw. 
..) ?

von Gerd E. (robberknight)


Lesenswert?

die verwenden einen SCPI-Dialekt.

von grmpf (Gast)


Lesenswert?

Herzlichen Glückwunsch, du hast es doch tatsächlich geschafft die Stelle 
der Beschreibung zu finden an der die verwendete Baudrate steht (!)

Wenn du es jetzt noch schaffst im Datenblatt zu scrollen findest du vlt 
sogar irgendwo eine Befehlsauflistung (!!)

Ne im Ernst: Was ist das bitte für eine Fragestellung? Gerade von 
Keysight gibt es sehr präzise Datenblätter und Anleitungen für die 
Fernsteuerung ihrer Geräte - das ist Teil ihres Geschäfts. Soll hier 
jemand für dich Datenblatt lesen?

von Phil (Gast)


Lesenswert?

Folgende Lösung (für alle die sich eine stundenlange Inetrecherche 
ersparen wollen):

Folgendes "Arduino-Excel Connection Programm" eignet sich auch für die 
Kommunikation zwischen Excel und dem Multimeter.
download: http://www.robertovalgolio.com/sistemi-programmi/arduino-excel


Programmänderung:
Durch eine zusätzliche Funktion rutine() werden Befehle an das 
Multimeter gesendet. Über Connect_Click() wird die "rutine" statt 
"readingLoop" aufgerufen:


********************************************************
Private Sub Connect_Click()

Dim ret As Integer

    'open COM
    If mySerial.Status = 0 Then

        mySerial.StartSerial

        If mySerial.Status > 0 Then
            ShowInfo

        routine
           'ReadingLoop
        Else
            ShowInfo
        End If
    Else
        Finish
    End If

End Sub

********************************************************
Private Sub routine()

Dim ka As String
ka = "*IDN?"
 FormConnect.OutputMessage.Value = ka
 mySerial.WriteLine (ka)
 ReadingLoop
 DoEvents 'necessary

End Sub

von Peter M. (r2d3)


Lesenswert?

Hallo Phil,

die endgültige optimale Lösung habe ich noch nicht gefunden.
Außerdem nutze ich ja auch noch sogenannte "Legacy"-Betriebssysteme. :)

Die folgende Antwort betrifft ein wenig unkonkret die "Metaebene":

Typischerweise werden Treiber für eine virtuelle COM-Schnittstelle 
mitgeliefert.

Da von mindestens XP an aufwärts (Linux weiß ich nicht) jedes Windows 
über alle notwendigen System-Calls verfügt, hängt die Ansteuerung von 
der Verpackung ("Wrapper") dieser Calls in VBA ab. Eventuell findet sich 
Wrapper-Unterstützung in Form von bequemen Befehlen auch in aktuellen 
Office-Versionen, ich nutze immer noch eine uralte.

Die minimale Lösung besteht darin, Wrapper-Code in ein VBA-Modul zu 
kopieren und die dann deklarierten Systemfunktionen zu nutzen.

Lösungen dieser Art findest Du im Netz mehrere, aber nicht alle 
funktionieren gleich gut.

Wenn es für Dein Multimeter hunderte Megabyte schwere Labview-Treiber 
gibt, braucht es oft nur einen "Verweis" in VBA, um komfortable 
Wrapper-Routinen verfügbar zu machen.

Einige einfache, aber installationsspeicherplatzarme Lösungen laufen auf 
eine Art "busy waiting" hinaus, bei der man zyklisch die Schnittstelle 
abfragt. IN Deinem Code manifestiert sich das in dem Hinweis "reading 
loop".

Schlauere, aber von mir noch nicht ausprobierte Lösungen lösen ein 
Ereignis aus, wenn sich an der Schnittstelle etwas tut. Das ist eine 
schöne, weil lastärmere Verfahrensweise.

Dazu zählt insbesondere das MSCOMM-ActiveX-Control.

Gruß
Peter

: Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.