关于 Keithley SourceMeter SMU
Keithley SourceMeter SMU 是用于 Keithley 源测量单元的 MCP 服务,支持设置电压或电流、测量 V/I,并运行受限的 IV 扫描。它兼容 2400、2450 系列 SCPI 和 2600B TSP;扫描结束时会关闭输出,目前仅经模拟器测试。
主要功能
- 01设置电压或电流及合规限值
- 02测量电压、电流和功率
- 03运行线性、对数及双向 IV 扫描
- 04支持 2400、2450 SCPI 与 2600B TSP
- 05扫描结束时关闭输出
适用场景
- 01测量 LED 或光电二极管的 IV 曲线
- 02以四线模式测量低电阻样品
- 03为器件施加受限电流或电压
- 04保存扫描数据并拟合曲线
MCP 相关
该 MCP 服务向客户端提供设备配置、读数、状态查询和输出控制工具,也提供有点数与时长限制的 IV 扫描工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx labmcp-keithley-smuLABMCP_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 周前
此工具无需参数。
详细介绍
Keithley SourceMeter SMU — MCP 服务
让 AI Agent 使用Keithley (Tektronix) SourceMeter SMU输出带合规限值的电压或电流、测量 V 和 I,并运行有界 IV 扫描(线性、对数、双向)。每次扫描结束时,输出都会关闭,即使出现问题也不例外。此服务支持 Keithley 的全部三种远程控制方言:2400 系列 SCPI、2450 系列 SCPI 和 2600B TSP。
| 软件包 | labmcp-keithley-smu |
| 仪器 | 2400、2400-LV、2401、2410、2420、2425、2430(直流模式)、2440 · 2450、2460、2461、2470(SCPI 命令集)· 2601B、2602B、2604B、2611B、2612B、2614B、2634B、2635B、2636B |
| 接口 | GPIB、USB(USBTMC)、以太网(VXI-11 / 原始套接字 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 |
| 状态 | 🧪 模拟:已针对三种方言的线路级模拟器进行测试,尚未在硬件上验证。报告硬件测试结果 |
无需硬件即可试用
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
- 仪器端。
- **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禁用(默认状态);启用提示符会导致其混入回复中。
- **查找地址:**运行
uvx labmcp ports(或python -m pyvisa info)。GPIB 和 USBTMC 需要支持 GPIB 的 VISA 库。NI-VISA 可在所有环境中使用;pyvisa-py 支持 USBTMC/LAN(GPIB 则需搭配gpib-ctypes/linux-gpib)。 - 测试连接:
方言会根据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 | 🎛 控制 | 在输出关闭时设置源(功能、量程、合规限值、范围、测量速度)。使用自动量程测量 V 和 I。如果输出已开启,则会拒绝操作;请先关闭输出,或使用 set_source_level。发送任何内容前都会检查限值。 |
get_command_log | 👁 读取 | 返回最近发送给仪器的原始命令和收到的回复(最新记录在末尾)。可用于调试和记录操作内容。 |
get_connection_info | 👁 读取 | 报告当前连接的仪器(标识、地址、模拟或真实)、服务是否为只读,以及当前生效的安全限值。请先调用此工具。 |
get_device_info | 👁 读取 | 识别 SMU:制造商、型号、序列号、固件、命令方言(2400 / 2450 / 2600)、通道(2600B),以及该型号的最大源电压和电流。 |
get_status | 👁 读取 | 报告输出是否开启、源功能(电压/电流)、设定值、合规限值、源是否处于合规状态、端子及 2/4 线测量方式。 |
measure | 👁 读取 | 对已通电的 DUT 进行一次源测量读数(电压、电流、V/I、功率、合规标志)。不会更改任何设置;如果输出已关闭,则会拒绝操作。 |
output_off | 🛑 安全 | 立即关闭 SMU 输出(并中止正在进行的任何 IV 扫描)。始终可用,包括在只读模式下。 |
output_on | ⚠️ 危险 | 开启 SMU 输出:将配置的电压或电流施加到 DUT。首先从仪器读回设定值和合规限值,并检查是否超出安全限值。请向用户确认 DUT 已连接且可安全通电。 |
reconnect | 🛑 安全 | 关闭并重新打开与仪器的连接(例如,仪器断电重启或重新插拔电缆后)。 |
run_iv_sweep | ⚠️ 危险 | 运行阶梯式 IV 扫描:配置源、开启输出、逐步遍历各级并测量每级的 V 和 I,然后始终关闭输出(包括发生错误或调用 output_off 时)。返回曲线(经降采样)、合规标志、线性拟合结果和可选的完整 CSV(创建新文件;绝不会覆盖现有文件)。开始前必须关闭输出。首先检查限值。 |
set_4wire | 🎛 控制 | 选择 4 线(远程感测,开尔文)或 2 线测量。对于低电阻 DUT,4 线测量可消除引线电阻的影响,但需要连接 SENSE 引线。如果输出已开启,则会拒绝操作。 |
set_source_level | ⚠️ 危险 | 更改已配置源的设定值。如果输出已开启,新的电压/电流会立即施加到 DUT。首先检查设定值和当前合规限值是否超出安全限值。 |
get_connection_info、get_command_log 和 reconnect 内置于每个 LabMCP 服务中。
安全限值
| 限值 | 默认值 | 含义 |
|---|---|---|
max_voltage_v | 20 V | Agent 可输出或允许作为电压合规限值的最大 |电压| |
max_current_a | 0.1 A | Agent 可输出或允许作为电流合规限值的最大 |电流| |
max_power_w | 2 W | 最大最坏情况功率 |源设定值 × 合规限值| |
max_sweep_points | 501 | 单次 IV 扫描的最多点数(双向扫描的返回段也计入) |
max_sweep_duration_s | 600 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,请收紧默认限值。
示例提示词
- “以 20 mA 限制电流,分 61 步测量此 LED 在 0 到 3 V 范围内的 IV 曲线,然后告诉我电流为 1 mA 时的开启电压。”
- “以 4 线模式让样品通过 1 mA 电流并告诉我其电阻,然后关闭输出。”
- “对忆阻器从 −1 V 到 +1 V 执行双向扫描,限制电流为 1 mA,每点间隔 0.1 s,并将结果保存到 ~/data/memristor_run3.csv。”
- “对光电二极管执行从 1 nA 到 10 mA 的对数电流扫描,电压限制为 2 V,并拟合理想因子。”
- “SMU 现在在做什么?如果输出已开启,请将其关闭。”
注意事项
-
简单、可验证的命令。 扫描采用分步循环:设置电平、等待
delay_s、读取一次并检查限制值。不使用仪器内置扫描和触发模型,因此每个点都会显示在get_command_log中。每次扫描结束时,都会在try/finally中关闭输出。扫描运行期间调用output_off(即使扫描仍在配置中)会设置中止标志并立即关闭输出;随后扫描会停止,不会再次开启输出,并报告aborted: true。 -
扫描时长。 除了
max_sweep_duration_s,单次扫描最长可运行 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:同时测量 V 和 I(
-
2400 的
:MEAS?会自行开启输出(手册第 18-72 页),因此绝不会使用。输出关闭时,measure会拒绝运行。 -
重新配置时输出必须关闭。 输出开启时,
configure_source和set_4wire会拒绝执行。若要更改正在运行的源,请使用set_source_level(危险工具)。 -
输出关闭状态(正常 / 零 / 高阻 / 保护)会保留为仪器上的配置。默认的正常状态下,关闭电流源后会变为 0 V 电压源。对于电池、已充电的电容或太阳能电池,请先选择高阻抗(2450 手册第 6-40 页)。
-
2460/2461/2470 的最大值未内置(尚未审阅这些型号的手册)。安全限制仍然适用,超出量程的设置会被仪器拒绝。不使用 2430 脉冲模式和 2600B 的
limitp功率限制功能。 -
时序: NPLC 设置积分时间(60 Hz 下 1 PLC = 16.7 ms,50 Hz 下为 20 ms)。源自动延迟保持仪器默认设置(开启),而
delay_s会为每个点增加稳定时间。 -
模拟器错误回复遵循手册中的错误列表(+802 "Not permitted with OUTPUT off"、-222、-113;2600B 为
1101 "Parameter too big"、-285/-286)。实际固件上的确切消息措辞可能有所不同。
硬件验证
| 型号 | 固件 | 接口 | 验证者 | 日期 |
|---|---|---|---|---|
| 尚无: 成为第一位 |
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。