Forum: Mikrocontroller und Digitale Elektronik SCPI Befehle zum Oszi schicken


von Gregor B. (gregor54321)


Lesenswert?

Hallöchen,
ich möchte gern aus meinem Oszi mittels der SCPI Befehle die Sampledaten 
auslesen. Das Oszi ist über USB angeschlossen. Wie komme ich nun aber an 
die USB-Schnittstelle ran, damit ich doch die Befehle drüber kriege? 
Kennt jemand eine Software die mit meinem Hameg-Oszi über SCPI spricht, 
und bei der ich Befehle "zu Fuß" eintippen und abschicken kann?
Gregor

von Thomas (Gast)


Lesenswert?

Willst du uns weder Oszilloskop-Typ, -Marke, noch Betriebssystem 
verraten? Dann rate ich. Du willst 
http://sourceforge.net/projects/gds2000tools/

Shell-Skripten (SCPI Kommandos aus einer Bash-Shell) für Oszilloskope 
der Serien GW Instek GDS-2000, GDS-800, Voltcraft DSO-8000 und demnächst 
GW Instek GDS-1000 und Voltcraft DSO-4000 unter Linux und anderen 
Unix-Betriebssystemen.

Vielleicht lässt sich das Ganze für andere Oszilloskope anpassen. Musst 
du halt mal schauen.

von Thomas (Gast)


Lesenswert?

Ach, ich sehe gerade, da stand Hameg. Tschuldigung, das hatte ich 
überlesen.

Da musst du mal schauen was Hameg an Dokumentation und villeicht sogar 
an Software bietet.

von Gregor B. (gregor54321)


Lesenswert?

Hallo Thomas,
ich hab mir die SW mal runtergeladen und "durch gelesen". Ich glaube, 
das ist nicht das was ich Suche. Geht aber schon in die Richtung, nur 
viel zu weit! In den Scripten wird unter Unix auf ein "TTY-Device" 
zugegriffen (womöglich muss dafür ein Treiber ins System, der die 
TTY-USB Konnektion herstellt?). Genau das will ich auch (möglichst 
mittels WinXP), nur hab ich keine Ahnung, ob es denn sowas wie ein 
Terminal-(/TTY-)Programm gibt, das anstelle der gewöhnlichen seriellen 
die USB-Schnittstelle (unter Win) benutzen kann. Die o.g. Skripte machen 
ja noch viel mehr, ich will ja lediglich den "Zugang" zum Oszi haben. 
Hameg hat einen Closed-Source SW (HMLab) die wahrscheinlich den Skripten 
entspricht. Leider kann ich über diese keine Befehle zum Gerät schicken. 
Aber eigentlich müsste es SW für sowas geben, denn die Sprache ist 
Standard bei Messgeräten und USB benutzt bestimmt auch manch Einer? Nur 
weiß ich nicht so Recht, wonach ich googlen könnte.
Hameg hat wunderbar den kompletten SCPI-Befehlssatz dokumentiert, aber 
nicht, wie ich den über USB ins Gerät bekomme. Via RS232 ginge es 
wahrscheinlich ganz einfach übers Windows Hyperterminal.

von FBI (Gast)


Lesenswert?

Hi,

welches HAMEG hast Du denn? Die meisten haben doch einfach nur einen 
FTDI 232 USB<->seriell Wandler drin. Die aktuellen von Hause aus, die 
älteren als Nachrüstmodul. Die verwenden die ganz normalen FTDI Treiber, 
nur mit geänderter VID/PID. D.h. Du kannst die trotz USB-Verbindung 
einfach mit jedem x-beliebigen Terminalprogramm über den seriellen Port 
ansprechen. Kann man auch so in HMLab einstellen. Alternativ dazu findet 
sich im Treiber von Hameg normalerweise eine *D2XX.dll plus dazugehörige 
.h und .lib mit denen sich die D2XX-Schnitstelle des FTDI-Treibers 
benutzen läßt. Beispiele dazu sollte es hier im Forum 
"PC-Programmierung" einige geben.

CU FBI

von Karl Z. (griffin27)


Lesenswert?

Hallo,

ich hab jetzt auch ganz neu das HM 1508-2.
Hab heute mal das HMLab zum laufen gebracht.
Mit Hyperterminal und RS-232 konnte ich auch Befehle runterschicken. 
Funktioniert prima!
Aber evt. wäre eine USB Verbindung auch praktisch.
Installiert man die Treiber für das Scope, wird leider kein Virtual Com 
Port im Gerätemanager angelegt. --> Man kann keine Terminalverbindung 
über USB aufbauen.

Kann man das irgendwie ändern?
Die Kommunikation mit einem C-Programm und der Library ist natürlich 
auch recht fein, verlangt aber etwas an Einarbeitung und Zeit.

lg, Karl

von Wilhelm Winterstein (Gast)


Lesenswert?

bin gerade auf diesen Thread gestoßen. Da das dank google wohl recht 
schnell passiert, folgender Hinweis: Die USB-Schnittstelle ist, 
zumindest bei den SCPI-Geräten, die ich kenne, einfach nur ein 
USB-Seriell-Chip. Bei Linux funktioniert er out-of-the-box, bei Windows 
wird zunächst nur das USB gerät erkannt. Was Gregor damals gesucht hat, 
ist ein "virtual com port driver" (VCP), den man bei FTDI-Chips entweder 
von deren Webseite herunterladen kann oder teilweise unter den 
Eigenschaften im Gerätemanager -> Rechtsklick auf das USB-Gerät 
aktivieren kann ("load VCP driver").

von Nummer E. (ritaripp)


Lesenswert?

Hat jemand Erfahrung mit dem

OWON LCD-Oszilloskop mit Multimeter (HDS242s),

und SCPI_Protocol ?

Ich möchte aktuelle Multimeter-Werte mit SCPI auslesen gerne unter 
Linux.

Gehts mit der USB-Schnittstelle und Terminal ?

von Jobst M. (jobstens-de)


Lesenswert?

Die Geräte die kein CDC- oder Modemdevice (FTDI) sind, benutzen häufig 
USB-TMC.
Damit ist KEINE Kommunikation per Terminal möglich.
In TMC ist ein SCPI Kanal enthalten und in der Software auf dem PC hat 
man dann auch meist eine SCPI-Konsole.
Außerdem gibt es Hersteller, die properitäre Protokolle benutzen, wie 
z.B. Uni-T an seinen Scopes.

Der Thread hier ist schon etwas älter. Du hättest besser einen eigenen 
eröffnen sollen.

Nummer E. schrieb:
> Gehts mit der USB-Schnittstelle und Terminal ?

Was hast Du denn schon herausgefunden?


Gruß
Jobst

: Bearbeitet durch User
von Nummer E. (ritaripp)


Lesenswert?

Danke  Jobst!.

Das HDS242s wird noch geliefert. Ich melde mich wieder wenn
ich die USB-Erkennung mit Linux/mint testen kann.

Steuert niemand  SCPI-Geräte mit USB/Linux  ?

Wenn ein SCPI Kanal enthalten ist muss es doch eine Lösung geben ?

Gruss
Nummer E

von Hannes J. (Firma: _⌨_) (pnuebergang)


Lesenswert?

Tief im Handbuch des OWON fallen die Begriffe USB und HID.
In der Anleitung zur OWON-Software wird unter Windows ein 
libusb32-Treiber installiert.

Das sieht alles nicht nach USB-TMC aus, sondern bestenfalls nach etwas 
Pfusch über USB-HID und schlechtestenfalls nach einem proprietären 
Protokoll.

Was da verwendet wird müsste man erst mal unter Linux aussortieren. 
Sobald man das weiß ist das eigentliche Programmieren von ein paar 
SCPI-Kommandos ziemlich trivial.

von Nummer E. (ritaripp)


Lesenswert?

Ich möchte Realtimewerte auslesen.

Im Handbuch steht:
Die beigelegte Software (WIN...) ermöglicht die Verarbeitung
gespeicherter Werte (also Dateien).

Also kommt für mich nur SCPI in Frage.

Es gibt einen interssanten Ansatz für LINUX
https://github.com/florentbr/OWON-VDS1022

The SCPI protocol of this product is based on
USB port and LAN communication. After opening
the pc software, SCPI protocol server is automatically activated.
(LAN port : remote control )

Das HDS242s enthält kein LAN/WLAN .

Deshalb die einfache Frage" Hat jemand SCPI über USB/LINUX angesteuert 
?"

von pegel (Gast)


Lesenswert?


von Jobst M. (jobstens-de)


Lesenswert?

Nummer E. schrieb:
> Deshalb die einfache Frage" Hat jemand SCPI über USB/LINUX angesteuert
> ?"

Ja. Aber nur per USB-CDC oder FTDI (und natürlich RS232).

NICHT jedoch USB-TMC oder properitäre Protokolle - Wo Dein OWON offenbar 
zu gehört.

Gruß
Jobst

von Stefan (Gast)


Lesenswert?

Nummer E. schrieb:
> Hat jemand Erfahrung mit dem
> OWON LCD-Oszilloskop mit Multimeter (HDS242s), und SCPI_Protocol?
> Ich möchte aktuelle Multimeter-Werte mit SCPI auslesen gerne unter Linux.
Ich habe ein HDS242 (ohne s), kein Linux und sehr sehr wenig Erfahrung 
mit SCPI.
Unter Windows10 taucht das Teil bei mir im Gerätemanager unter 
'libusb-win32 devices' als 'usb device' auf, möglicherweise wegen 
bereits vorher nistallierter Software für mein Owon VDS1022i.

Im EEVblog Forum gibt es einen Thread zu den Owon HDS200 Geräten, in 2 
Posts sind Python Skripte angehängt:
https://www.eevblog.com/forum/testgear/owon-hds-200-handheld-oscilloscope-w-builtin-dmmawg/msg3633123/#msg3633123
https://www.eevblog.com/forum/testgear/owon-hds-200-handheld-oscilloscope-w-builtin-dmmawg/msg3967616/#msg3967616
Ich habe das Skript aus dem zweiten Post heruntergeladen, in Thonny 
gestart, festgestellt welche Module fehlen und diese installiert und als 
alles lief in der Thonny-Shell SCPI-Befehle in der Form
"send('*IDN?').tobytes().decode('utf-8')"
gestartet.
Das Gerät antwortet und die Antwort passt zu dem was mir das Gerät 
selbst anzeigt.

Im 'SCPI Protocol for HDS200 series Oscilloscope' sind nur Behle zum 
Oszilloskop und Funktionsgenerator aufgeführt, nicht zum DMM.
Den DMM-Teil erledigt im HDS200 ein eigener DMM-Chip der über 
Optokoppler galvanisch vom Controller getrennt ist. Ich halte es derzeit 
für unwahrscheinlich, dass dieser die DMM Messwerte über SCPI 
bereitstellt.

Nummer E. schrieb:
> Das HDS242s enthält kein LAN/WLAN
Das VDS1022(i) auch nicht, das ist ein reines USB-Oszilloskop.
Der 'SCPI protocol server' ist ein Teil des Proramms von florentbr.

von Nummer E. (ritaripp)


Lesenswert?

Danke Stefan!
Na gut. Dann ist SCPI mit Funktionsgenerator eventuell interessant.

Ich habe ein Video für LINUX gefunden:
https://www.youtube.com/watch?v=z5EKfZrriaY&t=413s
TheHWcave

Die libusb von Ubuntu/Mint kann die HDS-Daten nicht vollständig lesen 
und man wartet auf OWON- Support/Updates.

Kannst du die Eigenentladung HDS242 (nach ca. 4 Wo) bestätigen ?

In dem Fall,werde ich wohl einen FET-Schalter einbauen.

von Stefan (Gast)


Lesenswert?

Die Befehle im 'SCPI Protocol for HDS200 series Oscilloscope' 
funktionieren mit meinem HDS242 unter Windows10 und Python mit bzw. nach 
dem oben genannten Script. Ein Beispiel:
1
>>> %Run HDS200_Range_Plot.py
2
>>> 
3
>>> send(':DATa:WAVe:SCReen:HEAD?').tobytes().decode('utf-8')
4
'H\x02\x00\x00{"TIMEBASE":{"SCALE":"1.0ms","HOFFSET":0},"SAMPLE":{"FULLSCREEN":600,"SLOWMOVE":-1,"DATALEN":600,"SAMPLERATE":"500KSa/s","TYPE":"SAMPle","DEPMEM":"8K"},"CHANNEL":[{"NAME":"CH1","DISPLAY":"ON","COUPLING":"AC","PROBE":"10X","SCALE":"200mV","OFFSET":50,"FREQUENCE":0.00000},{"NAME":"CH2","DISPLAY":"ON","COUPLING":"AC","PROBE":"10X","SCALE":"100mV","OFFSET":-50,"FREQUENCE":0.00000}],"DATATYPE":"SCREEN","RUNSTATUS":"AUTo","IDN":"owon_v1.2","MODEL":"HDS242_1","Trig":{"Mode":"SINGle","Type":"Edge","Items":{"Channel":"CH1","Level":"0.00mV","Edge":"RISE","Coupling":"DC","Sweep":"AUTO"}}}'
5
>>>
Da taucht gleich zweimal  die im Video angesprochene Zahl 600 auf, bei 
"FULLSCREEN" und bei "DATALEN". Mehr als 600 Werte scheinen also nicht 
übertragbar zu sein, trotz "DEPMEM":"8K". Die beiden :Data Command 
Subsystem Befehle enthalten wohl nicht umsonst den Teil ":SCReen:".
Da nutz ich doch lieber ein Picoscope wenn ich Daten auf dem PC haben 
will.

Zur Eigenentladung kann ich nichts sagen, ich habe das "Spielzeug" erst 
seit knapp 2 Wachen.

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.