Matlab-Steuerung des Signalgenerators Rigol DG1022

Ein Signalgenerator für die Bastelecke ist schon lange kein unerschwinglicher Traum mehr. Bei einem Arbiträrgenerator spielen dabei nicht nur die eigentlichen Geräteparameter, sondern auch die Fernsteuerbarkeit vom PC eine wichtige Rolle für die praktische Verwendbarkeit. Im folgenden wird der Arbitrary Waveform Generator Rigol DG1022 und seine Fernsteuerung über Matlab beschrieben.

Foto: Front DG1022
Frontansicht des DG1022 — Leider ist die Bedienung nicht immer besonders komfortabel, aber man kommt intuitiv an sein Ziel, ohne wiederholt die Bedienungsanleitung konsultieren zu müssen. (Zum Vergrößern auf das Bild klicken)

Mein letzter Versuch, einen Universal-Funktionsgenerator für alle Anwendungsfälle zu erwerben, ist leider fehlgeschlagen: Zwar hat sich das Gerät selbst als ausgezeichnet in Bezug auf Bedienkomfort, Funktionsumfang und Preis-Leistungs-Verhältnis erwiesen, leider aber auch als nicht besonders gut über den PC fernsteuerbar herausgestellt. (Den vollständigen Bericht findet man hier.)

Beim zweiten Versuch wurde deshalb explizit sichergestellt, daß eine Standard-Software-Schnittstelle zur PC-Fernsteuerung vorhanden ist. Der Arbitrary Waveform Generator Rigol DG1022 bietet im Vergleich zum UTG2064 von Uni-Trend nicht ganz so rosige Geräteparameter, und der Bedienkomfort ist leider auch nicht vergleichbar. Dafür ist er ein Stück billiger und bietet eine VISA-Schnittstelle von National Instruments. Letztere kann mithilfe der Instrument Control Toolbox von Matlab angesprochen werden. Nach aktuellem Stand (Matlab 2014A) wird allerdings kein Rigol-Funktionsgenerator direkt von Matlab unterstützt. Deshalb wird an dieser Stelle eine Matlab-Anbindung des Geräts vorgestellt — die Implementierung sollte sich aber auch 1:1 für Python übernehmen lassen.

Der Signal­generator

Bei der folgenden Übersicht handelt es sich nicht um einen kompletten Testbericht, sondern nur um eine Liste von Punkten, die aus dem Datenblatt nicht ohne weiteres hervorgehen:

Foto: Rückseite DG1022
Rückansicht des DG1022 — Hier finden sich Netzschalter, USB-Anschluß, Trigger Aus- und Eingang und der Eingang für die Modulation. (Zum Vergrößern auf das Bild klicken)
Foto: Oszilloskopschirm mit zwei Wellenformen
Ist auf beiden Kanälen die selbe Signalform geladen (hier absichtlich mit einem kleinen Peak auf dem Low-Pegel) und beide auf die Phasenlage 0° eingestellt, bedeutet das nicht, daß die Signale phasengleich sind. (Zum Vergrößern auf das Bild klicken)

Rigol UltraWave

Die mitgelieferte Software „UltraWave” dient dazu, Signalformen zu erzeugen („malen”) und auf das Gerät zu laden oder aus dem Speicher des Geräts auszulesen. UltraWave kann allerdings Signalformen nur auf Kanal CH1 ausgeben und verfügt nicht über nennenswerte Fernsteuerfunktionen. Eingebaute Signalformen lassen sich damit auch nicht aus dem Gerät auslesen.

Hat man kein Bedürfnis, Signalformen per Maus zu malen oder zusammenzuklicken, kann auf diese Software verzichtet werden. Sie kann übrigens auch auf einem virtuellen PC (VMware) problemlos getestet werden.

Rigol Ultra Sigma

Die ebenfalls mitgelieferte Software „Ultra Sigma” ist von Rigol und dient dem Zweck, das Gerät per SCPI-Kommandos fernzusteuern. Leider scheint sie (zumindest auf einem 64-Bit-Windows-System) alles andere als zuverlässig zu sein: Der Signalgenerator wird nicht immer erkannt. Das Gerät selbst merkt, daß es per USB ferngesteuert wird, Ultra Sigma zeigt es allerdings nicht als verbundenes Gerät an.

Eigene Signalformen

Das Binärformat, mit dem der Funktionsgenerator seine Signalverläufe auf USB speichert, hat die Endung *.rdf und besteht einfach aus den rohen DAC-Werten zwischen 0 und 16383 im uint16-Format mit 0x8000 verODERt. Eine Datei ist immer 8192 Bytes groß. Ist die Signalform kürzer als 4096 Samples, wird das vorletzte Sample mit 0xC000 als Endmarkierung verODERt. Am Ende wird bis 4096 Doppelbytes mit 0x0000 aufgefüllt.

Damit lassen sich Funktionsverläufe mit nahezu jeder Numerik-Software problemlos erzeugen und per USB-Stick auf das Gerät bringen. Für Matlab sind die entsprechenden Funktionen unter den Namen DG1022.writerdf und DG1022.readrdf implementiert (siehe Downloads).

Die Matlab-Anbindung

Alle Bemerkungen beziehen sich auf ein Rigol DG1022 mit der Firmware-Version 00.03.00.11.00.02.12 und die Matlab-Release 2014A.

Voraussetzungen

SCPI-/Matlab-Fernsteuerung

Implementierungsdetails der Matlab-SCPI-Fernsteuerung

Downloads

ZIP Matlab-Funktionen für Rigol DG1022

Links

DL1DOW German Amateur Radio Station