mcpField
B
Bench DC Power Supply

Bench DC Power Supply

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

Bench DC Power Supply について

Rigol、Siglent、Aim-TTi のプログラマブル直流ベンチ電源を制御する MCP サーバーです。複数の接続方式、出力監視、安全制限に対応し、現時点ではシミュレーターでのみテストされています。

主な機能

  1. 01電圧と電流制限の設定
  2. 02出力切替とチャンネル状態の確認
  3. 03過電圧・過電流保護の設定
  4. 04USB、LAN、RS-232、GPIB 接続
  5. 05シミュレーターでのテストと安全制限

活用シーン

  1. 01チャンネルの測定値と CV/CC 状態の確認
  2. 02負荷電圧と電流制限の設定
  3. 03異常時に全出力を停止

MCP 対応

電源の設定変更、出力切替、測定値の取得、保護トリップの処理を行うツールを MCP クライアントに公開します。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"k-dense-ai-labmcp-bench-psu": {
"command": "uvx",
"args": [
"labmcp-bench-psu"
],
"env": {
"LABMCP_ADDRESS": "<LABMCP_ADDRESS>",
"LABMCP_SIMULATE": "<LABMCP_SIMULATE>",
"LABMCP_READ_ONLY": "<LABMCP_READ_ONLY>",
"LABMCP_LIMITS": "<LABMCP_LIMITS>"
}
}
}
}
起動コマンドuvx labmcp-bench-psu
設定が必要な環境変数
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-bench-psu0.1.3

ツール

12

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

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

詳細

Bench DC Power Supply — MCP サーバー

Rigol、Siglent、Aim-TTi のプログラマブル DC ベンチ電源で、AI エージェントが電圧と電流制限を設定し、出力のオン/オフを切り替え、定電圧/定電流の動作を監視し、過電圧/過電流保護を設定できるようにします。各メーカーの公式リモートコマンドセットを使用します。コマンドの方言は *IDN? から検出されます。

パッケージlabmcp-bench-psu
計測器Rigol DP832/DP832A, DP831, DP822, DP821, DP811, DP813, DP711, DP712, DP932A/U/E;Siglent SPD3303X/X-E, SPD1168X, SPD1305X;Aim-TTi CPX400D/DP, MX100T/TP, MX180T/TP, QL355/QL564 (P, T/TP), PL-P (PL068/155/303/601, PL303QMD/QMT)
インターフェースUSB(VISA 経由の USB-TMC、または Aim-TTi の仮想 COM)、LAN(VISA/VXI-11 または raw socket)、RS-232、VISA 経由の GPIB
プロトコルSCPI(Rigol DP800 Programming Guide、DP700、DP900;Siglent SPD3303X Quick Start、SPD1000X User Manual)、および Aim-TTi のリモートコマンド(CPX400D/DP manual、MX100T/TP manual、manuals index)
ステータス🧪 シミュレーション済み:各コマンド方言のワイヤーレベルシミュレーターを使い、抵抗負荷を接続してテストしました。実機での検証はまだ行っていません。実機テストを報告

Keysight / Agilent および Rohde & Schwarz の電源は対象外です。両社は公式 MCP サーバーを公開しています。Keysight MCP Server for Instrument Control、または Rohde & Schwarz RsInstrument に含まれる MCP サーバーを使用してください。このサーバーは、これらの機器への接続を拒否します。

ハードウェアなしで試す

uvx labmcp-bench-psu --simulate --check                                        # Rigol DP832
uvx labmcp-bench-psu --simulate --option dialect=siglent --check               # Siglent SPD3303X
uvx labmcp-bench-psu --simulate --option dialect=tti --option sim_model=MX100TP --check

シミュレーション出力は抵抗負荷を駆動します(CH1 10 Ω、CH2 100 Ω、CH3 オープン)。そのため、CV → CC の切り替わりを確認し、OVP/OCP を作動させることができます。

計測器を接続する

  1. 計測器の設定: 使用するインターフェースを有効にします(Rigol:Utility → I/O Config、Siglent:System → Interface、Aim-TTi:LAN はそのまま使用でき、USB は仮想 COM ポートとして認識されます)。IP アドレスまたは VISA リソース文字列を控えてください。
  2. アドレスを確認する: uvx labmcp ports(シリアル)、または python -m pyvisa info/使用する VISA ベンダーのツール(USB/LAN)を使います。
  3. 接続をテストする:
    uvx labmcp-bench-psu --address "USB0::0x1AB1::0x0E11::DP8C123456789::INSTR" --check   # Rigol over USB-TMC
    uvx labmcp-bench-psu --address "TCPIP0::192.168.1.50::INSTR" --check                 # any LXI/VXI-11 supply
    uvx labmcp-bench-psu --address tcp://192.168.1.51:5025 --check                       # Siglent raw socket
    uvx labmcp-bench-psu --address tcp://192.168.1.52:9221 --check                       # Aim-TTi raw socket
    uvx labmcp-bench-psu --address /dev/ttyACM0 --check                                  # Aim-TTi USB virtual COM
    uvx labmcp-bench-psu --address "serial://COM3?write_termination=CRLF" --check        # Rigol DP800 RS-232
    
    USB-TMC および VXI-11 のアドレスには PyVISA を使用します(このパッケージとともにインストールされます。pyvisa-py の代わりに NI-VISA / Keysight IO Libraries を使用するには ?backend=@ivi を追加してください)。

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

Claude Code

claude mcp add psu -- uvx labmcp-bench-psu --address "TCPIP0::192.168.1.50::INSTR" --limit max_voltage_v=12 --limit max_current_a=1

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

{
  "mcpServers": {
    "psu": {
      "command": "uvx",
      "args": ["labmcp-bench-psu", "--address", "TCPIP0::192.168.1.50::INSTR",
               "--limit", "max_voltage_v=12", "--limit", "max_current_a=1"]
    }
  }
}

監視専用にするには --read-only を追加します。設定値の変更と output_on は非表示になりますが、output_off と all_outputs_off は引き続き使用できます。その他のクライアントでは、uvx labmcp config bench-psu --address TCPIP0::192.168.1.50::INSTR --client vscode を実行して設定スニペットを生成してください。

ツール

ツール種類説明
all_outputs_off🛑 safetyすべての出力をOFFにします(電源全体の緊急停止)。機器が対応している場合、各チャンネルを個別に切り替え、状態を読み戻します。
clear_protection_trip🎛 control原因を取り除いた後、OVP/OCP トリップを解除します。出力はOFFのままです。再通電するには output_on を使用してください。Aim-TTi 電源では、すべての出力のトリップが解除されます。
get_command_log👁 read機器に送信された最新の生コマンドと、受信した応答を返します(新しいものが最後)。デバッグや実行内容の記録に便利です。
get_connection_info👁 read接続中の機器(識別情報、アドレス、シミュレーションか実機か)、サーバーが読み取り専用かどうか、有効な安全制限を報告します。最初に呼び出してください。
get_errors👁 read機器のエラーキュー/エラーレジスターを読み取り、クリアします。空のリストはエラーがないことを示します。
get_outputs👁 read各チャンネルについて、電圧と電流制限の設定値、測定された電圧/電流/電力、出力のオン/オフ、CV/CC モード、モデルが対応している場合は OVP/OCP レベルとトリップ状態を報告します。
output_off🛑 safetyチャンネルの出力をOFFにします。いつでも安全に呼び出せます。
output_on⚠️ hazardチャンネルの出力をONにし、現在の設定値で接続された負荷に通電します。最初に設定値を読み戻し、安全制限を超えている場合(例:誰かがフロントパネルで変更した後)は出力を拒否します。
reconnect🛑 safety機器との接続を閉じてから再度開きます(例:機器の電源を入れ直した後や、ケーブルを差し直した後)。
set_current_limit🎛 controlチャンネルの電流制限(定電流設定値)を設定します。max_current_a を超える場合(出力がOFFでも確認)、またはチャンネルの範囲を超える場合は拒否されます。
set_protection🎛 controlチャンネルの過電圧(OVP)および/または過電流(OCP)保護を設定します。設定値を超えると、電源は出力をOFFにします。Rigol:レベル+オン/オフ;Aim-TTi CPX/QL/PL-P:レベル(常時有効);MX:レベル+オン/オフ;Siglent SPD1000X:レベルのみ;SPD3303X:非対応。
set_voltage🎛 controlチャンネルの電圧設定値を設定します。max_voltage_v を超える場合(出力がOFFでも確認)、またはチャンネルの範囲を超える場合は拒否されます。出力がONの場合、負荷には新しい電圧がただちに印加されます。

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

安全制限

制限デフォルト意味
max_voltage_v30 Vいずれかのチャンネルで設定できる最大電圧(絶対値)。電圧の設定時に出力がOFFでも確認され、output_on の前にも再確認されます
max_current_a3 Aいずれかのチャンネルで設定できる最大電流制限値。同様に確認されます

起動時に上書きできます。例:--limit max_voltage_v=12 --limit max_current_a=0.5。設定値は各モデルの設定可能範囲とも照合されます。output_on は最初に機器から設定値を読み戻すため、フロントパネルで変更された値が制限をすり抜けることはありません。

プロンプトの例

  • 「電源のすべてのチャンネルについて、設定値、測定電流、CVかCCかを表示してください。」
  • 「CH1を12 V、電流制限を200 mAに設定し、OVPを13 Vに設定してから、出力をONにし、LEDアレイに流れる電流を教えてください。」
  • 「CH2を0 Vから5 Vまで0.5 V刻みでランプさせ、各段階で電流を読み取り、負荷のI-V曲線をプロットしてください。」
  • 「ヒーターに予想以上の電流が流れています。今すぐすべての出力をOFFにしてください。」
  • 「チャンネル1でトリップが発生しました。何が起きたのでしょうか?トリップを解除しても安全ですか?」

注意事項

  • 方言の検出: *IDN? のメーカー名が「RIGOL」なら Rigol、「Siglent」なら Siglent、「THURLBY THANDAR」/「TTi」/「Aim」なら Aim-TTi と判定します。リブランド製品では、--option dialect=rigol|siglent|tti で方言を指定できます。組み込みテーブルにないモデルは、モデルごとの最大値なしで --option channels=N のチャンネル数として扱われます(安全上の制限は引き続き適用されます)。
  • Rigol: 設定値には :SOUR<n>:VOLT/CURR、読み戻しには :APPL? CHn と :MEAS:ALL? CHn、モードには :OUTP:MODE? CHn(CV/CC/UR)、OVP/OCP には :OUTP:OVP|OCP[:STAT|:VAL|:QUES?] を使用します。トリップは :OUTP:OVP|OCP:CLEAR で解除しますが、これはフラグのみをクリアします。プログラミングガイドによると出力もオンにしてしまうため、[:SOUR]:VOLT:PROT:CLE は送信しません。DP831 の CH3 は負出力です。負の電圧を指定してください(ハードウェアでは未検証です)。RS-232 経由では、DP800 に CR LF の行末が必要です(?write_termination=CRLF)。
  • Siglent: SPD3303X/X-E はプログラム可能な OVP/OCP を備えておらず、出力状態と CV/CC は SYST:STAT? ステータスワード経由でのみ報告されます(CH1/CH2)。CH3 は固定(フロントパネルのスイッチで 2.5/3.3/5 V)で、オン/オフの切り替えのみ可能です。状態は読み取れません。SPD1000X は OVP/OCP のレベルのみを備えています(常に有効で、トリップ状態は読み取り不可)。エラー応答の形式(0 No Error)は SCPI 標準ではないため、設定は読み戻して検証されます。サーバーは Siglent 電源への各コマンド送信後に 0.1 秒停止します(変更するには --option write_delay_s= を指定)。Siglent 自身の例ではコマンド間に待機時間を設けていますが、必要な遅延時間は文書化されていません。
  • Aim-TTi: CV/CC のライブ照会がないため、読み戻し値と設定値から mode を推定します(mode_source: "inferred")。トリップフラグは LSR<n>? リミットイベントレジスターから取得します。このレジスターはイベントをラッチし、読み取るとクリアされます。CPX/QL/PL-P の保護機能は常に有効です(レベルのみ)。MX モデルでは OVP/OCP のオン/オフも切り替えられます。TRIPRST はすべての出力のトリップをクリアします(MX100T/TP では文書化されていません)。旧型の QL P/T モデルには出力状態の照会機能がないため、output_on は不明として報告されます。all_outputs_off では、最初に OPALL 0 を送信し、その後、すべての出力に個別に送信します。
  • トラッキング/直列/並列モード、タイマー、シーケンス、リモートセンス、保存済み設定は公開されていません。エージェントに渡す前に、電源を独立モードにしてください。
  • GW Instek GPP および B&K Precision 9130/9140 電源は、まだサポートされていません。マニュアルに記載のない応答形式が多すぎるため、安全に実装できません。

ハードウェアでの検証

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

コメント

MCP は初めてですか?

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

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