关于 Lake Shore Temperature Controller
面向使用 Lake Shore Cryotronics 335、336 和 350 温控器的实验室,提供温度读取、加热器控制与稳定性等待。支持多种仪器接口,并设有加热和设定值安全限制;目前仅经模拟器测试,尚未在硬件上验证。
主要功能
- 01读取传感器温度与加热器状态
- 02设置温度、斜坡、加热范围和 PID
- 03等待温度达到稳定条件
- 04关闭所有加热器并查看命令日志
- 05支持 USB、以太网和 GPIB
适用场景
- 01检查低温恒温器各传感器读数
- 02按斜坡程序调整温度并等待稳定
- 03查看 PID 参数并调整控制回路
- 04出现异常时关闭所有加热器
MCP 相关
作为 MCP 服务,它向 MCP 客户端提供温度读取、加热器状态查询、设定值与控制参数调整、稳定性等待及安全关闭等工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx labmcp-lakeshoreLABMCP_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+)。各客户端的配置文件位置不同,请参考客户端文档。
工具
11收录的工具列表 · 更新于 2 周前
此工具无需参数。
详细介绍
Lake Shore 温度控制器 — MCP 服务
让 AI Agent 读取低温恒温器上的所有传感器、检查加热器状态、设置设定点、斜坡、加热器量程和 PID 值、等待温度稳定,并关闭 Lake Shore Cryotronics Model 335、336 和 350 温度控制器上的所有加热器。
| 软件包 | labmcp-lakeshore |
| 仪器 | Model 335(2 个输入、2 个输出)、Model 336(4 个输入、4 个输出)、Model 350(4 个输入、4 个输出) |
| 接口 | USB(虚拟 COM 端口)、以太网(336 和 350,TCP 端口 7777)、IEEE-488(通过 VISA 的 GPIB) |
| 协议 | Lake Shore ASCII 命令,详见 Model 336(修订版 2.3)、Model 335(修订版 1.6)和 Model 350(修订版 1.7)用户手册第 6 章 |
| 状态 | 🧪 模拟:已通过带热模型的线级模拟器测试,尚未在硬件上验证。报告硬件测试结果 |
无需硬件即可试用
uvx labmcp-lakeshore --simulate --check
uvx labmcp-lakeshore --simulate --option sim_model=350 --option sim_speed=20 --check
模拟器模拟了一个温度为 4.2 K 的小型低温恒温器:一个平台(输入 A 为二极管,输入 C 类似 Cernox,由输出 1 加热)和一个样品(输入 B 为 Pt-100,由输出 2 加热),并采用 Lake Shore 的 PID 控制律和设定点斜坡功能。sim_speed 可让模拟时间比实际时间流逝得更快。
连接控制器
根据 *IDN? 检测型号;不支持其他 Lake Shore 型号(325、331、340、372 等)。
- 选择接口,在控制器的 Interface 菜单中操作(同一时间只能启用一个远程接口)。
- **USB:**安装 Lake Shore USB 驱动程序(通过 Windows Update 获取,或从 lakeshore.com 下载)。端口固定使用 57600 波特率、7 个数据位、奇校验、1 个停止位;服务会自动设置这些参数。
- **以太网(336、350):**在前面板上配置 IP 地址;命令端口为 TCP 7777(最多同时建立两个连接)。
- 测试连接:
uvx labmcp-lakeshore --address /dev/ttyACM0 --check # Linux uvx labmcp-lakeshore --address /dev/tty.usbmodemXXXX --check # macOS uvx labmcp-lakeshore --address COM5 --check # Windows uvx labmcp-lakeshore --address tcp://192.168.1.40:7777 --check uvx labmcp-lakeshore --address GPIB0::12::INSTR --check
添加到 MCP 客户端
Claude Code
claude mcp add cryostat -- uvx labmcp-lakeshore --address tcp://192.168.1.40:7777
Claude Desktop / Cursor / Windsurf(claude_desktop_config.json、.cursor/mcp.json 等)
{
"mcpServers": {
"cryostat": {
"command": "uvx",
"args": ["labmcp-lakeshore", "--address", "tcp://192.168.1.40:7777"]
}
}
}
添加 --read-only,即可读取温度和加热器状态,但会阻止更改设定点、斜坡、量程和 PID(all_heaters_off 仍可使用)。对于其他客户端,使用 uvx labmcp config lakeshore --address tcp://192.168.1.40:7777 --client vscode 生成配置片段(还支持 cursor、codex、claude-code)。
工具
| 工具 | 类型 | 描述 |
|---|---|---|
all_heaters_off | 🛑 safety | 关闭所有输出(输出 1-4 的加热器量程设为 0),相当于前面板上的 All Off 键,并停止任何正在运行的等待。报告每个输出读回的量程以及 all_off。 |
get_command_log | 👁 read | 返回最近发送到仪器的原始命令及收到的回复(最新记录在最后)。可用于调试和记录操作内容。 |
get_connection_info | 👁 read | 报告已连接的仪器(身份、地址、模拟或真实)、服务是否为只读,以及当前生效的安全限制。请先调用此工具。 |
get_heater_status | 👁 read | 报告每个输出的控制模式和输入、加热器量程、输出百分比、设定值(及开尔文值)、斜坡状态、PID 值和加热器错误(开路/短路)。读取加热器错误会清除控制器上的错误。 |
read_temperatures | 👁 read | 读取所有或选定的传感器输入:开尔文值、传感器原始单位、传感器类型、输入名称以及解码后的读数状态(无效、超量程/低于量程)。停用的输入会以 null 读数列出。 |
reconnect | 🛑 safety | 关闭并重新打开与仪器的连接(例如仪器断电重启或重新插拔线缆后)。 |
set_heater_range | ⚠️ hazard | 设置输出的加热器量程(每升一级,功率约增加 10 倍)。任何高于 0 的设置都会使输出加热:闭环模式下由 PID 控制,开环模式下则使用前面板的手动输出。若高于 max_heater_range,或闭环、分区或预热输出上已设定的设定值高于 max_setpoint_k,则会拒绝设置。请从能够达到设定值的最低量程开始。 |
set_pid | 🎛 control | 设置输出控制回路的 P、I 和 D 值(遵循 Lake Shore 约定)。 |
set_ramp | 🎛 control | 开启或关闭输出控制回路的设定值斜坡,并设置斜坡速率。开启斜坡后,下一次设定值更改会逐渐移动设定值,从而更好地保护样品和线缆。 |
set_setpoint | ⚠️ hazard | 以开尔文为单位设置输出回路的控制设定值。如果已开启设定值斜坡,设定值会按斜坡速率逐渐移向新值。只有输出处于闭环模式且加热器量程未关闭时才会加热。高于 max_setpoint_k 的值会被拒绝。 |
wait_for_stable_temperature | 👁 read | 等待 output 的控制输入在 stable_for_s 时间内保持在设定值的 tolerance_k 范围内(且设定值不再处于斜坡变化中),或直到达到 timeout_s。返回温度是否稳定、最终温度和降采样后的轨迹。不会更改任何设置。 |
get_connection_info、get_command_log 和 reconnect 是每个 LabMCP 服务的内置工具。
安全限制
| 限制 | 默认值 | 含义 |
|---|---|---|
max_setpoint_k | 325 K | set_setpoint 接受的最高设定值(室温加余量)。在允许加热前,set_heater_range 也会读回闭环、分区或预热输出的设定值,因此在前面板输入的更高设定值也会被拒绝(以传感器单位表示、无法检查的设定值同样会被拒绝)。仅当你的平台、线缆和传感器额定值更高时,才提高此值 |
max_heater_range | 3 | 最高加热器量程索引。在 335/336 上,3 = High(全功率);在 350 上,量程按十倍步进从 1 到 5,因此 3 是全功率的 1/100 |
max_wait_s | 3600 s | wait_for_stable_temperature 调用的最长等待时间 |
启动时覆盖:--limit max_setpoint_k=420 --limit max_heater_range=2。
示例提示词
- “读取所有温度,并告诉我是否有任何传感器报错。”
- “将输出 1 以 2 K/min 的速率斜坡升至 77 K,使用中等量程,然后等待输入 A 在 50 mK 范围内保持 5 分钟。”
- “让样品从 10 K 开始,以 10 K 为步长升至 300 K,并告诉我每个步长何时稳定。”(
max_setpoint_k需足够高) - “回路 1 的 PID 设置是什么?将 P 降至 30,保持 I 和 D 不变。”
- “出问题了——关闭所有加热器。”
备注
- 设置设定点不会启动加热;加热范围才会。 范围大于 0 时,输出会按 PID 回路的需求(闭环)或手动输出值(开环)加热。输出模式和控制输入在前面板上配置;服务不会更改这些设置,因为将回路指向错误的传感器可能导致热失控。
- 设定点始终以开尔文为单位。
SETP使用回路控制输入的首选单位:服务会转换摄氏度,并在输入设为传感器单位时拒绝执行。 - 每条命令后都会执行
*ESR?;命令错误(CME)和执行错误(EXE)会报告出来,而不会被忽略。按照手册要求,服务会在消息之间至少间隔 50 ms(--option min_interval_s=)。 get_heater_status会读取HTRST?,这会清除控制器上锁存的加热器开路/短路错误。wait_for_stable_temperature要求设定点停止斜坡变化(RAMPST?),且温度处于容差范围内。all_heaters_off会停止正在进行的等待。all_heaters_off会向每个输出发送RANGE n,0并读取返回值,操作方式与前面板上的 全部关闭 键相同。即使某个输出失败,也会尝试处理每个输出;只有当所有输出读取结果均为关闭时,all_off才为 true。它不会更改设定点或输出模式。也可考虑设置硬件温度限制(TLIMIT,前面板),作为最后一道防线。- 不支持 3062 扫描器选件(输入 D1-D5)、区域表、自动调谐、曲线、报警和继电器。Model 372 交流电阻电桥未经验证,因此在连接时会被拒绝。
硬件验证
| 型号 | 固件 | 接口 | 验证者 | 日期 |
|---|---|---|---|---|
| 暂时没有:来做第一个 |
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。