CommunityCodierung & Entwicklunggithub.com

JaredCabot/siglent-sds2000x-hd

Bedienen, programmieren (SCPI über USB/LAN), Wellenformen erfassen, verifizieren und warten der Siglent SDS2000X HD 12-Bit-Oszilloskope (SDS2104X/2204X/2354X/2504X HD): Trigger, Decodierung, MSO, FFT, Power, Bode, AWG.

Was ist siglent-sds2000x-hd?

Dieses Skill-Paket bietet eine umfassende und detaillierte Dokumentation zur Fernsteuerung und Programmierung der Siglent SDS2000X HD Oszilloskop-Familie über SCPI-Befehle (USB oder LAN). Es richtet sich an Entwickler und Ingenieure, die die Geräte in automatisierte Testsysteme integrieren oder erweiterte Messaufgaben wie die Erfassung von Wellenformen, die Konfiguration von Triggern (einschließlich serieller Protokolle), die Durchführung von FFT-Analysen, Leistungsanalysen und Bode-Diagrammen sowie die Nutzung des eingebauten AWG durchführen möchten. Das Skill behandelt alle relevanten Aspekte von der Verbindung über grundlegende und fortgeschrittene Messungen bis hin zur Wartung und Fehlerbehebung und enthält zahlreiche praxisnahe Hinweise, Fallstricke und Python-Codebeispiele. Es unterstützt die Modelle SDS2104X HD, SDS2204X HD, SDS2354X HD und SDS2504X HD und basiert auf den offiziellen Handbüchern (User Manual, Programming Guide, Service Manual, Datasheet).

Funktioniert mit~Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/JaredCabot/claude-instrument-skills/tree/HEAD/siglent-sds2000x-hd

Installed? Explore more Codierung & Entwicklung skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Siglent SDS2000X HD: Bedienung, Fernsteuerung und Service

Die SDS2000X HD ist eine 4-Kanal-12-Bit-Oszilloskop-Familie: SDS2104X HD (100 MHz), SDS2204X HD (200 MHz), SDS2354X HD (350 MHz) und SDS2504X HD (500 MHz). 2 GSa/s, 200 Mpts/Kanal, 10,1 Zoll (1024 x 600) Touchscreen, optional 16 digitale Kanäle, optionaler 25-MHz-Einzelkanal-AWG, serielle Triggerung und Decodierung, Leistungsanalyse und Bode-Diagramm.

Quellen:

KurzreferenzDokumentVerwenden für
UMSDS2000X HD Series User Manual EN01B (302 S.)Frontplatte, jedes Menü, Verhalten
PGSDS Series Programming Guide EN11G (855 S.)SCPI. Mehrgeräte-Leitfaden; SDS2000X HD-Unterstützung benötigt Firmware 1.2.0.2 oder neuer
QSSDS2000X HD Quick Start EN01CKurzform des UM; Hinweise zu Selbstkalibrierung und Quick Cal
SMSDS2000X HD Service Manual EN01ALeistungsüberprüfung, Demontage, Testpunkte auf der Platine
DSSDS2000X HD Datasheet EN01A (nicht eines der vier Handbücher; aus einer Vertriebskopie bezogen)Spezifikationen, auf die die Handbücher verweisen. Eine neuere EN02B existiert; Abbildungen können verschoben sein

Seitenangaben beziehen sich auf gedruckte Seitenzahlen ("PG S.482", "UM S.73").

Nichts hiervon wurde an einem echten Gerät überprüft. Das PG deckt zehn Modellfamilien ab, und viele seiner Tabellen haben ihr Zeilenlayout bei der Textextraktion verloren; wo ein SDS2000X HD-Wert rekonstruiert werden musste, wird dies in dieser Datei vermerkt. Alles, was als UNVERIFIED gekennzeichnet ist, ist ein Hinweis zum Testen. Wenn der Prüfstand von dieser Datei abweicht, glauben Sie dem Prüfstand und aktualisieren Sie das Skill.

Inhaltsverzeichnis

  1. Das Gerät auf einen Blick
  2. Fallstricke
  3. Verbindung herstellen
  4. SCPI-Konventionen, Synchronisation und Fehler
  5. Frontplatte und Touchscreen
  6. Vertikalsystem
  7. Horizontal, Erfassung, Sequenz, Historie, Zoom
  8. Triggerung
  9. Serielle Triggerung und Decodierung
  10. Digitale Kanäle (MSO)
  11. Messungen, Cursor, Zähler, DVM
  12. Mathematik und FFT
  13. Suchen, Navigieren, Maskentest, Histogramm
  14. Leistungsanalyse und Bode-Diagramm
  15. Referenzwellenformen, Speicherwellenformen, Speichern und Laden
  16. Display
  17. Wellenformgenerator (AWG)
  18. Wellenformdaten auslesen
  19. System, LAN, Optionen, Firmware, Selbstkalibrierung
  20. Leistungsüberprüfung
  21. Service und Fehlerbehebung
  22. Python-Treiber
  23. Rezepte
  24. Abweichungen in den Handbüchern

1. Das Gerät auf einen Blick

PunktWertQuelle
Kanäle4 analog + EXT-Trigger; 16 digital mit SDS2000HD-16LA und dem SPL2016-TastkopfUM S.34-35, 64
ADC12 BitDS
Abtastrate2 GSa/s im Interleaving, 1 GSa/s ohne InterleavingDS, SM S.28
Speichertiefe200 Mpts/Kanal Interleaving, 100 Mpts/Kanal ohne Interleaving; 20 / 10 Mpts im Mittelwert- und ERES-Modus (DS)UM S.73, DS
Update-Ratebis zu 100.000 wfm/s normal, 500.000 wfm/s SequenzDS, UM S.77
Sequenz/Historiebis zu 80.000 Segmente/Frames, 2 µs minimales TriggerintervallUM S.77, 80
V/div0,5 mV bis 10 V/div bei 1 MΩ; 0,5 mV bis 1 V/div bei 50 Ω (1X-Tastkopf)DS
Vertikaler Bereich8 TeilungenUM S.40
Bandbreitenbegrenzungen20 MHz, 200 MHz (Hardware)UM S.60-61
Eingang1 MΩ ±2% ∥ 16 pF ±2 pF oder 50 Ω ±1%. Max. 400 Vpk (DC+AC, DC bis 10 kHz) bei 1 MΩ; 5 Vrms bei 50 ΩDS, SM S.46
DC-VerstärkungsgenauigkeitSpezifikation ±0,5% (5 mV bis 10 V/div), ±1,5% (0,5 bis 4,95 mV/div) (DS). PV-Grenze ±0,6% (5,8 mV bis 10 V/div), ±1,5% (1 bis 4,45 mV/div) (SM S.28-32)DS, SM
Offset-Genauigkeit±(0,5% des Offsets + 0,5% des Vollausschlags + 1 mV)SM S.33
Zeitbasis1 ns/div bis 1000 s/div; ±2 ppm initial, ±0,5 ppm Alterung im ersten JahrDS
Kanal-Skew≤ 100 psSM S.45
Triggerpegelbereich±4,1 div um die Bildschirmmitte (Kanäle); EXT ±0,61 V; EXT/5 ±3,05 VPG S.492, DS
Holdoff8 ns bis 30 s oder 1 bis 10^8 EreignissePG
Digital500 MSa/s, 50 Mpts/Kanal, zwei Schwellwertgruppen D0-D7 und D8-D15, -10 bis +10 VDS, UM S.69
AWG (Option FG)1 Kanal, 25 MHz, 125 MSa/s, 14 Bit, 16 kpts Arb, ±1,5 V an 50 Ω (±3 V Hi-Z)DS, UM S.271
FFTbis zu 2 Mpts (2^21)UM S.198
Display10,1 Zoll TFT, 1024 x 600, kapazitiver Multi-TouchDS
I/OUSB 2.0 Host x2 vorne, x1 hinten; USB 2.0 Device (USBTMC); 10/100 LAN; EXT-Triggereingang; Aux Out; AWG-AusgangUM S.34-35
Stromversorgung100-240 V 50/60 Hz, 120 W max.SM S.9
Umgebung0 bis 50 °C Betrieb; 5-90% rF bei 30 °C, 50% bei 40 °C; ≤ 3000 mSM S.7

Modellabhängige Analogwerte (DS, typisch): Anstiegszeit 1 / 1,7 / 3,5 ns und Rauschen 65 / 55 / 50 µVrms bei 1 mV/div 50 Ω für die Modelle 350 / 200 / 100 MHz.

Interleaving. Kanäle paaren sich als CH1/CH2 und CH3/CH4. Wenn nur ein Kanal jedes Paares eingeschaltet ist, läuft dieser Kanal mit 2 GSa/s und 200 Mpts. Wenn beide Kanäle eines Paares eingeschaltet sind, fällt das Paar auf 1 GSa/s und 100 Mpts. CH1 + CH3 ist also immer noch Interleaving; CH1 + CH2 nicht. Das UM nennt dies "Ein-Kanal"- und "Zwei-Kanal"-Modus (UM S.73), das SM "Interleaving" und "Non-Interleaving" (SM S.28). Beim 500-MHz-Modell schaltet sich ein ~350-MHz-Anti-Aliasing-Filter automatisch immer dann zu, wenn die Rate ≤ 1 GSa/s beträgt (UM S.42).

Frontplatte (UM S.34): C1-C4 BNC, Tastkopfkompensation (1 kHz, 0-3 V Rechteck) und Masseöse, 2 x USB Host, Digitaltastkopfanschluss, Einschalttaste (orange = Bereitschaft, weiß = an, SM S.57). Rückseite (UM S.35): EXT TRIG, Aux Out (standardmäßig Triggerausgang; Pass/Fail-Impuls bei aktivem Maskentest), WaveGen-Ausgang, LAN, USB Device, USB Host, Netzeingang. Die BNC-Gehäuse liegen auf Chassis (Erde)-Potenzial (SM S.10). Es gibt keinen 10-MHz-Referenzeingang oder -ausgang.

Optionen (UM, DS):

OptionSchaltet frei
SDS2000HD-FGIntegrierter AWG (Hardware ist eingebaut, lizenzgesperrt). Auch für den externen SAG1021I erforderlich
SDS2000HD-16LA16 digitale Kanäle (benötigt den SPL2016-Tastkopf)
SDS2000HD-PALeistungsanalyse
-I2S, -1553B, -FlexRay, -CANFD, -SENT, -Manch (DS-Namen)Serielle Protokolle über die standardmäßigen I2C, SPI, UART, CAN, LIN hinaus
BW1T2, BW1T3, BW1T5, BW2T3, BW2T5, BW3T5 (DS-Namen)Bandbreiten-Upgrades (100/200/350 auf 200/350/500 MHz)

Lizenzen werden unter Utility > Menu > Software Options eingetragen (Typ, Key, Installieren, dann Neustart, QS S.34) oder aus einer Lizenzdatei im Stammverzeichnis eines USB-Sticks. Eine nicht installierte "Temporäre" Lizenz funktioniert bis zu 30 Mal (UM S.292). Die Decodierung digitaler Kanäle erfordert sowohl 16LA als auch die Protokolllizenz (UM S.65).

2. Fallstricke

  1. 12-Bit-Daten benötigen WORD-Übertragungen. :WAVeform:WIDTh ist standardmäßig auf BYTE gesetzt (der COMM_TYPE des Präambels ist standardmäßig 0 = Byte, PG S.754), was die niederwertigen Bits wegwirft. Senden Sie :WAV:WIDT WORD vor :WAV:DATA?. Wörter sind signed int16, standardmäßig LSB zuerst, linksbündig mit auf Null gesetzten niederwertigen Bits. Skalieren Sie mit dem code_per_div des Präambels (Offset 0xA4), niemals mit einem fest codierten 25, 30 oder 7680 (PG S.753, 758).

  2. Nur *IDN?, *OPC? und *RST sind dokumentiert (PG S.29). Es gibt keine dokumentierte Fehlerwarteschlange, *CLS, *ESR? oder *STB?. Zahlen außerhalb des Bereichs werden im Allgemeinen ohne Meldung begrenzt (:ACQ:SRAT, :TIM:SCAL, Zoom, Gate-Cursor). Lesen Sie nach jeder wichtigen Einstellung den Wert zurück. :SYSTem:ERRor?, *ESR? und das Legacy INR? (das im eigenen C#-Beispiel des PG verwendet wird) sind einen Versuch wert, UNVERIFIED.

  3. Abfragegenauigkeit standardmäßig 3 signifikante Stellen. :FORMat:DATA legt fest, wie viele Stellen NR3-Antworten tragen: SINGle = 7, DOUBle = 14, CUSTom,<1-64> (PG S.34). Bei der Voreinstellung gibt :TRIG:FREQ? "1.00E+07" für ein 9.99998 MHz-Signal. Senden Sie :FORM:DATA DOUB einmal nach dem Verbinden.

  4. Die Status-Strings haben gemischte Groß-/Kleinschreibung mit einem Apostroph. :TRIGger:STATus? gibt Arm, Ready, Auto, Trig'd, Stop oder Roll zurück (PG S.483). Vergleichen Sie exakt oder wandeln Sie beide Seiten in Großbuchstaben um.

  5. *OPC? blockiert die Schnittstelle, bis anstehende Operationen abgeschlossen sind (PG S.30), und das PG sagt nie, dass es auf eine Erfassung wartet. Für einen Einzelimpuls senden Sie :TRIG:MODE SINGle und fragen Sie :TRIG:STAT? ab, bis es Stop zurückgibt. So macht es das C#-Beispiel des PG (PG S.827-828).

  6. Einstellungen mit zwei Wahrheitsquellen. Serielle Triggereinstellungen und Decoziereinstellungen sind völlig getrennt (UM S.117). Eine Änderung der Decodier-Baudrate ändert nicht die des Triggers. Kopieren Sie mit :DECode:BUS<n>:COPY FROMtrigger (Trigger zu Decodierung) oder TOTRigger (Decodierung zu Trigger) und kopieren Sie nach jeder Änderung erneut. Das eigene Beispiel des PG für COPY beschreibt die Richtung rückwärts (PG S.143); vertrauen Sie den Parameterdefinitionen.

  7. Schwellenwerte und Pegel sind auf ±4,1 Teilungen der aktuellen Skalierung und des Offsets des Kanals begrenzt ([-4.1*vdiv - offset, 4.1*vdiv + offset]). Dies gilt für Triggerpegel, Decodierschwellen, Suchpegel und den Zählerpegel. Stellen Sie zuerst V/div und Offset ein, dann den Pegel. Werte außerhalb werden begrenzt oder zurückgewiesen, das PG sagt nicht welches.

  8. Interleaving ändert Speicher und Rate. Das Einschalten des zweiten Kanals eines Paares (CH1+CH2 oder CH3+CH4) halbiert Abtastrate und Speicher. :ACQ:MDEPth akzeptiert nur die Token für den aktuellen Modus: 20k|200k|2M|20M|200M bei Interleaving, 10k|100k|1M|10M|100M ohne (PG S.40). Stellen Sie zuerst die Kanäle ein, dann die Speichertiefe. Eine Änderung von V/div oder des Interleave-Modus löst auch eine Hintergrund-ADC-Kalibrierung aus, die die Erfassung kurz unterbricht (QS S.34).

  9. Während des Laufs verwendet die Analyse nur den auf dem Bildschirm sichtbaren Datensatz. Messungen, Mathematik, Decodierung und Suche ignorieren Samples außerhalb des Bildschirms, bis Sie Stop drücken, selbst im Fixed-Memory-Modus (UM S.76).

  10. Mittelwert und ERES sind im Sequenzmodus nicht verfügbar (PG S.47), begrenzen die Speichertiefe (PG S.41; 20/10 Mpts laut DS) und ERES reduziert die Bandbreite: 3 Bit lässt 0,007 x Fs übrig (UM S.75).

  11. :CHANnel<n>:SCALe? ist tastkopfskaliert (PG S.58), ebenso wie die Offsets und Pegel, die Sie senden. Stellen Sie :CHAN<n>:PROBe vor Skalierung, Offset und Triggerpegel ein. Das V/div und der Offset des Wellenform-Präambels schließen den Tastkopf aus; multiplizieren Sie mit dem Tastkopffaktor bei 0x148, um die Spannung an der Tastkopfspitze zu erhalten.

  12. Passive Tastköpfe benötigen 1 MΩ. Bei 50 Ω liest ein 10X-Tastkopf nichts Nützliches, und der 50-Ω-Eingang ist kein Hochleistungseingang (UM S.62; 5 Vrms max. laut DS). Schalten Sie einen Kanal mit einem aktiven Hochspannungssignal nicht von einem Skript aus auf 50 Ω um.

  13. Hex-Felder werden als Dezimalzahlen angegeben, und "don't care" ist eins über dem Maximum. :TRIG:CAN:ID 125935441 für 0x7819F51. Datenbytes: 256 = 0xXX. IIC-Adresse 1024, CAN-11-Bit-ID 2048, 29-Bit-ID 536870912, LIN-ID 64, FlexRay-ID 2048 (PG S.640-712).

  14. Falsch gedruckte Aufzählungen. BITorder wird als {LSM|MSB} gedruckt; senden Sie LSB. :TRIGger:TYPE und :SEARch:MODE akzeptieren PULSE (nicht den Subsystem-Namen PULSe). Manchester-Polarität wird als PULarity gedruckt; senden Sie POLarity. SPI-Latch-Flanke ist :TRIGger:SPI:LATChedge, nicht ...:SPI:CLK:LATChedge (PG S.653, 484, 228, 661).

  15. Einige Abfragen akzeptieren Argumente. :TRIG:PATT:LEV? C2 und :TRIG:DEL:LEV? C2 geben C2,<value> zurück; :MEAS:SIMP:VAL? PKPK; :MEAS:ADV:P1:STAT? MEAN. Mehrere Abfragen geben das Wort OFF zurück, wenn die Statistik ausgeschaltet ist (:COUN:STAT:VAL?, :MEAS:ADV:P<n>:STAT?). Das PG sagt nicht, was eine ungültige Messung zurückgibt: Schützen Sie jede float()-Konvertierung.

  16. Fernbedienung sperrt das Bedienfeld nur auf Anfrage. :SYSTem:REMote ON sperrt Tasten und Touchscreen; OFF entsperrt sie (PG S.467). Ein Skript, das mit REMote ON abstürzt, lässt das Oszilloskop gesperrt, bis es zurückgesetzt wird.

  17. Dateipfade werden nicht auf den Typ überprüft. :SAVE:... leitet das Format nie aus der Erweiterung ab. Ein Pfad ohne Präfix geht an U-disk0/. Präfixe: local/, net_storage/, U-disk0/, U-disk1/ (PG S.407-413). :RECall:SERase löscht jede im Oszilloskop gespeicherte Benutzerdatei (PG S.397).

  18. Firmware-Updates dürfen nicht stromlos werden. Ein Stromausfall während eines Upgrades kann dazu führen, dass das Oszilloskop nicht mehr startet (UM S.294). Die Wiederherstellung erfolgt über ein Siglent-USB-Wiederherstellungspaket (SM S.57).

  19. Dokumentierte Standardwerte fehlen fast vollständig. Das PG gibt keine Standardwerte für Trigger, Decodierung oder Zähler an. Setzen Sie jeden Parameter, von dem eine Messung abhängt.

3. Verbindung herstellen

USB: hinterer USB Device-Anschluss (Typ B). Es wird als USBTMC mit Siglents Hersteller-ID 0xF4EC aufgeführt (PG S.813 Beispiel USB0::0xF4EC::0xEE38::<serial>::INSTR; die Produkt-ID 0xEE38 ist ein Beispiel, also besser auflisten als fest codieren). Unter Windows NI-VISA installieren (die Laufzeitumgebung reicht, PG S.19) oder pyvisa-py mit libusb verwenden.

LAN: Utility > Menu > I/O > LAN Config, DHCP oder statische IP, Maske, Gateway und DNS (UM S.289-290). SCPI-Entsprechungen benötigen in Anführungszeichen gesetzte Strings: :SYST:COMM:LAN:TYPE STATIC, :SYST:COMM:LAN:IPAD "192.168.1.50", :SYST:COMM:LAN:SMAS "255.255.255.0", :SYST:COMM:LAN:GAT "192.168.1.1", :SYST:COMM:LAN:MAC? (PG S.455-458).

ProtokollAdresseHinweise
VXI-11 (VISA)TCPIP0::<ip>::INSTR (auch TCPIP::<ip>::inst0::INSTR)PG-Beispiele verwenden beide
Raw SocketTCP-Port 5025Befehle enden mit \n. Antworten enden mit \n; binäre Blöcke enden mit 0A 0A
TelnetTCP-Port 5024Eingabeaufforderung SCPI>; beenden mit Ctrl+] dann quit (PG S.24)
Webhttp://<ip>Live-Fernbildschirm, Screenshot, BIN/CSV-Wellenformdownload, Bin-zu-CSV-Konverter, Firmware-Upgrade (UM S.299). Passwort bis zu 20 Byte: Utility > Menu > I/O > Web Server
VNCPort 5900-5999:SYST:COMM:VNCPort 5901. Geben Sie jedem Siglent-Gerät einen eigenen Port (UM S.290)
LXILXI 1.5 (Device Spec 2016)LAN Reset stellt DHCP, Ping, mDNS wieder her und löscht das Web-Passwort (UM S.289)

Emulation: Utility > Menu > I/O > Emulation auf "Tektronix" setzen schaltet den SCPI-Befehlssatz auf einen Tek-kompatiblen um (UM S.291). Lassen Sie es für alles in dieser Datei auf Siglent.

PyVISA-Setup, das für Wellenformübertragungen geeignet ist (PG S.837):

import pyvisa
rm = pyvisa.ResourceManager()            # oder ResourceManager('@py')
sds = rm.open_resource("TCPIP0::192.168.1.50::INSTR")
sds.timeout = 10000                      # ms, pro Lesevorgang; ein 10 Mpt WORD-Stück ist 20 MB (~2 s auf 100M LAN)
sds.chunk_size = 20 * 1024 * 1024
sds.write_termination = "\n"
# Lassen Sie read_termination unbelegt: mit gesetzter read_termination stoppt VISA
# binäre Lesevorgänge beim ersten 0x0A-Byte innerhalb der Wellenform. Entfernen Sie
# Textantworten selbst.
print(sds.query("*IDN?").strip())  # Sigl

…

[Dieser Abschnitt wurde aus Platzgründen gekürzt; der vollständige Inhalt des Skills ist in der Originaldatei verfügbar.]

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

Verwandte Skills