Agilent Multimeter über LAN bedienen

Gast #4458929
Lesenswert?

Hallo zusammen,
ich möchte gerne mein Multimeter Keysight 34461A vom PC aus über LAN mit 
VisualBasic5 ansprechen.
Habe bereits von Keysight IO-Library version 16 (als Treiber) 
installiert.
Mein Betriebssystem ist W7.
Daten zum Messgerät senden geht bereits.
Unten ein Beispiel, wie er von 100 V AC Bereich in den 1000  V DC 
Bereich umschaltet. Funktioniert soweit auch.
Aber sobald ich Messdaten vom Gerät zum PC empfagen möchte (letzte 
Programmzeile) , dann gibt es einen Fehlermeldung (s.Anlage)


Private Sub Command4_Click()

Dim ioMgr As VisaComLib.ResourceManager
Set ioMgr = New VisaComLib.ResourceManager
Dim instrument As VisaComLib.FormattedIO488
Set instrument = New VisaComLib.FormattedIO488
Set instrument.IO = 
ioMgr.Open("TCPIP0::A-34461A-05403.fritz.box::5025::SOCKET")
Dim idn As String
instrument.IO.Timeout = 5000

Dim dblData As Double
Dim strReply As String
instrument.WriteString "MEAS:VOLT:AC? 100"
instrument.WriteString "MEAS:VOLT:DC? 1000"
instrument.WriteString "READ?"
idn = instrument.ReadString()

Kann das ein Fehler von VB5 seine ? VB6 habe ich leider nicht.
Angehängte Dateien:
#4459006
Lesenswert?

Seh dir mal den IO Monitor an, der den IO Libraries beiliegt und 
vergleiche die VISA-Aufrufe von deinem Programm und dem Interactive 
IO-Fenster.

Möglicher Fehler: falsches Zeilenende beim Schreiben oder falscher 
'termination character' beim Lesen.

Probiere auch mal folgendes aus: Lasse dein Programm laufen und mach 
danach mit dem interactive IO "SYST:ERR?"
Gast #4459077
Lesenswert?

Lukas K. schrieb:
> Und jetzt nochmal vom Interactive IO-Fenster.
>
Mach ich dann morgen, OK ?


> Ach, ich sehe erst jetzt: Du hast ja VB5 von 1997. Muss das wirklich
> sein?
Ich finde VB5 und VB6 einfach und gut.
Das VB.net ist mir viel zu aufgeblasen.

Wenn ich wüsste, das es mit VB6 funktioniert, dann würde ich mit diese 
Version kaufen.....
Gast #4459154
Lesenswert?

Musst du die VISA/Agilent/etc. libs verwenden?
Ich benutze regelmäßig Agilent Funktionsgeneratoren sowie 34410A 
Multimeter mit LAN. Bei diesen gibt es einen Port (siehe Handbuch), über 
den man die Geräte mit SCPI Befehlen ganz ohne irgendwelche Treiber 
verwenden kann (d.h. Auf NW-port verbinden, Text-Command-Strings 
schicken und die Ergebnisse kommen als Strings im Klartext zurück. 
fertig.).
Das funktioniert prinzipiell auch mit irgend einem Netzwerkterminal 
(netcat, putty, etc.) was super zum Testen ist.
Außerdem braucht man überhaupt keine Treiber. Nur Ethernet, aber das 
kann das OS sowieso. D.h. es ist automatisch auch cross-platform.

(Ich habe ehrlich gesagt noch nie verstanden, warum man für LAN 
Messgeräte irgendeinen Treiber brauchen sollte, wenn man keine wirlich 
komplexen Sachen wie synchronisierte Trigger von mehreren Geräten o.ä. 
braucht und der Hersteller ordentlich gearbeitet hat.)
Gast #4459304
Lesenswert?

Das ist TCP.
Laut http://literature.cdn.keysight.com/litweb/pdf/5989-9868EN.pdf S.9 
Fußnote 14 sollte 5025 der richtige Port sein. Ich kann aber morgen 
nochmal in meinen Skripten nachsehen.

Wichtig ist übrigens die Befehle über eine TCP connection mit dem 
Entsprechenden Terminator (üblicherweise ein newline) abzuschließen, 
damit das Geräte weiß, dass der Befehl zu Ende ist, denn eine TCP 
Verbindung ist ja nur ein Stream wo man an einem Ende Daten reinschiebt 
die am anderen wieder rauskommen. Wo da ein Befehl anfängt oder aufhört 
ist ohne Terminator nicht klar und kann zu seltsamen bzw. sporadischen 
Fehlern führen.
Gast #4460171
Lesenswert?

Hallo Whitespace,
also das war wirklich ein sehr guter Hinweis von Dir !!!
Super vielen Dank.

Man kann in der Tat auf das Messgerät ohne irgendwelche Treiber 
zugreifen.
Man braucht nur die IP Adresse und die Port Nummer (5025) und dann per 
TCP/IP darauf zugreifen.
Klappt bei beiden Messgeräten 34461A und 34410A super.
Als Anlage mein Source Code für VB5 (VB6)  und ein Exe file.....
Falls es jemand braucht.

Allgemein bin ich begeistert, wie schnell man hier im Forum selbst bei 
Spezialfragen geholfen bekommt.
Gruß Dirk
Angehängte Dateien:
#4476946
Lesenswert?

DirkF schrieb:
> Ein kleiner Schönheitsfehler hat das Programm aber noch:
> Nach dem Beenden bleibt das Messgerät im Remote-Modus.
>
> Kennt jemand hierfür eine Lösung ?

Handbuch Seite 82:
> Press the [Local] key or execute the IEEE-488 GTL (Go To Local)
> command from the remote interface to return to the local state.

Das geht allerdings mit der Socket-Lösung (Port 5025) nicht, dafür musst 
du dann schon VXI-11 oder HiSLIP verwenden.

Das geht wohl mit viGpibControlREN aus VISA.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren