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
Nachtrag: Ich habe die für die Übertragung wichtigen Daten ausfindig gemacht. Wie gehe ich am besten vor ( zwecks Libary für Excel .. usw. ..) ?
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?
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.