Communityコーディング&開発github.com

JaredCabot/siglent-sds2000x-hd

Siglent SDS2000X HD 12ビットオシロスコープ(SDS2104X/2204X/2354X/2504X HD)を操作、プログラム(SCPI over USB/LAN)、波形取得、検証、サービスするためのスキル:トリガ、デコード、MSO、FFT、パワー解析、ボード線図、AWG。

siglent-sds2000x-hd とは?

このスキルは、Siglent SDS2000X HDシリーズの4チャンネル12ビットオシロスコープ(SDS2104X HD〜SDS2504X HD)を遠隔制御・操作・保守するための包括的なガイドです。SCPIコマンド(USB(USBTMC)またはLAN(VXI-11、Raw Socket、Telnet)経由)を使用して、トリガ設定、シリアルデコード、MSO(ミックスドシグナルオシロスコープ)、FFT、パワー解析、ボード線図、AWG(内蔵波形発生器)などの全機能をプログラムできます。Pythonドライバ(PyVISAベース)を同梱しており、波形データの効率的な転送(WORD形式推奨)や、多くのトラップ(例:デフォルト精度が3桁、インターリーブによるメモリ・サンプルレートの変化、操作パネルロックの明示的な設定が必要など)を回避するためのベストプラクティスを提供します。このスキルは、公式マニュアル(User Manual、Programming Guide、Service Manual)に基づいていますが、実機でまだ検証されていない部分もあり、未確認の項目は明示されています。開発者やエンジニアがオシロスコープを自動化し、製品検証や試験システムに統合するために役立ちます。

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

Installed? Explore more コーディング&開発 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

Siglent SDS2000X HD:操作、遠隔制御、サービス

SDS2000X HDは、4チャンネル、12ビットオシロスコープファミリーです:SDS2104X HD(100 MHz)、SDS2204X HD(200 MHz)、SDS2354X HD(350 MHz)、SDS2504X HD(500 MHz)。2 GSa/s、200 Mpts/ch、10.1インチ1024 x 600タッチスクリーン、オプションの16デジタルチャンネル、オプションの25 MHzシングルチャンネルAWG、シリアルトリガとデコード、パワー解析、ボード線図を備えています。

参考資料:

略称ドキュメント用途
UMSDS2000X HD シリーズ ユーザーマニュアル EN01B (302 pp.)フロントパネル、全メニュー、動作
PGSDS シリーズ プログラミングガイド EN11G (855 pp.)SCPI。マルチモデルガイド。SDS2000X HDのサポートにはファームウェア1.2.0.2以降が必要
QSSDS2000X HD クイックスタート EN01CUMの短縮版。自己校正とクイックキャルの注意事項
SMSDS2000X HD サービスマニュアル EN01A性能検証、分解、基板テストポイント
DSSDS2000X HD データシート EN01A(4つのマニュアルには含まれていません。販売店コピーから取得)仕様。マニュアルはデータシートを参照。新版EN02Bが存在。数値は変更されている可能性あり

ページ参照は印刷ページ番号("PG p.482"、"UM p.73")で示します。

ここに記載された内容は、実機でまだ確認されていません。PGは10のモデルファミリーをカバーしており、その多くの表はテキスト抽出で行レイアウトが失われています。SDS2000X HDの値が再構築された場合は、このファイルにその旨が記載されています。UNVERIFIEDとマークされたものはすべてテストの手がかりです。ベンチがこのファイルと異なる場合は、ベンチを信頼し、スキルを更新してください。

目次

  1. 機器の概要
  2. 注意点
  3. 接続
  4. SCPIの規約、同期、エラー
  5. フロントパネルとタッチスクリーン
  6. 垂直システム
  7. 水平、取得、シーケンス、履歴、ズーム
  8. トリガ
  9. シリアルトリガとデコード
  10. デジタルチャンネル(MSO)
  11. 測定、カーソル、カウンタ、DVM
  12. 演算とFFT
  13. 検索、ナビゲート、マスクテスト、ヒストグラム
  14. パワー解析とボード線図
  15. リファレンス波形、メモリ波形、保存と呼び出し
  16. 表示
  17. 波形発生器(AWG)
  18. 波形データの読み取り
  19. システム、LAN、オプション、ファームウェア、自己校正
  20. 性能検証
  21. サービスとトラブルシューティング
  22. Pythonドライバ
  23. レシピ
  24. マニュアルの矛盾点

1. 機器の概要

項目値出典
チャンネル数4アナログ + EXTトリガ。SDS2000HD-16LAとSPL2016プローブで16デジタルUM p.34-35、64
ADC12ビットDS
サンプルレート2 GSa/s(インターリーブ時)、1 GSa/s(非インターリーブ時)DS、SM p.28
メモリ200 Mpts/ch(インターリーブ時)、100 Mpts/ch(非インターリーブ時)。平均化モードとERESモードでは20 / 10 Mpts(DS)UM p.73、DS
更新レート通常時最大100,000 wfm/s、シーケンス時最大500,000 wfm/sDS、UM p.77
シーケンス/履歴最大80,000セグメント/フレーム、最小トリガ間隔2 µsUM p.77、80
V/div1 MΩ時:0.5 mV〜10 V/div。50 Ω時:0.5 mV〜1 V/div(1Xプローブ)DS
垂直範囲8ディビジョンUM p.40
帯域幅制限20 MHz、200 MHz(ハードウェア)UM p.60-61
入力1 MΩ ±2% ∥ 16 pF ±2 pF、または50 Ω ±1%。1 MΩ時最大400 Vpk(DC+AC、DC〜10 kHz)。50 Ω時5 VrmsDS、SM p.46
DCゲイン精度仕様:±0.5%(5 mV〜10 V/div)、±1.5%(0.5〜4.95 mV/div)(DS)。PV制限:±0.6%(5.8 mV〜10 V/div)、±1.5%(1〜4.45 mV/div)(SM p.28-32)DS、SM
オフセット精度±(オフセットの0.5% + フルスケールの0.5% + 1 mV)SM p.33
タイムベース1 ns/div〜1000 s/div。初期±2 ppm、初年度エージング±0.5 ppmDS
チャンネル間スキュー≤ 100 psSM p.45
トリガレベル範囲画面中央から±4.1 div(チャンネル)。EXT:±0.61 V。EXT/5:±3.05 VPG p.492、DS
ホールドオフ8 ns〜30 s、または1〜10^8イベントPG
デジタル500 MSa/s、50 Mpts/ch。D0-D7とD8-D15の2つのしきい値グループ。-10〜+10 VDS、UM p.69
AWG(オプションFG)1 ch、25 MHz、125 MSa/s、14ビット、16 kpts任意波形、50 Ω時±1.5 V(Hi-Z時±3 V)DS、UM p.271
FFT最大2 Mpts(2^21)UM p.198
ディスプレイ10.1インチTFT、1024 x 600、静電容量式マルチタッチDS
I/OUSB 2.0ホスト x2(前面)、x1(背面)。USB 2.0デバイス(USBTMC)。10/100 LAN。EXTトリガ入力。Aux Out。AWG出力UM p.34-35
電源100-240 V 50/60 Hz、最大120 WSM p.9
環境動作時0〜50 °C。30 °Cで5-90% RH、40 °Cで50%。標高≤3000 mSM p.7

モデル依存のアナログ値(DS、代表値):立ち上がり時間は350 / 200 / 100 MHzモデルでそれぞれ1 / 1.7 / 3.5 ns、ノイズは1 mV/div 50 Ωでそれぞれ65 / 55 / 50 µVrms。

インターリーブ。チャンネルはCH1/CH2とCH3/CH4のペアになります。各ペアの片方のチャンネルのみがオンの場合、そのチャンネルは2 GSa/s、200 Mptsで動作します。ペアの両方のチャンネルがオンの場合、ペアは1 GSa/s、100 Mptsに低下します。したがって、CH1 + CH3はインターリーブのままですが、CH1 + CH2はインターリーブされません。UMはこれらを「シングルチャンネルモード」および「デュアルチャンネルモード」(UM p.73)と呼び、SMは「インターリーブモード」および「非インターリーブモード」(SM p.28)と呼びます。500 MHzモデルでは、レートが≤ 1 GSa/sの場合、約350 MHzのアンチエイリアシングフィルターが自動的に有効になります(UM p.42)。

フロントパネル(UM p.34):C1-C4 BNC、プローブコンペンセーション出力(1 kHz、0-3 V方形波)とグランドラグ、2 x USBホスト、デジタルプローブコネクタ、電源キー(オレンジ=スタンバイ、白=オン、SM p.57)。背面(UM p.35):EXT TRIG、Aux Out(デフォルトでトリガ出力。マスクテストオン時はパス/フェイルパルス)、WaveGen出力、LAN、USBデバイス、USBホスト、AC入力。BNCシェルはシャーシ(アース)電位にあります(SM p.10)。10 MHzリファレンス入出力はありません。

オプション(UM、DS):

オプション有効化される機能
SDS2000HD-FG内蔵AWG(ハードウェアは実装済み、ライセンスロック)。外部SAG1021Iにも必要
SDS2000HD-16LA16デジタルチャンネル(SPL2016プローブが必要)
SDS2000HD-PAパワー解析
-I2S、-1553B、-FlexRay、-CANFD、-SENT、-Manch(DSの名称)標準のI2C、SPI、UART、CAN、LINに加えてシリアルプロトコル
BW1T2、BW1T3、BW1T5、BW2T3、BW2T5、BW3T5(DSの名称)帯域幅アップグレード(100/200/350 → 200/350/500 MHz)

ライセンスは Utility > Menu > Software Options(タイプ、キー、Install、その後再起動、QS p.34)から、またはUSBスティックのルートにあるライセンスファイルからインストールします。インストールされていない「Temporary」ライセンスは最大30回使用できます(UM p.292)。デジタルチャンネルのデコードには、16LAとプロトコルライセンスの両方が必要です(UM p.65)。

2. 注意点

  1. 12ビットデータにはWORD転送が必要です。 :WAVeform:WIDTh のデフォルトはBYTEです(プリアンブルのCOMM_TYPEデフォルトは0 = バイト、PG p.754)。これにより下位ビットが切り捨てられます。:WAV:DATA? の前に :WAV:WIDT WORD を送信してください。ワードは符号付きint16、デフォルトでLSBファースト、左詰めで下位ビットはゼロ埋めされます。スケーリングにはプリアンブルの code_per_div(オフセット0xA4)を使用し、ハードコードされた25、30、7680は使用しないでください(PG p.753、758)。

  2. *IDN?、*OPC?、*RST のみがドキュメント化されています(PG p.29)。ドキュメント化されたエラーキュー、*CLS、*ESR?、*STB? はありません。範囲外の数値は通常、警告なしでクランプされます(:ACQ:SRAT、:TIM:SCAL、ズーム、ゲートカーソル)。重要な設定を行った後は、必ず読み戻してください。:SYSTem:ERRor?、*ESR?、およびPG自身のC#サンプルで使用されているレガシー INR? は試す価値があります(未確認)。

  3. クエリの精度のデフォルトは有効数字3桁です。 :FORMat:DATA は、NR3応答の桁数を設定します。SINGle = 7、DOUBle = 14、CUSTom,<1-64>(PG p.34)。デフォルトでは、9.99998 MHz信号に対して :TRIG:FREQ? は "1.00E+07" を返します。接続後、すぐに :FORM:DATA DOUB を送信してください。

  4. ステータス文字列は大文字小文字が混在し、アポストロフィが含まれます。 :TRIGger:STATus? は Arm、Ready、Auto、Trig'd、Stop、Roll のいずれかを返します(PG p.483)。完全一致で比較するか、両方とも大文字に変換してください。

  5. *OPC? は、保留中の操作が完了するまでインターフェースをブロックします(PG p.30)が、PGはこれが取得を待つとは述べていません。単発取得の場合、:TRIG:MODE SINGle を送信し、:TRIG:STAT? をポーリングして Stop を読み取るまで待機してください。これはPGのC#サンプルが行っている方法です(PG p.827-828)。

  6. 2つの情報源がある設定。 シリアルトリガ設定とデコード設定は完全に別物です(UM p.117)。デコードのボーレートを変更しても、トリガのボーレートは変更されません。:DECode:BUS<n>:COPY FROMtrigger(トリガ→デコード)または TOTRigger(デコード→トリガ)でコピーし、変更のたびに再度コピーしてください。PGのCOPYに関するサンプルは、方向を逆に説明しています(PG p.143)。パラメータ定義を信頼してください。

  7. しきい値とレベルは、チャンネルの現在のスケールとオフセットの±4.1ディビジョンに制限されます([-4.1*vdiv - offset, 4.1*vdiv - offset])。これは、トリガレベル、デコードしきい値、検索レベル、カウンタレベルに適用されます。最初にV/divとオフセットを設定し、次にレベルを設定してください。範囲外の値はクランプまたは拒否されますが、PGはどちらであるかを明記していません。

  8. インターリーブはメモリとレートを変更します。 ペアの2番目のチャンネル(CH1+CH2またはCH3+CH4)をオンにすると、サンプルレートとメモリが半分になります。:ACQ:MDEPth は現在のモードのトークンのみを受け入れます。インターリーブ時は 20k|200k|2M|20M|200M、非インターリーブ時は 10k|100k|1M|10M|100M(PG p.40)。最初にチャンネルを設定し、次にメモリ深度を設定してください。V/divまたはインターリーブモードを変更すると、バックグラウンドADCキャリブレーションがトリガーされ、取得が一時的に中断されます(QS p.34)。

  9. 実行中、解析は画面上のレコードのみを使用します。 Fixed Memoryモードでも、測定、演算、デコード、検索は、停止ボタンを押すまで画面外のサンプルを無視します(UM p.76)。

  10. 平均化モードとERESはシーケンスモードでは使用できず(PG p.47)、メモリ深度が制限され(PG p.41。DSによると20/10 Mpts)、ERESは帯域幅を削減します。3ビットでは0.007 x Fs(UM p.75)。

  11. :CHANnel<n>:SCALe? はプローブ倍率を含んだ値です(PG p.58)。送信するオフセットとレベルも同様です。スケール、オフセット、トリガレベルの前に :CHAN<n>:PROBe を設定してください。波形プリアンブルのV/divとオフセットはプローブを除外しています。プローブチップの電圧を得るには、0x148のプローブ倍率を乗算してください。

  12. パッシブプローブには1 MΩが必要です。 50 Ωでは10Xプローブは有用な値を読み取れず、50 Ω入力は大電力入力ではありません(UM p.62。DSによると最大5 Vrms)。スクリプトから、高電圧信号が印加されたチャンネルを50 Ωに切り替えないでください。

  13. 16進数フィールドは10進数で指定し、「ドントケア」は最大値の1つ大きい値です。 :TRIG:CAN:ID 125935441(0x7819F51の場合)。データバイト:256 = 0xXX。IICアドレス1024、CAN 11ビットID 2048、29ビットID 536870912、LIN ID 64、FlexRay ID 2048(PG p.640-712)。

  14. 誤った列挙型。 BITorderは {LSM|MSB} と印刷されています。LSB を送信してください。:TRIGger:TYPE と :SEARch:MODE は PULSE(PULSe サブシステム名ではありません)を取ります。マンチェスター極性は PULarity と印刷されています。POLarity を送信してください。SPIラッチエッジは :TRIGger:SPI:LATChedge であり、...:SPI:CLK:LATChedge ではありません(PG p.653、484、228、661)。

  15. 一部のクエリは引数を取ります。 :TRIG:PATT:LEV? C2 と :TRIG:DEL:LEV? C2 は C2,<value> を返します。:MEAS:SIMP:VAL? PKPK。:MEAS:ADV:P1:STAT? MEAN。いくつかのクエリは、統計がオフの場合に数値の代わりに OFF という単語を返します(:COUN:STAT:VAL?、:MEAS:ADV:P<n>:STAT?)。PGは無効な測定が何を返すかを明記していません。すべてのfloat()変換をガードしてください。

  16. リモートは、指定しない限りパネルをロックしません。 :SYSTem:REMote ON はキーとタッチスクリーンをロックします。OFF で解除します(PG p.467)。REMote ON のままクラッシュしたスクリプトは、解除されるまでスコープをロックしたままにします。

  17. ファイルパスはタイプに対してチェックされません。 :SAVE:... は拡張子からフォーマットを推測することはありません。プレフィックスのないパスは U-disk0/ に保存されます。プレフィックス:local/、net_storage/、U-disk0/、U-disk1/(PG p.407-413)。:RECall:SERase は、スコープ内部に保存されているすべてのユーザーファイルを削除します(PG p.397)。

  18. ファームウェアアップデート中は電源を切らないでください。 アップグレード中の停電は、スコープが起動できなくなる可能性があります(UM p.294)。回復にはSiglentのUSBリカバリパッケージが必要です(SM p.57)。

  19. ドキュメント化されたデフォルト値はほとんどありません。 PGはトリガ、デコード、カウンタのデフォルト値を明記していません。測定が依存するすべてのパラメータを設定してください。

3. 接続

USB:背面のUSBデバイスポート(タイプB)。SiglentのベンダーID 0xF4ECでUSBTMCとして認識されます(PG p.813の例 USB0::0xF4EC::0xEE38::<シリアル>::INSTR。プロダクトID 0xEE38は例なので、ハードコードせずに列挙してください)。WindowsではNI-VISA(ランタイムエンジンで十分、PG p.19)をインストールするか、libusbと共にpyvisa-pyを使用してください。

LAN:Utility > Menu > I/O > LAN Config。DHCPまたは固定IP、マスク、ゲートウェイ、DNS(UM p.289-290)。SCPI相当は引用符で囲んだ文字列を取ります::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 p.455-458)。

プロトコルアドレス注記
VXI-11(VISA)TCPIP0::<ip>::INSTR(TCPIP::<ip>::inst0::INSTR も可)PGの例では両方を使用
ローソケットTCPポート5025コマンドは \n で終了。応答は \n で終了。バイナリブロックは 0A 0A で終了
TelnetTCPポート5024プロンプト SCPI>。終了するにはCtrl+] を押してから quit(PG p.24)
Webhttp://<ip>ライブリモート画面、スクリーンショット、BIN/CSV波形ダウンロード、bin-to-CSVコンバーター、ファームウェアアップグレード(UM p.299)。パスワードは最大20バイト:Utility > Menu > I/O > Web Server
VNCポート5900-5999:SYST:COMM:VNCPort 5901。各Siglent機器に固有のポートを割り当ててください(UM p.290)
LXILXI 1.5(デバイス仕様2016)LAN ResetでDHCP、ping、mDNSを復元し、Webパスワードをクリアします(UM p.289)

エミュレーション:Utility > Menu > I/O > Emulation を "Tektronix" に設定すると、SCPIセットがTek互換に切り替わります(UM p.291)。このファイルの内容には、Siglentのままにしておいてください。

波形転送に適したPyVISAのセットアップ(PG p.837):

import pyvisa
rm = pyvisa.ResourceManager()            # または ResourceManager('@py')
sds = rm.open_resource("TCPIP0::192.168.1.50::INSTR")
sds.timeout = 10000                      # ms、読み取りごと。10 Mpt WORDの塊は20 MB(100M LANで約2秒)
sds.chunk_size = 20 * 1024 * 1024
sds.write_termination = "\n"
# read_terminationは設定しないでください。設定すると、VISAは波形内の最初の0x0Aバイトでバイナリ読み取りを停止します。
# テキスト応答は自分でストリップしてください。
print(sds.query("*IDN?").strip())  # Sigl…

…

[翻訳のために省略]

Individual skills in this repo

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

関連スキル