mcpField
B
Bench DC Power Supply

Bench DC Power Supply

本地服务
github.com科研与教育235 周前更新

关于 Bench DC Power Supply

该 MCP 服务通过 Rigol、Siglent 和 Aim-TTi 的远程命令控制可编程直流台式电源,面向实验室仪器操作与自动化。它支持多种连接方式、输出监测和安全限值;目前仅经过模拟器测试,尚未在硬件上验证。

主要功能

  1. 01设置电压与电流限值
  2. 02切换输出并读取通道状态
  3. 03配置过压和过流保护
  4. 04支持 USB、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 周前

此工具无需参数。

详细介绍

台式直流电源 — MCP 服务

让 AI Agent 使用 Rigol、Siglent 和 Aim-TTi 的 可编程台式直流电源及各厂商文档规定的远程命令集,设置电压和电流限制、打开和关闭输出、监测恒压/恒流行为,以及配置过压/过流保护。方言通过 *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 或原始套接字)、RS-232、通过 VISA 使用 GPIB
协议SCPI (Rigol DP800 编程指南、DP700、DP900;Siglent SPD3303X 快速入门指南、SPD1000X 用户手册) 和 Aim-TTi 远程命令(CPX400D/DP 手册、MX100T/TP 手册、手册索引)
状态🧪 模拟:已通过驱动电阻负载的各方言线级模拟器测试,尚未在硬件上验证。报告硬件测试

Keysight / Agilent 和 Rohde & Schwarz 电源不在支持范围内:这两家厂商都发布了官方 MCP 服务。请使用 Keysight 仪器控制 MCP 服务 或 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(随此软件包安装;添加 ?backend=@ivi 可使用 NI-VISA / Keysight IO Libraries,而不是 pyvisa-py)。

添加到 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🛑 安全关闭所有输出(整个电源的紧急停止)。每个通道都会单独关闭,并在仪器支持时读取状态确认。
clear_protection_trip🎛 控制排除原因后,清除 OVP/OCP 跳闸。输出仍保持关闭;使用 output_on 重新通电。对于 Aim-TTi 电源,此操作会清除所有输出的跳闸状态。
get_command_log👁 读取返回最近发送给仪器的原始命令及收到的回复(最新记录在末尾)。便于调试和记录操作内容。
get_connection_info👁 读取报告已连接的仪器(身份、地址、模拟或真实)、服务是否为只读,以及当前启用的安全限制。请先调用此工具。
get_errors👁 读取读取(并清除)仪器的错误队列 / 错误寄存器。空列表 = 无错误。
get_outputs👁 读取报告每个通道的电压和电流限制设定值、测量电压 / 电流 / 功率、输出开 / 关状态、CV/CC 模式,以及在机型支持时报告 OVP/OCP 电平和跳闸状态。
output_off🛑 安全关闭通道的输出。随时都可以安全调用。
output_on⚠️ 危险打开通道的输出,使连接的负载以当前设定值通电。首先会回读设定值;如果设定值超过安全限制(例如有人在前面板上修改了设定值),则拒绝打开输出。
reconnect🛑 安全关闭并重新打开与仪器的连接(例如仪器断电重启或重新插拔线缆后)。
set_current_limit🎛 控制设置通道的电流限制(恒流设定值)。若超过 max_current_a(即使输出关闭也会检查)或通道量程,则拒绝设置。
set_protection🎛 控制设置通道的过压(OVP)和 / 或过流(OCP)保护。超过阈值时,电源会关闭输出。Rigol:电平 + 开 / 关;Aim-TTi CPX/QL/PL-P:电平(始终启用);MX:电平 + 开 / 关;Siglent SPD1000X:仅电平;SPD3303X:不支持。
set_voltage🎛 控制设置通道的电压设定值。若超过 max_voltage_v(即使输出关闭也会检查)或通道量程,则拒绝设置。如果输出已打开,负载会立即接收到新电压。

get_connection_info、get_command_log 和 reconnect 内置于每个 LabMCP 服务中。

安全限制

限制默认值含义
max_voltage_v30 V任意通道上允许设置的最大电压值(绝对值)。设置电压时会检查,即使输出关闭也会检查,并会在执行 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,然后打开输出,并告诉我 LED 阵列消耗了多少电流。”
  • “以 0.5 V 为步进,将 CH2 从 0 V 升至 5 V,读取每一步的电流,并绘制负载的 I-V 曲线。”
  • “加热器消耗的电流超出预期:立即关闭所有输出。”
  • “通道 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),通过 :OUTP:OVP|OCP[:STAT|:VAL|:QUES?] 查询 OVP/OCP。使用 :OUTP:OVP|OCP:CLEAR 清除跳闸状态,该命令只会清除标志。由于编程指南指出 [:SOUR]:VOLT:PROT:CLE 还会开启输出,因此绝不会发送此命令。DP831 的 CH3 为负输出:应输入负电压(尚未在硬件上验证)。通过 RS-232 使用时,DP800 需要 CR LF 行结束符(?write_termination=CRLF)。
  • Siglent: SPD3303X/X-E 不支持可编程 OVP/OCP,且只能通过 SYST:STAT? 状态字(CH1/CH2)报告输出状态和 CV/CC。CH3 为固定输出(通过前面板开关选择 2.5/3.3/5 V),只能开关输出,无法读取其状态。SPD1000X 仅提供 OVP/OCP 电平(始终启用,无法读取跳闸状态)。错误回复格式(0 No Error)不符合 SCPI 标准,因此会通过回读设置进行验证。服务器在向 Siglent 电源发送每条命令后会暂停 0.1 s(可通过 --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,然后逐个关闭每个输出。
  • 不提供跟踪/串联/并联模式、计时器、序列、远程检测和已保存的设置。将电源交给 Agent 前,请先将其设为独立模式。
  • 暂不支持 GW Instek GPP 和 B&K Precision 9130/9140 电源:其手册中有太多回复格式未作说明,无法安全实现。

硬件验证

型号固件接口验证者日期
暂无: 来做第一个

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。