Forum: Mikrocontroller und Digitale Elektronik R&S/Hameg HMOxxxx mit SCPI Steuern


von Der Zahn der Zeit (🦷⏳) (Gast)


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.)

von Hmmm (Gast)


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.

von Der Zahn der Zeit (🦷⏳) (Gast)


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

von Hmmm (Gast)


Lesenswert?

Der Zahn der Zeit (🦷⏳) schrieb:
> Win 10, es nennt sich  "HAMEG HO720 USB".

Das ist der gleiche Einschub wie im HM1508-2.

Am einfachsten geht's mit dem Hameg/R&S-Treiber:
https://www.rohde-schwarz.com/de/treiber/hmo/

von Der Zahn der Zeit (🦷⏳) (Gast)


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!

von Olaf (Gast)


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

von Der Zahn der Zeit (🦷⏳) (Gast)


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?

von Olaf (Gast)


Lesenswert?

> Welche Oszis können denn über USB Live-Bilder (wie mein HDMI-Grabber am
> DVI-Ausgang) übertragen?

USB Hab ich nicht probiert, aber mein RTB2004 laesst sich ueber
LAN ganz gut fernbedienen. Wuerde mich aber nicht wundern wenn
es dann ueber USB aehnlich gut geht.

Olaf

von Der Zahn der Zeit (🦷⏳) (Gast)


Lesenswert?

Olaf schrieb:
> fernbedienen
Verstehst du darunter auch, das Bild in Echtzeit (oder zumindest fast) 
auf dem PC zu betrachten? Also sozusagen nicht nur "fernbedienen" 
sondern auch "fernbetrachten"?

von Olaf (Gast)


Lesenswert?

Der RTB2004 hat zwei Modi in seinem http-Server. Zum einen kann man
das aktuelle Bild 1:1 wie auf dem Oszi rueberholen.

Zum anderen gibt es einen Modi mit etwas eingeschraenkter Optik
wo man das Oszi auch drueber bedienen kann.

Olaf

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
Noch kein Account? Hier anmelden.