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

JaredCabot/keysight-truevolt-dmm

Keysight Truevolt シリーズ ベンチDMM (34460A/34461A/34465A/34470A) の操作、プログラミング (USB/LAN/GPIB 経由のSCPI)、設定を行うためのスキルです。測定設定、トリガ、演算、データログ、デジタイズ、セカンダリ測定、ステータス、エラー、ファイル、I/O、校正、および完全なドキュメント化されたコマンドセットをカバーします。

keysight-truevolt-dmm とは?

このスキルは、Keysight Truevolt シリーズ DMM (34460A/34461A/34465A/34470A) を SCPI コマンドで制御・設定するための包括的なリファレンスです。USB、LAN (VXI-11、HiSLIP、Raw Socket、Telnet)、GPIB などのインターフェースをサポートし、DC/AC 電圧・電流、2線式/4線式抵抗、静電容量、周波数/周期、温度、導通、ダイオード測定の全機能をカバーします。特に、トリガ制御、サンプリング (NPLC、アパーチャ)、演算 (スケーリング、フィルタリング)、データロギング、デジタイズ機能に重点を置いており、各機種 (34460A/34461A/34465A/34470A) の差異やライセンスオプション (DIG、MEM、SEC) も詳細に説明します。Python のサンプルコード (pyvisa / raw socket) も含まれており、エンジニアや自動化技術者が測定タスクを効率的にプログラミングできるよう支援します。

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

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

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

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

ドキュメント

Keysight Truevolt シリーズ DMM: 34460A / 34461A / 34465A / 34470A

Keysight Truevolt シリーズ オペレーティング・アンド・サービス・ガイド (文書番号 34460-90901、英語版; "OSG p.NNN" はその印刷ページ番号) に記載された、完全なドキュメント化された機能セットです。特に断りのない限り、ここにあるすべての情報はガイドからのものです。[推測] とマークされたもの以外は。未文書の DIAGnostic/サービス コマンド、AC モードのバリアント、ファームウェア内部については、別途 344xxA Firmware Supplement を参照してください。このスキルは公式の機能セットのみを扱います。

構文規約: {A|B} は必須の選択、[X] はオプションのノードまたはパラメータ、<x> はユーザが指定する値を示します。SCPI キーワードは短縮形を大文字で示します; 小文字の末尾はオプションです (VOLTage は VOLT または VOLTAGE を受け付けます)。MIN、MAX、DEF は数値 <value> が使用可能な場所ならどこでも受け付けられ、数値クエリは [{MIN|MAX|DEF}] を取って現在値の代わりに制限値を問い合わせることができます。ブールパラメータは {OFF|0|ON|1} を受け付けます; クエリは 0 または 1 を返します。特に "(no query)" と注記がない限り、表示されているすべての set コマンドには対応するクエリがあります。

モデル、オプション、および差異

モデル桁数注記
34460A6½基本 DMM。LAN とアクセサリキットはオプション。10 A 端子なし。
34461A6½34401A の代替。LAN とアクセサリキットは標準装備。10 A 端子あり。
34465A6½下記の 34465A/70A のみの機能を追加。
34470A7½最高分解能; 34465A と同じ機能セット。

コマンドとパラメータの大部分は 34465A/70A のみ です: APERture と APERture:ENABled の全ノード; CALCulate:SCALe の GAIN/OFFSet/REFerence/UNIT および PCT と SCALe (Mx-B) スケール関数; CALCulate:SMOothing; SAMPle:SOURce / SAMPle:TIMer / SAMPle:COUNt:PRETrigger; TRIGger:LEVel と TRIGger:SOURce INTernal (レベルトリガ、DIG が必要); FORMat バイナリ転送と MMEMory:FORMat:READing; セカンダリ測定の "CALCulate:DATA" と "PTPeak" の選択; SYSTem:ACALibration と *CAL?; 抵抗/温度の OCOMpensated と POWer:LIMit; CURRent:SWITch:MODE; 熱電対トランスデューサ; DC のみの 1 µA および 10 µA 電流レンジと 1 GΩ 抵抗レンジ; そしてデータログおよびデジタイズ収集モード。これらを 34460A/61A に送信すると -203,"Command protected; feature not available on this model" が返ります。(ヒストグラム、dB および dBm スケール関数、その他のセカンダリ測定の選択肢は 4 機種すべてで使用可能です。)

ライセンスオプション。 SYSTem:LICense:CATalog? で読み戻せます:

  • DIG - デジタイズおよび高度 (レベル) トリガ (34465A/70A)。最新ファームウェアでは標準搭載されています。DIG がない場合の最短アパーチャは 200 µs、最短 NPLC は 0.02 です; DIG がある場合は 20 µs、NPLC は 0.001 まで可能です。
  • MEM - ディープ読み取りメモリ: 50,000 ではなく 2,000,000 読み取り (34465A/70A)。
  • SEC - NISPOM ファイルセキュリティ。
  • LAN、GPB - LAN/LXI インターフェースおよびユーザーインストール可能な GPIB モジュール。

読み取りメモリの深さ (MEM なし): 34460A 1,000; 34461A 10,000; 34465A/70A 50,000 (OSG p.355)。

接続

Keysight VISA リソース文字列。インターフェースごとに (USB、LAN、Web はデフォルトで有効; GPIB はモジュールが必要):

  • USB (USB-TMC): USB0::<vid>::<pid>::<serial>::0::INSTR。正確な文字列は [Shift] > [Help] > About または任意の VISA ブラウザで確認できます。
  • LAN VXI-11: TCPIP0::<ip>::inst0::INSTR
  • LAN HiSLIP: TCPIP0::<ip>::hislip0::INSTR
  • LAN raw ソケット: ポート 5025 への TCP (TCPIP0::<ip>::5025::SOCKET); 各コマンドは \n で終了します。
  • LAN Telnet: ポート 5024 (telnet <ip> 5024)。
  • GPIB: GPIB0::<addr>::INSTR; アドレスは SYSTem:COMMunicate:GPIB:ADDRess <n> で設定 (デフォルト 22)。

デフォルト LAN は DHCP + Auto-IP がオン; フォールバックアドレス 169.254.x.x; ホスト名 K-<model>-nnnnn (シリアルの最後の 5 桁)。インターフェースおよび LAN サービスの変更は、電源を入れ直した後にのみ有効になります (OSG p.473)。

import pyvisa
rm = pyvisa.ResourceManager()
dmm = rm.open_resource("TCPIP0::192.168.1.50::inst0::INSTR")
dmm.timeout = 10000                      # ms; 長い NPLC や大きな SAMP:COUN の場合は上げてください
print(dmm.query("*IDN?"))                # Keysight Technologies,34465A,<serial>,<fw>
print(dmm.query("MEAS:VOLT:DC? 10,0.001"))

VISA なしの raw ソケット:

import socket
s = socket.create_connection(("192.168.1.50", 5025), timeout=10)
s.sendall(b"MEAS:VOLT:DC? 10,0.001\n")
print(s.recv(256).decode().strip())

インターフェースの有効化/無効化: SYSTem:COMMunicate:ENABle {OFF|ON}, {GPIB|HISLip|USB|LAN|SOCKets|TELNet|VXI11|WEB|USBMtp|USBHost}。

測定モデル

制御の度合いが低いものから高いものへ、3 つのレイヤー:

  1. MEASure:<fn>? - ワンショット: 機能をプリセットし、レンジを指定しない場合はオートレンジし、トリガし、読み取り値を返します。CONFigure + READ? をデフォルトで実行するのと同等。最も簡単で、柔軟性は最も低い。
  2. CONFigure:<fn> の後 READ? - 機能を設定し、その間に [SENSe:] コマンドで調整し、READ? でトリガして返します。CONFigure はトリガを アームしません (OSG p.197)。CONFigure? は現在の機能とそのレンジ/分解能を引用符で囲まれた文字列として返します。
  3. CONFigure / [SENSe:] / TRIGger 設定、その後 INITiate でアームし、FETCh? で取得します。トリガされたバースト、データログ、デジタイズにこれを使用します。

取得および制御動詞:

  • INITiate[:IMMediate] - アーム: 機器をアイドル状態からトリガ待ち状態に移行します。以前の読み取り値をメモリからクリアし、新しい読み取り値を取得するたびに保存します。オーバーラップ (すぐに戻ります)。
  • READ? = INITiate + FETCh?。
  • FETCh? - 再トリガや消去を行わずに、メモリ内のすべての読み取り値を返します。
  • R? [<max>] - 最も古い読み取り値を返して 消去 します (FIFO); メモリを溢れさせずに長時間の収集中に読み取るために使用します。
  • ABORt - 進行中の測定を停止し、トリガアイドルに戻ります。トリガ待ちや長時間のバーストから抜け出すために使用します。
  • INITiate あたりの総読み取り数 = TRIGger:COUNt x SAMPle:COUNt。
# 高速トリガバースト、100 回の読み取り、10 V レンジ、BUS トリガ
dmm.write("CONF:VOLT:DC 10,1e-5")
dmm.write("VOLT:DC:NPLC 1")
dmm.write("TRIG:SOUR BUS; :SAMP:COUN 100")
dmm.write("INIT")
dmm.write("*TRG")
dmm.query("*OPC?")                       # バーストが終了するのを待つ
vals = dmm.query("FETC?").strip().split(",")

測定機能

CONFigure:<fn> / MEASure:<fn>?、または [SENSe:]FUNCtion[:ON] "<function>" で選択します。13 の有効な機能文字列: "VOLTage[:DC]"、"VOLTage[:DC]:RATio"、"VOLTage:AC"、"CURRent[:DC]"、"CURRent:AC"、"RESistance" (2 線式)、"FRESistance" (4 線式)、"CAPacitance"、"FREQuency"、"PERiod"、"TEMPerature"、"CONTinuity"、"DIODe"。クエリは短縮形を返します。例: "CURR:AC"。各機能は独自のレンジ、分解能、設定を保持します; 切り替えると復元されます。機能を変更すると、すべての CALCulate 演算状態がオフになります。

導通とダイオードを除くすべての測定機能は、RANGe <v>、RANGe:AUTO {OFF|ON|ONCE}、RESolution <v>、NULL[:STATe]、NULL:VALue、NULL:VALue:AUTO、および以下の積分制御を受け付けます。オートレンジはレンジの 120% を超えると上がり、10% を下回ると下がります。固定レンジのオーバーロードはパネルに "Overload" と表示され、リモートでは 9.9E37 を返します。

DC 電圧 - VOLTage[:DC] と比 VOLTage[:DC]:RATio

  • レンジ 100 mV、1 V、10 V、100 V、1000 V (:RANGe {<v>|MIN|MAX|DEF}、デフォルトはオートレンジ; DC デフォルトレンジは 1000 V、オートレンジオン)。
  • VOLTage[:DC]:IMPedance:AUTO {OFF|ON} - OFF ですべてのレンジで 10 MΩ に固定; ON では 100 mV/1 V/10 V で >10 GΩ ("Hi-Z")、100 V/1000 V で 10 MΩ。CONFigure と MEASure? はこれを強制的に OFF にします。デフォルト OFF。
  • VOLTage[:DC]:ZERO:AUTO {OFF|ON|ONCE} - オートゼロ、デフォルト ON。
  • :RATio は HI-LO 入力を Sense 端子の DC リファレンスに対して測定します; DC 設定を使用します; 比では NULL は使用できません。セカンダリ "SENSe:DATA" で生の信号とリファレンスを読み取ります。

AC 電圧 - VOLTage:AC

  • レンジ 100 mV、1 V、10 V、100 V、1000 V (:RANGe デフォルト 10 V; MAX は 1000 V、ただしトップレンジでは 750 VAC rms の安全制限があります)。True-RMS、AC 結合。
  • VOLTage:AC:BANDwidth {3|20|200} - AC フィルタ (Hz): 3 (スロー)、20 (ミディアム、デフォルト)、200 (ファスト)。存在する最も低い周波数に設定します。Truevolt RMS アルゴリズムはクレストファクタに敏感ではないため、クレストファクタのディレーティングは必要ありません (OSG p.163)。読み取りあたりのセトリング時間: 3 Hz 2.5 s、20 Hz 0.625 s、200 Hz 0.025 s。

DC / AC 電流 - CURRent[:DC] / CURRent:AC

  • 3 A 端子レンジ: 100 µA、1 mA、10 mA、100 mA、1 A、3 A。34465A/70A は DC のみの 1 µA および 10 µA レンジを追加します。(100 µA と 1 mA レンジは全機種に存在します)。
  • CURRent:{AC|DC}:TERMinals {3|10} - 3 A または 10 A の前面端子を選択します (34461A/65A/70A; 34460A には 10 A 端子なし)。:RANGe で 10 A レンジを選択することはできません。TERMinals 10 または CONF:CURR 10 を使用します。10 A は前面端子のみです。
  • CURRent:SWITch:MODE {FAST|CONTinuous} (34465A/70A、3 A 端子) - 内部シャント切り替え動作。CONTinuous (デフォルト) は瞬間的な開放回路を回避しますが、レンジ変更が最大 3 倍遅くなります; FAST は短時間の開放回路を許容します。
  • CURRent:AC:BANDwidth {3|20|200} は AC 電圧と同様です; ACI セトリング時間 3 Hz 1.66 s、20 Hz 0.25 s、200 Hz 0.025 s。DC 電流には ZERO:AUTO があります。

2 線式 / 4 線式抵抗 - RESistance / FRESistance

  • レンジ 100 Ω、1 kΩ、10 kΩ、100 kΩ、1 MΩ、10 MΩ、100 MΩ (デフォルト 1 kΩ、オートレンジオン)。34465A/70A は 1 GΩ を追加します。
  • OCOMpensated {OFF|ON} (34465A/70A) - オフセット補償; 異なるソース電流での 2 回の読み取りが熱起電力を打ち消します。100 Ω から 100 kΩ でのみ動作します; 読み取り時間が約 2 倍になります。
  • POWer:LIMit[:STATe] {OFF|ON} (34465A/70A) - 低電力抵抗測定、ソース電流が少なくなります; 100 Ω から 100 kΩ で効果的。
  • RESistance:ZERO:AUTO {OFF|ON|ONCE} - 2 線式オートゼロ (デフォルト ON)。4 線式は常にオフセットが相殺されているため、FRESistance には ZERO:AUTO がありません。リード抵抗を打ち消すには FRESistance を使用します; RESistance:NULL は 2 線式でそれを相殺します。

静電容量 - CAPacitance

  • レンジ 1 nF、10 nF、100 nF、1 µF、10 µF、100 µF、デフォルト オートレンジ。オートレンジがオフの場合、オーバーレンジはオーバーロードを報告しません; オーバーロードは、測定がタイムアウトした場合 (大きすぎる)、または入力に DC や短絡がある場合に発生します。
  • ガイドの導入部では 34465A/70A のみとフラグが立てられていますが、静電容量コマンドのページにはモデルに関する注記はありません。利用可能かどうかはモデル依存として扱い、不明な場合は SYSTem:LICense:CATalog? / -203 で確認してください。

周波数 / 周期 - FREQuency / PERiod

  • 電圧入力でのレシプロカルカウンティング、3 Hz ~ 300 kHz。FREQ と PER は APERture、RANGe:LOWer、VOLTage:RANGe の値を共有します; NULL とセカンダリは独立しています。
  • {FREQuency|PERiod}:APERture {1e-3|10e-3|100e-3|1} - ゲート時間 1 ms、10 ms、100 ms (デフォルト)、1 s; 1 ms は 34465A/70A のみ。ゲートが長いほど分解能が高くなります。
  • :RANGe:LOWer {3|20|200} - AC フィルタ / 予想される最低入力周波数、デフォルト 20 Hz; ゲートはそれを待ちます。
  • :VOLTage:RANGe {<v>|MIN|MAX|DEF} は入力電圧レンジを設定します (デフォルト 10 V)、:VOLTage:RANGe:AUTO はそのオートレンジ、:TIMeout:AUTO {OFF|ON} はゲートタイムアウト (OFF は信号なしで 1 秒待機; ON はフィルタに応じてスケーリングされ、タイムアウト時には 0.0 を返します; これは唯一の不揮発性 SENSe 設定です)。

温度 - TEMPerature

  • TRANsducer:TYPE {FRTD|RTD|FTHermistor|THERmistor|TCouple} - 4 線式 RTD、2 線式 RTD、4 線式サーミスタ、2 線式サーミスタ、熱電対 (デフォルト FRTD; TCouple は 34465A/70A のみ)。
  • CONFigure:TEMPerature [{FRTD|RTD|FTHermistor|THERmistor|TCouple|DEF} [,{<type>|DEF} [,1,{<resolution>|MIN|MAX|DEF}]]]。<type> はプローブ値です (例: CONF:TEMP FRTD,85)。1 プレースホルダーは予約済みです。
  • RTD: TRANsducer:{FRTD|RTD}:RESistance[:REFerence] <r0> は R0 を設定します (デフォルト 100 Ω; 範囲は 34460A/61A で 80-120 Ω、34465A/70A で 49-2100 Ω)、さらに OCOMpensated と POWer:LIMit (34465A/70A) があります。
  • サーミスタ: フロントパネルは 2.2 kΩ (44004)、5 kΩ (44007)、10 kΩ (44006) のプローブ (Steinhart-Hart) をサポートしていますが、リモートコマンド TRANsducer:{FTHermistor|THERmistor}:TYPE は 5000 のみを受け付けます。他のサーミスタタイプはフロントパネルから設定してください。
  • 熱電対 (34465A/70A): TCouple:TYPE {E|J|K|N|R|T} (デフォルト J)、TCouple:RJUNction:TYPE {INTernal|FIXed}、TCouple:RJUNction <temp> は固定基準用 (常に °C、-20 ~ +80)、TCouple:RJUNction:OFFSet:ADJust <temp> (-20 ~ +20)、TCouple:CHECk {OFF|ON} は接続が切れた接合部を通知します。SYSTem:TEMPerature? は内部基準温度を読み取ります。
  • UNIT:TEMPerature {C|F|K} は報告単位を設定します (デフォルト C)。

導通 / ダイオード - CONTinuity / DIODe

  • レンジや分解能はありません; CONFigure:CONTinuity、CONFigure:DIODe。FUNCtion を介してのみ選択可能 ([SENSe:] サブツリーはありません)。

分解能、NPLC、アパーチャ

分解能、NPLC、アパーチャのいずれかを設定すると、残りは自動的に決まります (DC 機能、抵抗、温度に適用; AC と周波数は代わりにフィルタとゲートを使用します)。

  • [SENSe:]<fn>:NPLC {<PLCs>|MIN|MAX|DEF} - 電源ラインサイクル単位の積分時間、デフォルト 10。許可されるセット:
    • 34460A/61A: 0.02、0.2、1、10、100
    • DIG なしの 34465A/70A: 0.02、0.06、0.2、1、10、100
    • DIG ありの 34465A/70A: 0.001、0.002、0.006、0.02、0.06、0.2、1、10、100 1、10、100 PLC のみが電源ライン (ノーマルモード) ノイズ除去を提供します。
  • [SENSe:]<fn>:APERture <seconds> (34465A/70A) は積分時間を直接設定します: 200 µs ~ 1 s、または DIG ありで 20 µs ~ 1 s、分解能 2 µs、デフォルト 100 ms。APERture を送信すると APERture:ENABled ON が設定されます; NPLC または RESolution、あるいは CONFigure/MEASure? を送信すると OFF になります。最後に送信された NPLC/アパーチャが優先されます。
  • [SENSe:]<fn>:RESolution <v> は測定単位 (V、A、Ω) であり、桁数ではありません; MIN は最高、MAX は最低; デフォルトは 10 PLC に対応します。
  • レンジと分解能のテーブル (OSG p.450-453) は、各レンジと NPLC を分解能の数値にマッピングしています (例: 34461A、10 V レンジ、10 NPLC で 10 µV)。正確な数値は記憶ではなく、そちらで確認してください。

トリガと読み取り取得

TRIGger:SOURce {IMMediate|BUS|EXTernal|INTernal|HOLD|MANual|TLINk?

(翻訳はここまでで切り詰められています。実際の SKILL.md はこの後に続きます。)

Individual skills in this repo

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

関連スキル