mcpField
L
Lake Shore Temperature Controller

Lake Shore Temperature Controller

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

关于 Lake Shore Temperature Controller

面向使用 Lake Shore Cryotronics 335、336 和 350 温控器的实验室,提供温度读取、加热器控制与稳定性等待。支持多种仪器接口,并设有加热和设定值安全限制;目前仅经模拟器测试,尚未在硬件上验证。

主要功能

  1. 01读取传感器温度与加热器状态
  2. 02设置温度、斜坡、加热范围和 PID
  3. 03等待温度达到稳定条件
  4. 04关闭所有加热器并查看命令日志
  5. 05支持 USB、以太网和 GPIB

适用场景

  1. 01检查低温恒温器各传感器读数
  2. 02按斜坡程序调整温度并等待稳定
  3. 03查看 PID 参数并调整控制回路
  4. 04出现异常时关闭所有加热器

MCP 相关

作为 MCP 服务,它向 MCP 客户端提供温度读取、加热器状态查询、设定值与控制参数调整、稳定性等待及安全关闭等工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"k-dense-ai-labmcp-lakeshore": {
"command": "uvx",
"args": [
"labmcp-lakeshore"
],
"env": {
"LABMCP_ADDRESS": "<LABMCP_ADDRESS>",
"LABMCP_SIMULATE": "<LABMCP_SIMULATE>",
"LABMCP_READ_ONLY": "<LABMCP_READ_ONLY>",
"LABMCP_LIMITS": "<LABMCP_LIMITS>"
}
}
}
}
启动命令uvx labmcp-lakeshore
需要配置的环境变量
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-lakeshore0.1.3

工具

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 等)。

  1. 选择接口,在控制器的 Interface 菜单中操作(同一时间只能启用一个远程接口)。
  2. **USB:**安装 Lake Shore USB 驱动程序(通过 Windows Update 获取,或从 lakeshore.com 下载)。端口固定使用 57600 波特率、7 个数据位、奇校验、1 个停止位;服务会自动设置这些参数。
  3. **以太网(336、350):**在前面板上配置 IP 地址;命令端口为 TCP 7777(最多同时建立两个连接)。
  4. 测试连接:
    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_k325 Kset_setpoint 接受的最高设定值(室温加余量)。在允许加热前,set_heater_range 也会读回闭环、分区或预热输出的设定值,因此在前面板输入的更高设定值也会被拒绝(以传感器单位表示、无法检查的设定值同样会被拒绝)。仅当你的平台、线缆和传感器额定值更高时,才提高此值
max_heater_range3最高加热器量程索引。在 335/336 上,3 = High(全功率);在 350 上,量程按十倍步进从 1 到 5,因此 3 是全功率的 1/100
max_wait_s3600 swait_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 交流电阻电桥未经验证,因此在连接时会被拒绝。

硬件验证

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

评论

支持 Markdown

第一次接触 MCP?

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

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