mcpField
K
Keithley SourceMeter SMU

Keithley SourceMeter SMU

ローカル
github.com科学・教育235 週間前に更新

Keithley SourceMeter SMU について

Keithley SourceMeter SMUは、Keithley SourceMeter向けのMCPサーバーです。電圧・電流の設定と測定、上限付きIVスイープに対応し、2400シリーズSCPI、2450ファミリーSCPI、2600B TSPを扱います。実機検証はまだ行われていません。

主な機能

  1. 01コンプライアンス上限付きの電圧・電流設定
  2. 02電圧、電流、電力の測定
  3. 03線形・対数・往復IVスイープ
  4. 042400・2450 SCPIと2600B TSPに対応
  5. 05スイープ後の出力オフ

活用シーン

  1. 01LEDやフォトダイオードのIV曲線測定
  2. 024線式による低抵抗DUTの測定
  3. 03デバイスへの上限付き電圧・電流印加
  4. 04スイープデータの保存と曲線フィット

MCP 対応

MCPサーバーとして、機器設定、測定値、状態確認、出力制御のツールと、点数・時間に上限を設けたIVスイープを提供します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"k-dense-ai-labmcp-keithley-smu": {
"command": "uvx",
"args": [
"labmcp-keithley-smu"
],
"env": {
"LABMCP_ADDRESS": "<LABMCP_ADDRESS>",
"LABMCP_SIMULATE": "<LABMCP_SIMULATE>",
"LABMCP_READ_ONLY": "<LABMCP_READ_ONLY>",
"LABMCP_LIMITS": "<LABMCP_LIMITS>"
}
}
}
}
起動コマンドuvx labmcp-keithley-smu
設定が必要な環境変数
LABMCP_ADDRESSInstrument address, e.g. serial:///dev/ttyUSB0 or tcp://192.168.1.50:5025
LABMCP_SIMULATESet to 1 to use the built-in simulator (no hardware)
LABMCP_READ_ONLYSet to 1 to disable all state-changing tools
LABMCP_LIMITSSafety limit overrides, e.g. max_temperature_c=80

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
pypilabmcp-keithley-smu0.1.2

ツール

12

掲載時のツール一覧 · 2 週間前に更新

このツールにパラメーターはありません。

詳細

Keithley SourceMeter SMU — MCP サーバー

AI エージェントから、コンプライアンス制限付きで電圧または電流を印加し、V と I を測定して、範囲を制限した IV スイープ(リニア、対数、デュアル)を Keithley(Tektronix)SourceMeter SMU で実行できます。問題が発生した場合でも、すべてのスイープの終了時には出力がオフになります。このサーバーは、Keithley の 3 種類のリモートプロトコル(2400 シリーズ SCPI、2450 ファミリー SCPI、2600B TSP)に対応しています。

パッケージlabmcp-keithley-smu
計測器2400、2400-LV、2401、2410、2420、2425、2430(DC モード)、2440 · 2450、2460、2461、2470(SCPI コマンドセット) · 2601B、2602B、2604B、2611B、2612B、2614B、2634B、2635B、2636B
インターフェースGPIB、USB(USBTMC)、Ethernet(VXI-11/raw socket 5025)、RS-232(2400 シリーズ)。VISA または tcp:// 経由
プロトコルSCPI:2400 Series User's Manual 2400S-900-01 Rev. K §18、2450 Reference Manual 2450-901-01 Rev. D §6。TSP:2600B Reference Manual 2600BS-901-01 Rev. F §9
ステータス🧪 シミュレーション済み:3 種類すべてのプロトコルのワイヤーレベルシミュレーターでテスト済みですが、ハードウェアでは未検証です。ハードウェアでのテストを報告

ハードウェアなしで試す

uvx labmcp-keithley-smu --simulate --check                                   # 2450 + 1 kΩ resistor
uvx labmcp-keithley-smu --simulate --option dialect=2600 --option sim_dut=diode --check
uvx labmcp-keithley-smu --simulate --option dialect=2400 --option sim_resistance_ohm=47 --check

シミュレーション対象の DUT は抵抗(デフォルトは 1 kΩ)または 1N4148 相当のダイオード(Shockley の式、I_s = 2.52 nA、n = 1.752、R_s = 0.568 Ω)です。コンプライアンスによるクランプは、実際の SMU と同様に動作します。

SMU に接続する

  1. 計測器側の設定。
    • 2400 シリーズ: GPIB(デフォルトアドレス 24)または RS-232 を使用します。RS-232 を使用する場合は、MENU > COMMUNICATION > RS-232 で、ボーレート 9600、データビット 8、パリティなし、終端文字 LF、フロー制御なしに設定します。
    • 2450/2460/2461/2470: SCPI コマンドセットを使用します(MENU > System > Settings > Command Set > SCPI で設定し、その後再起動します)。計測器が TSP モードの場合、サーバーは手順を表示して停止します。SCPI2400 エミュレーションモードでは、2400 プロトコルを使用して制御します。±21 V を超える場合、2450 では安全用のインターロックを閉じる必要があります。
    • 2600B: 出荷時の状態(TSP)で動作します。localnode.prompts は無効のままにしてください(デフォルト)。有効にすると、プロンプトが応答に混入します。
  2. アドレスを確認: uvx labmcp ports(または python -m pyvisa info)を実行します。GPIB と USBTMC には、GPIB に対応した VISA ライブラリが必要です。NI-VISA はすべての接続方式に対応します。pyvisa-py は USBTMC/LAN に対応し、gpib-ctypes/linux-gpib があれば GPIB にも対応します。
  3. 接続をテスト:
    uvx labmcp-keithley-smu --address GPIB0::24::INSTR --check
    uvx labmcp-keithley-smu --address USB0::0x05E6::0x2450::04096331::INSTR --check
    uvx labmcp-keithley-smu --address tcp://192.168.1.50:5025 --check             # 2450 / 2600B LAN
    uvx labmcp-keithley-smu --address TCPIP0::192.168.1.51::inst0::INSTR --option channel=b --check   # 2602B, SMU B
    
    プロトコルは *IDN?(2450 ファミリーでは *LANG? も)から自動検出されます。--option dialect=2400|2450|2600 で指定することもできます。

MCP クライアントに追加する

Claude Code

claude mcp add smu -- uvx labmcp-keithley-smu --address GPIB0::24::INSTR --limit max_voltage_v=5 --limit max_current_a=0.02

Claude Desktop/Cursor/Windsurf(claude_desktop_config.json、.cursor/mcp.json、…)

{
  "mcpServers": {
    "smu": {
      "command": "uvx",
      "args": ["labmcp-keithley-smu", "--address", "USB0::0x05E6::0x2450::04096331::INSTR",
               "--limit", "max_voltage_v=5", "--limit", "max_current_a=0.02"]
    }
  }
}

--read-only を追加すると、ステータスと測定値の取得は許可されますが、設定、出力オン、スイープはブロックされます(output_off は引き続き使用できます)。その他のクライアントでは、uvx labmcp config keithley-smu --address <resource> --client vscode を実行して設定スニペットを生成します(cursor、codex、claude-code も指定できます)。

ツール

ツール種類説明
configure_source🎛 制御出力がオフの間に、ソース(機能、レベル、コンプライアンス、範囲、測定速度)を設定します。自動レンジ機能で電圧と電流を測定します。出力がオンの場合は拒否されます。先に出力をオフにするか、set_source_levelを使用してください。何かを送信する前に制限を確認します。
get_command_log👁 読み取り計測器に送信されたコマンドと計測器から受信した応答のうち、最新のものを返します(最後が最新)。デバッグや実行内容の記録に役立ちます。
get_connection_info👁 読み取り接続されている計測器(識別情報、アドレス、シミュレーションか実機か)、サーバーが読み取り専用かどうか、有効な安全制限を報告します。最初に呼び出してください。
get_device_info👁 読み取りSMU のメーカー、モデル、シリアル番号、ファームウェア、コマンド方言(2400/2450/2600)、チャンネル(2600B)、およびモデルの最大ソース電圧と電流を識別します。
get_status👁 読み取り出力のオン/オフ、ソース機能(電圧/電流)、設定レベル、コンプライアンス制限、ソースがコンプライアンス状態かどうか、端子、および2線式/4線式のセンスを報告します。
measure👁 読み取り通電中の DUT のソース・メジャー測定値を1回取得します(電圧、電流、V/I、電力、コンプライアンスフラグ)。設定は変更しません。出力がオフの場合は拒否されます。
output_off🛑 安全SMU の出力を直ちにオフにします(進行中の IV スイープも中止します)。読み取り専用モードを含め、いつでも使用できます。
output_on⚠️ 危険SMU の出力をオンにし、設定済みの電圧または電流を DUT に印加します。まず計測器から設定レベルとコンプライアンスを読み戻し、安全制限に照らして確認します。DUT が接続されており、通電しても安全であることをユーザーに確認してください。
reconnect🛑 安全計測器との接続を閉じて再度開きます(電源を入れ直した後や、ケーブルを抜き差しした後など)。
run_iv_sweep⚠️ 危険ステップ式 IV スイープを実行します。ソースを設定し、出力をオンにして、各レベルで電圧と電流を測定しながらステップを進め、その後は必ず出力をオフにします(エラー発生時やoutput_offの呼び出し時も同様)。曲線(ダウンサンプリング済み)、コンプライアンスフラグ、線形フィット、および必要に応じて完全な CSV を返します(新しいファイルを作成し、既存ファイルは上書きしません)。事前に出力がオフになっている必要があります。先に制限を確認します。
set_4wire🎛 制御4線式(リモートセンス、ケルビン)または2線式測定を選択します。4線式は低抵抗 DUT のリード抵抗を除去しますが、SENSE リードの接続が必要です。出力がオンの場合は拒否されます。
set_source_level⚠️ 危険設定済みソースのレベルを変更します。出力がオンの場合、新しい電圧または電流が直ちに DUT に印加されます。レベルと現在のコンプライアンスを、先に安全制限に照らして確認します。

get_connection_info、get_command_log、reconnectは、すべての LabMCP サーバーに組み込まれています。

安全制限

制限既定値意味
max_voltage_v20 Vエージェントがソースとして印加できる、または電圧コンプライアンスとして許可できる最大の |電圧|
max_current_a0.1 Aエージェントがソースとして印加できる、または電流コンプライアンスとして許可できる最大の |電流|
max_power_w2 W最悪条件での最大電力 |ソースレベル × コンプライアンス|
max_sweep_points5011回の IV スイープでの最大ポイント数(デュアルスイープの復路もカウントされます)
max_sweep_duration_s600 s推定スイープ時間の最大値(ポイント数 ×(遅延 + 2·NPLC/50 s + 20 ms))

制限は何かを送信する前に確認されます。configure_sourceおよびset_source_levelでは設定時に、run_iv_sweepでは最大の |start| と |stop| に対して、output_onでは計測器から設定レベルとコンプライアンスを読み戻したうえで確認します。そのため、フロントパネルで設定したレベルも検出されます。モデル自体の最大値を超える要求(例:2602B で 40 V)も拒否されます。起動時に上書きするには、--limit max_voltage_v=60 --limit max_power_w=10を指定します。壊れやすい DUT では既定値をより厳しくしてください。

使用例のプロンプト

  • 「この LED の I-V 曲線を、0~3 V の範囲で 61 ステップ、コンプライアンス 20 mA で測定し、1 mA でのターンオン電圧を教えてください。」
  • 「サンプルに 4 線式モードで 1 mA を流して抵抗値を教え、その後、出力をオフにしてください。」
  • 「メモリスタに対して、コンプライアンス 1 mA、各点 0.1 s で −1 V から +1 V までのデュアルスイープを実行し、~/data/memristor_run3.csv に保存してください。」
  • 「フォトダイオードに対して、上限 2 V で 1 nA から 10 mA までの対数電流スイープを実行し、理想因子をフィッティングしてください。」
  • 「SMU は現在何をしていますか? 出力がオンなら、オフにしてください。」

注意事項

  • シンプルで検証可能なコマンドです。 スイープはステップループとして実行されます。レベルを設定し、delay_s の間待機し、1 回読み取り、コンプライアンスを確認します。内蔵の計測器スイープやトリガーモデルは使用しないため、すべての測定点が get_command_log に記録されます。各スイープの終了時には、try/finally で出力がオフになります。スイープの実行中(設定中も含む)に output_off を呼び出すと、中止フラグが設定され、直ちに出力がオフになります。その後、スイープは出力を再びオンにせず停止し、aborted: true を報告します。

  • スイープ時間。 max_sweep_duration_s に加えて、1 回のスイープにかけられる時間は最大 1740 s(ツールの 30 分のタイムアウトから余裕を差し引いた時間)です。これを超える見積もりは拒否され、見積もりよりも遅く進むスイープは早期に停止し、出力をオフにして、それまでに測定した点を返します(理由は stop_reason に示されます)。

  • save_path は .csv で終わる必要があり、ファイルがまだ存在していない必要があります(既存のファイルは上書きされません)。存在しないフォルダーは作成されます。出力をオンにする前にチェックされます。

  • オーバーフローした読み取り値(SMU の +9.9E37 マーカー)は、スイープ曲線では null として返され、overflow_points にカウントされます。統計とフィッティングからは除外されます。measure はこれらをエラーとして報告します。

  • 測定内容。

    • 2400:V と I を同時に測定します(:SENS:FUNC:CONC ON、:SENS:FUNC "VOLT","CURR")。:READ? で読み取ります(:FORM:ELEM VOLT,CURR,STAT)。コンプライアンスはステータスワードのビット 3 から取得します。
    • 2450:測定機能にはソースとして出力していない量を設定し、ソースの読み戻しを有効にします。:READ? "defbuffer1",SOUR,READ は両方を返します。コンプライアンスは :SOUR:VOLT:ILIM:TRIP? / :SOUR:CURR:VLIM:TRIP? から取得します。
    • 2600B:print(smuX.measure.iv()) と print(smuX.source.compliance) を使用します。

    コンプライアンス動作中、報告される V と I は測定値であり、設定されたレベルではありません。

  • 2400 の :MEAS? は出力を自動的にオンにします(マニュアル p. 18-72)。そのため、これは使用しません。measure は出力がオフの場合、実行を拒否します。

  • 再設定は出力がオフの状態で行います。 configure_source と set_4wire は、出力がオンの場合、実行を拒否します。動作中のソースを変更するには、危険性のあるツール set_source_level を使用してください。

  • 出力オフ時の状態(通常/ゼロ/高インピーダンス/ガード)は、計測器で設定された状態のままになります。デフォルトの 通常 状態では、オフにした電流源は 0 V の電圧源になります。バッテリー、充電済みコンデンサー、ソーラーセルの場合は、先に高インピーダンスを選択してください(2450 マニュアル p. 6-40)。

  • 2460/2461/2470 の最大値は組み込まれていません(これらのマニュアルは確認されていません)。安全上の制限は引き続き適用され、計測器は範囲外の値を拒否します。2430 のパルスモードと、2600B の limitp による電力コンプライアンスは使用しません。

  • タイミング: NPLC は積分時間を設定します(1 PLC = 60 Hz で 16.7 ms、50 Hz で 20 ms)。ソースの自動遅延は計測器のデフォルト(オン)のままとなり、delay_s は各点の整定時間を追加します。

  • シミュレーターのエラー応答は、マニュアルのエラー一覧に従います(+802 "Not permitted with OUTPUT off"、-222、-113、2600B では 1101 "Parameter too big"、-285/-286)。実機のファームウェアでは、正確なメッセージの文言が異なる場合があります。

ハードウェアでの検証

モデルファームウェアインターフェース検証者日付
まだありません:最初の検証者になる

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。