Hallo, ich möchte mein Agilent (ehemals HP) Tischmultimeter 34401A über die GPIB-Schnittstelle mit Matlab ansteuern über den SCPI-Befehlssatz. Der prinzipielle Kommunikationsaufbau funktioniert auch. Ich kann beispielsweise die Geräteidentifikation auslesen. Sobald ich aber eine Befehl zum starten einer Messung sende, bekomme ich folgende Fehlermeldung: +550,"Command not allowed in local" Das Multimeter schein sich also im local-Mode zu befinden und nicht im remote-Mode. Aber wie kann ich in den remote-mode wechseln? Über Hilfe würde ich mich sehr freuen. Gruß Tobias
:
Verschoben durch Moderator
Richtige Programmiersprache am Gerät ausgewählt? Programming Manual gelesen?
@wieOskar Meinst du ob die 34401A sind im 3478A emu mode ? /Bingo
@Oskar Ja, z.B. mit *IDN? kann ich die Gerätekennung auslesen. Auch diverse andere Standardbefehle funktionieren. Kann z.B. halt auch den Error-Code auslesen. Im Programming-Manual finde ich nur Informationen wie man wieder zurück in den Local-Mode kommt. Aber halt nicht anders herum. Die Beispiel im Manual sind leide aller nur für TurboC und QuickBasic. Matlab war damals wohl noch nicht so verbreitet. @Karsten Verstehe nicht ganz was du meinst. Gruß Tobias
Tobias C. schrieb: > Im Programming-Manual finde ich nur Informationen wie man wieder zurück > in den Local-Mode kommt. Aber halt nicht anders herum. Weil man aus dem Local-Mode an sich immer automatisch durch den Zugriff via GPIB rausfliegt.
Jörg Wunsch schrieb: > Weil man aus dem Local-Mode an sich immer automatisch durch den > Zugriff via GPIB rausfliegt. Genau das scheint aber leider nicht zu funktionieren.
http://forums.ni.com/t5/Instrument-Control-GPIB-Serial/Problem-with-34401A-DMM/td-p/1268148 Das REN-Signal muss wohl aktiviert werden, damit er in den Remote-Betrieb geht. Das müsste irgendwie der Treiber tun, der da drunter liegt. Bei all den Systemen, bei denen ich bislang GPIB gemacht habe, hat der Lowlevel-Treiber das REN bereits beim Öffnen gesetzt. Beispiel FreeBSD (weil ich da gerade den Sourcecode auf die Schnelle zur Hand habe):
1 | static int |
2 | gpib_ib_open(struct cdev *dev, int oflags, int devtype, struct thread *td) |
3 | {
|
4 | // ...
|
5 | upd7210_wr(u, AUXMR, AUXMR_CIFC); |
6 | DELAY(100); |
7 | upd7210_wr(u, AUXMR, AUXMR_SIFC); |
8 | upd7210_wr(u, AUXMR, AUXMR_SREN); // <-- hier |
9 | return (0); |
10 | }
|
Du musst also die Doku deines Treibers mal konsultieren, wie das bei dir geht.
:
Bearbeitet durch Moderator
Welchen Gpib Treiber verwendest Du denn? Grund der Frage: Bei NI Treibern und auch bei Agilent Treibern ist meist ein kleines Tool dabei mit dessen Hilfe direkt Befehle aus einem Windows Fenster an ein Gerät übertragen werden können. Bei Agilent IO Control zB. das Utility Interactive IO. Wenn damit die Kommunikation funktioniert ist zumindest eine Fehlerquelle ausgeschlossen. Gruß Udo
Danke schon mal für die Info. Es ist tatsächlich das nicht aktivierte REN-Signal. Konnte das schon mal über ein Tool von NationalInstruments (zum Konfigurieren von LabView) dieses Problem umgehen. Auch wenn das noch nicht recht zufriedenstellend ist. Bei anderen Messgeräte dich ich über Matlab ansteuere funktioniert das auch immer automatisch. Nur bei diesem Tischmultimeter leider nicht. Gibt es denn keine Möglichkeit das REN-Singal aus Matlab herraus zu setzten? Gruß Tobias
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.