关于 Bench DC Power Supply
该 MCP 服务通过 Rigol、Siglent 和 Aim-TTi 的远程命令控制可编程直流台式电源,面向实验室仪器操作与自动化。它支持多种连接方式、输出监测和安全限值;目前仅经过模拟器测试,尚未在硬件上验证。
主要功能
- 01设置电压与电流限值
- 02切换输出并读取通道状态
- 03配置过压和过流保护
- 04支持 USB、LAN、RS-232 和 GPIB
- 05模拟器测试与安全限值
适用场景
- 01查看各通道测量值及 CV/CC 状态
- 02为负载设置电压并限制电流
- 03发生异常时关闭全部电源输出
MCP 相关
向 MCP 客户端提供电源控制与监测工具,包括设置点调整、输出切换、读数查询和保护跳闸处理。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx labmcp-bench-psuLABMCP_ADDRESSInstrument address, e.g. serial:///dev/ttyUSB0 or tcp://192.168.1.50:5025LABMCP_SIMULATESet to 1 to use the built-in simulator (no hardware)LABMCP_READ_ONLYSet to 1 to disable all state-changing toolsLABMCP_LIMITSSafety limit overrides, e.g. max_temperature_c=80本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
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 跳闸。
连接仪器
- **仪器设置:**启用你所用的接口(Rigol:Utility → I/O Config;Siglent:System → Interface;Aim-TTi:LAN 开箱即用,USB 会显示为虚拟 COM 端口)。记下 IP 地址或 VISA 资源字符串。
- 查找地址:
uvx labmcp ports(串口),或python -m pyvisa info/ VISA 厂商提供的工具(USB/LAN)。 - 测试连接:
USB-TMC 和 VXI-11 地址使用 PyVISA(随此软件包安装;添加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?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_v | 30 V | 任意通道上允许设置的最大电压值(绝对值)。设置电压时会检查,即使输出关闭也会检查,并会在执行 output_on 前再次检查 |
max_current_a | 3 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 电源:其手册中有太多回复格式未作说明,无法安全实现。
硬件验证
| 型号 | 固件 | 接口 | 验证者 | 日期 |
|---|---|---|---|---|
| 暂无: 来做第一个 |
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。