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


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Phil (Gast)


Bewertung
0 lesenswert
nicht 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 Moderator
von Phil (Gast)


Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
die verwenden einen SCPI-Dialekt.

von grmpf (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.