R&S/Hameg HMOxxxx mit SCPI Steuern

Gast #7072682
Lesenswert?

Hallo zusammen,

die R&S/Hameg HMOxxxx lassen sich per SCPI z. B. über USB und RS232 
steuern und auslesen. Über RS232 sollte das kein Problem sein, COM-Ports 
habe ich. Ich würde  es allerdings gerne über die USB-Schnittstelle 
machen. Die ist, soviel ich weiß, mit einem FTDI-IC realisiert, also 
könnte ein VCP im Betriebssystem auftauchen. Dann wäre alles klar.

Tut es aber nicht. Weiß jemand einen Weg?

Dass mit dem HMExplorer die SCPI-Kommunikation per USB funktioniert, 
weiß ich, aber ich möchte sie in mit eigenen Programmen realisieren.

(Es geht nicht um eine Bildübertragung in Echtzeit, dafür wäre die 
Schnittstelle natürlich viel zu langsam. Außerdem klappt Bildübertragung 
in Echtzeit bei mir schon mit einem HDMI-Grabber.)
Gast #7072698
Lesenswert?

Der Zahn der Zeit (🦷⏳) schrieb:
> Die ist, soviel ich weiß, mit einem FTDI-IC realisiert, also könnte ein
> VCP im Betriebssystem auftauchen. Dann wäre alles klar.
> Tut es aber nicht. Weiß jemand einen Weg?

Welches OS, und was für ein USB-Device findest Du?

Beim HM1508-2 ist es zwar ein FT232, allerdings mit einer eigenen 
USB-VID/PID, so dass der Standardtreiber nicht automatisch damit redet.
Gast #7072730
Lesenswert?

Win 10, es nennt sich  "HAMEG HO720 USB".
1
        +++++++++++++++++ Device Information ++++++++++++++++++
2
Device Description       : HAMEG HO720 USB
3
Device Path              : \\.\usb#vid_0403&pid_ed72#5&18f65433&0&7#{a5dcbf10-6530-11d2-901f-00c04fb951ed}
4
Device ID                : USB\VID_0403&PID_ED72\5&18F65433&0&7
5
Hardware IDs             : USB\VID_0403&PID_ED72&REV_0400 USB\VID_0403&PID_ED72
6
Driver KeyName           : {8942ccf4-d856-48c7-bedc-8f600314a3f6}\0000 ({8942CCF4-D856-48C7-BEDC-8F600314A3F6})
7
Driver                   : \SystemRoot\system32\drivers\ftdibus.sys (Version: 2.8.14.0  Date: 2015-04-16)
8
Driver Inf               : C:\WINDOWS\inf\oem60.inf
Gast #7072826
Lesenswert?

Das war ja einfach und hat offensichtlich geklappt. Zumindest zeigt der 
Geräte-Manager ich jetzt einen VCP für das HO720.

Die Treiber-Software kam schon bei der Installation der HMO-Software 
mit, so dass nur im Geräte-Manager für HO720 "VCP laden" aktiviert und 
in den "Anschlüssen (COM & LPT)" der Treiber für den neuen VCP 
aktualisiert werden musste.

Danke!
Gast #7072948
Lesenswert?

> machen. Die ist, soviel ich weiß, mit einem FTDI-IC realisiert, also
> könnte ein VCP im Betriebssystem auftauchen. Dann wäre alles klar.
> Tut es aber nicht. Weiß jemand einen Weg?

Das ist ganz einfach.

Einfach eine entsprechende udev-Rule anlegen:

ACTION=="add", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="ed72", 
RUN+="/bin/sh -c 'echo 0403 ed72
 > /sys/bus/usb-serial/drivers/generic/new_id'", SYMLINK+="hameg"

> (Es geht nicht um eine Bildübertragung in Echtzeit, dafür wäre die
> Schnittstelle natürlich viel zu langsam. Außerdem klappt Bildübertragung
> in Echtzeit bei mir schon mit einem HDMI-Grabber.)

Das geht auch gar nicht. Jede der Karten fuer die HMOs, egal ob USB, 
RS232 oder auch LAN setzt die Kommandos auf einen internen RS232 Bus mit 
115200B um. Deshalb ist das immer gleich lahm. Das ist der eine grosse 
aergerliche
Schwachpunkt der HMOs.

Beachte ausserdem das du die neueste Firmware im Scope haben solltest 
und ein dazu passendes Manual fuer die Befehle. Hameg hat das in der 
Anfangszeit naemlich mal massiv ueberarbeitet.

Trotzdem kann man aber einfach einen Screenshot einlesen: (huer fuer qt)
1
/**************************************************************************/
2
/* Auslesen eines Screenshot                                              */
3
/**************************************************************************/
4
QString SerialHandler::ReadScreen(void)
5
{   QString MyString;
6
    QString Antwort;
7
    volatile int counter;
8

9
    serial->clear();
10
  ScreenData.clear();
11
  MyString = "HCOP:DATA?";
12
  sendString(MyString);
13

14
  //Sieht umstaendlich aus, ist aber notwendig damit die Klasse QSerialPort
15
  //ihren Inputbuffer ausliesst und bereitstellt
16
  counter = 0;
17
  while  ( (serial->bytesAvailable() <1) && (counter<10) )
18
    {
19
      serial->waitForReadyRead(50);
20
      counter++;
21

22
            if (serial->bytesAvailable() >0 )
23
            {
24
                ScreenData.append(serial->readAll());
25
                counter=0;
26
            };
27

28
      //Waer schoen wenn wir hier den Lesefortschritt ausgeben koennten,
29
      //aber dann braeuchten wir zugriff auf das HMI
30
      //ScreenData.length() / (333887/100)
31
        };
32

33
  /* Leider beschreibt Hameg in seinem Handbuch das Datenformat nicht */
34
  /* Aber im Handbuch zum Spektrumanalyzer Seite 49steht das folgende:*/
35
  /*                                                                  */
36
  /* #6333878BM6                                                      */
37
  /*                                                                  */
38
  /* #6 = 6 letters following                                         */
39
  /* 333878 = number of bytes to be transmitted                       */
40
  /* BM = BMP file format                                             */
41
  /*                                                                  */
42
  /* In order to get a valid BMP which can be opened by any standard  */
43
  /* image viewer, the header information must be stripped down and   */
44
  /* removed until the file starts with „BM6“.                        */
45
  /*                                                                  */
46
  /* Ich empfange hier 333887Bytes, das sieht also sehr brauchbar aus */
47

48
    Antwort.sprintf("Gelesen: %i Bytes",ScreenData.length());
49
    return(Antwort);
50
}



Olaf
Gast #7073023
Lesenswert?

Olaf schrieb:
> Das ist ganz einfach.
Oh... Danke für die Antwort, aber ein Software-Profi findet das 
wahrscheinlich ganz einfach, für mich, der nur selten und simple 
Software für den Eigenbedarf schreibt, ist das eine andere Welt. Mit 
"VCP laden" aktivieren und in den "Anschlüssen (COM & LPT)" den Treiber 
für den neuen VCP aktualisieren - das ist, zumindest für mich, ganz 
einfach.

Olaf schrieb:
> Das geht auch gar nicht. Jede der Karten fuer die HMOs, egal ob USB,
> RS232 oder auch LAN setzt die Kommandos auf einen internen RS232 Bus mit
> 115200B um. Deshalb ist das immer gleich lahm. Das ist der eine grosse
> aergerliche Schwachpunkt der HMOs.
Das ist mir natürlich klar. Aber, weil es mich interessiert, Rückfrage: 
Welche Oszis können denn über USB Live-Bilder (wie mein HDMI-Grabber am 
DVI-Ausgang) übertragen? Oder wenigstens mit höherer Frequenz so eine 
Art Screenshot-Film?

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