HMS3010, SCPI Programmierung

Hallo,

ich versuche gerade einen Spektrum-Analysator HMS3010 vom PC aus über den SCPI-Befehlssatz zu steuern. Die Center-Frequenz soll auf einen bestimmten Wert gesetzt werden, dann soll ein Marker auf das Maximum gesetzt werden, und dann werden Frequenz und Pegel das Markers ausgelesen. Das Ganze in einer Schleife über viele Frequenzen.

Es funktioniert nur dann, wenn ich im Steuerprogramm hinreichend grosse Verzögerungszeiten einbaue. Aber das gefällt mir nicht. Eigentlich müsste doch das Messgerät das Timing vorgeben, und nicht der PC. Aber wie kann ich über SCPI abfragen, wann ein Sweep vollendet wurde und wann das Maximum gefunden wurde?

Gruss Michael

Reply to
Michael Koch
Loading thread data ...

Michael Koch schrieb: > Es funktioniert nur dann, wenn ich im Steuerprogramm hinreichend grosse

Wenn ich mich richtig erinnere konnte mittels STAT abgefragt werden ob der letzte Befehl abgeschlossen ist und das Gerät für eine neue Aktion bereit ist. Ob es eine Art Interrupt gibt weiß ich nicht.

Gruß Martin

Reply to
Martin P.

Michael Koch schrieb:

Ohne das Gerät zu kennen: Gibt es kein Kommando, um einen einzelnen Sweep auszulösen? Dann müsstest Du eigentlich mit dem Standard-SCPI-Kommando "*OPC?" (OPeration Complete) abfragen können, wann dieses Kommando und damit der Sweep ausgeführt wurden.

Christian

--
Christian Zietz  -  CHZ-Soft  -  czietz (at) gmx.net
WWW: http://www.chzsoft.de/
 Click to see the full signature
Reply to
Christian Zietz

Hallo Christian,

So ein Kommando habe ich noch nicht gefunden. Den Befehlssatz gibt es hier:

formatting link

Gruss Michael

Reply to
Michael Koch

formatting link

Sollten die das tatsaechlich vergessen haben waere ein Email an Hameg sinnvoll. Vielleicht geht es von hinten durch die Brust, SWE :MODE auf CONT, dann wieder auf SING um ihn anzuhalten. Du koenntest auch versuchen ob der Analyzer einige in diesem Manual nicht dokumentierte (oder vergessene) Befehle wie :RUN und :STOP versteht.

Das Abfragen ob fertig koennte ueber das Statusregister SESR funktionieren. "Operation Complete" (OPC) auslesen und das sollte an sich ja das Ende eines Sweep signalisieren. Da USB und RS232 das SRER Register nicht unterstuetzen und Du vermutlich kein GPIB Interface hast ist das eventuell der einzige Weg.

Irgendwie hat Instek das besser hinbekommen, mein Scope laesst sich komplett fernsteuern, auch Run und Stop. Es macht auch nichts wenn es Befehle waehrend eines langsamen Sweep empfaengt. Wobei der Startbefehl :RUN heisst, nicht :START. Das hatte mich anfangs mal erwischt, als Ingenieur ueberfliegt man Manuals ja hoechstens, wenn ueberhaupt ... :-)

--
Gruesse, Joerg

http://www.analogconsultants.com/
 Click to see the full signature
Reply to
Joerg

Michael Koch schrieb:

In der Tat finde ich im Befehlssatz auch kein Kommando, das ausdrücklich dafür da ist. Seltsam. Sollten die etwa eine Möglichkeit vergessen haben, im Single-Sweep-Modus einen Sweep auszulösen?

Du könntest jetzt diverse Kommandos durchprobieren, ob sie (u.U. als Nebenwirkung) einen Sweep starten und ob man dann über "*OPC?" oder "*WAI" synchronisieren kann. So könnte es z.B. von der Bezeichnung her sein, dass ":TRIGGER:SOURCE IMMEDIATE" im Single-Sweep-Modus einen neuen Sweep startet.

Oder Du fragst mal beim Hameg-Support nach.

Christian

--
Christian Zietz  -  CHZ-Soft  -  czietz (at) gmx.net
WWW: http://www.chzsoft.de/
 Click to see the full signature
Reply to
Christian Zietz

Hallo,

*WAI hatte ich schon probiert, zeigt keinerlei Wirkung.

Das habe ich vorhin schon gemacht. Warten wir mal die Antwort ab. Vielleicht wird der Befehlssatz ja noch erweitert. Das Manual gibt's auch erst seit ein paar Wochen. Die Firmware im HMS3010 ist bislang noch ebensowenig ausgereift wie die dazugehörige EMV-Precompliance-Software.

Gruss Michael

Reply to
Michael Koch

Michael Koch schrieb:

Naja, *WAI wartet ja nur, bis das aktuelle Kommando abgearbeitet ist. D.h. Du brauchst halt schon ein Kommando, das den Sweep auslöst. Hast Du mal Jörgs oder meine Idee ausprobiert?

Christian

--
Christian Zietz  -  CHZ-Soft  -  czietz (at) gmx.net
WWW: http://www.chzsoft.de/
 Click to see the full signature
Reply to
Christian Zietz

Hallo Joerg,

Schon geschehen.

Damit scheint der HMS3010 kein Problem zu haben. Die Kommandos bearbeitet er alle sofort und während der Sweep läuft. Das Problem ist ja eher dass er sie _zu schnell_ bearbeitet. Wenn ich keine Zeitverzögerung einbaue, liefert er mir den Pegel und die Frequenz des Markers zurück, bevor er den Marker auf das Maximum gesetzt hat -- obwohl ich den Befehl zum Suchen des Maximums natürlich zuerst gesendet habe. Als vorläufige Lösung werde ich erst mal eine grosszügige Zeitverzögerung in meinem Programm drinlassen.

Gruss Michael

Reply to
Michael Koch

Hallo Christian,

Ich bin mir noch nicht ganz sicher wie gross die zu messenden Pegel sind, aber es könnte sein dass es mit Single Sweep gar nicht geht weil das Signal dann im Rauschen untergeht. D.h. möglicherweise brauche ich mehrere Sweeps und Average, und dann wäre es gar nicht verkehrt wenn der PC das Timing macht. Ich warte erst mal die Antwort von Hameg ab.

Gruss Michael

Reply to
Michael Koch

Michael Koch schrieb:

Auch wenn Du zwischen Peak finden und Markerposition lesen einen *OPC? benutzt?

Reply to
Martin P.

Hallo Martin,

Also wenn ich nach dem Paek finden ein *OPC? sende und dann auf die Antwort warte, dann ist keinerlei Zeitverzögerung erkennbar und die Messwerte sind alle falsch (bzw. der Marker steht dann offensichtlich noch am linken Bildschirmrand bei der Start-Frequenz).

Gruss Michael

Reply to
Michael Koch

Hallo,

die Antwort von Hameg besagt (sinngemäss und ausschnittsweise) folgendes:

-- Eine Möglichkeit die "Bereitschaft" (oder vielmehr die Frage, ob das Gerät den Sweep abgeschlossen hat) des Geräts abzufragen besteht beim HMS derzeit leider nicht.

-- Es wird empfohlen gewisse Zeitverzögerungen in das Steuerprogramm einzubauen, dafür wurden konkrete Richtwerte angegeben.

-- Es besteht zwar die Möglichkeit den Gerätestatus mittels der Registerabfrage "OPC?" zurückzulesen, der rückgemeldete Status bezieht sich jedoch nicht auf den Sweep des Geräts, sondern auf die Bereitschaft des HMS einen neuen Befehl zu verarbeiten.

-- Dennoch erkennen wir die Notwendigkeit einer solchen Abfrage und denken derzeit darüber nach einen Komfortbefehl für die Abfrage nach dem Sweepstatus in die HMS Serie einzubauen.

Gruss Michael

Reply to
Michael Koch

P.S.

Es gibt einen undokumentierten Befehl, mit dem man einen Single-Sweep auslösen kann:

TRIG:SOFT

Gruss Michael

Reply to
Michael Koch

Aha! Da gibt es vermutlich noch mehr.

--
Gruesse, Joerg

http://www.analogconsultants.com/
 Click to see the full signature
Reply to
Joerg

"Bitte tun sie etwa Oel auf die Bremsen, dann quietschen sie auch nicht mehr" :-) ... SCNR

Enttaeuscht mich jetzt von Hameg ein wenig. Sowas haette spaetestens in einem Design Review auffallen muessen. Aber wenigstens wollen sie nachbessern.

--
Gruesse, Joerg

http://www.analogconsultants.com/
 Click to see the full signature
Reply to
Joerg

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.