关于 LabJack T-series DAQ
LabJack T-series DAQ 是面向 LabJack T4、T7/T7-Pro 和 T8 数据采集设备的 MCP 服务,通过 LJM 读取模拟量、热电偶和数字线,也可采集波形及设置输出。目前仅经模拟 LJM 后端测试,尚未在硬件上验证。
主要功能
- 01读取模拟输入与设备温度
- 02采集热电偶温度
- 03读取数字输入状态
- 04流式采集并保存波形
- 05设置 DAC 和数字输出
适用场景
- 01读取多个模拟通道并检查浮空输入
- 02以指定速率采集波形并计算统计值
- 03读取热电偶并跟踪温度变化
- 04设置 DAC 输出并检查回路读数
MCP 相关
该 MCP 服务向客户端提供 LabJack 设备信息、模拟与数字读数、热电偶和流式采集工具,并提供 DAC 与数字输出控制工具。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
uvx labmcp-labjackLABMCP_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 周前
此工具无需参数。
详细介绍
LabJack T-series 数据采集设备 — MCP 服务
让 AI Agent 通过 LabJack 官方 LJM 库读取模拟输入、流式传输波形、读取热电偶、检查数字线路,并在获得你的许可后设置 LabJack T4、T7/T7-Pro 和 T8 数据采集设备上的 DAC 和数字输出。
| 软件包 | labmcp-labjack |
| 仪器 | LabJack T4、T7、T7-Pro、T8(及其 OEM 版本) |
| 接口 | USB、以太网、WiFi(T7-Pro) |
| 协议 | LJM 库 + T-series Modbus 寄存器映射(T-Series 数据手册、寄存器映射 ljm_constants.json、labjack-ljm Python 封装) |
| 状态 | 🧪 模拟:已通过模拟 LJM 后端测试,尚未在硬件上验证。报告硬件测试结果 |
无需硬件即可试用
uvx labmcp-labjack --simulate --check
uvx labmcp-labjack --simulate --option sim_model=T8 --check # T4, T7, T7-Pro (default) or T8
模拟器将 2 V / 10 Hz 正弦波连接到 AIN0,将热敏电阻分压器(约 2.5 V)连接到 AIN1,将 DAC0 回接到 AIN2,将 LM34 冷端传感器连接到 AIN3;使用热电偶功能时,还会将约 37 °C 的热电偶连接到 AIN0-AIN3。其他输入均接地。
连接你的 LabJack
- 安装 LJM(原生库和 USB 驱动),请访问 labjack.com/support/software/installers/ljm。此服务会自动安装
labjack-ljmPython 软件包,但仍需安装该原生库。 - 关闭其他 LabJack 软件(Kipling、LJLogM、LJStreamM)。通过 USB 连接时,一个设备同一时间只能被一个进程占用。
- 测试连接:
uvx labmcp-labjack --check # first LabJack found uvx labmcp-labjack --address 470012345 --check # by serial number uvx labmcp-labjack --address 192.168.1.207 --option connection_type=ETHERNET --check uvx labmcp-labjack --option device_type=T4 --check # only open a T4--address是 LJM 标识符:序列号、IP 地址、设备名称或ANY(默认值)。
添加到你的 MCP 客户端
Claude Code
claude mcp add labjack -- uvx labmcp-labjack --address 470012345
Claude Desktop / Cursor / Windsurf(claude_desktop_config.json、.cursor/mcp.json、……)
{
"mcpServers": {
"labjack": {
"command": "uvx",
"args": ["labmcp-labjack", "--address", "470012345"]
}
}
}
添加 --read-only 以允许测量,但阻止 DAC 和数字输出工具(set_outputs_safe 仍可使用)。添加 --option safe_dio=FIO0,FIO1,使 set_outputs_safe 始终释放这些线路,即使其他程序已驱动它们。对于其他客户端,可使用 uvx labmcp config labjack --client vscode 生成配置片段(也支持 cursor、codex、claude-code)。
工具
| 工具 | 类型 | 描述 |
|---|---|---|
get_command_log | 👁 读取 | 返回最近发送给仪器的原始命令和收到的回复(最新记录在最后)。可用于调试和记录操作内容。 |
get_connection_info | 👁 读取 | 报告当前连接的仪器(身份、地址、模拟或真实)、服务是否为只读,以及当前启用的安全限制。请先调用此工具。 |
get_device_info | 👁 读取 | 识别已连接的 LabJack(型号、序列号、固件、连接),并列出其功能:模拟输入、有效输入范围、分辨率索引、DAC 范围、数字线路和流速率。配置通道前请调用此工具。 |
read_analog_inputs | 👁 读取 | 通过命令—响应方式读取一个或多个模拟输入一次,并返回电压值。 |
read_device_temperature | 👁 读取 | 读取 LabJack 的内部温度传感器(°C,精度约为 ±2 °C)和估算的环境气温。对于 T8,还会返回每个 AIN 端子旁的传感器读数。流正在运行时无法读取。 |
read_digital_inputs | 👁 读取 | 报告数字 I/O 线路的逻辑电平和方向(输入/输出/模拟)。 |
read_thermocouple | 👁 读取 | 使用 T7/T8 AIN 热电偶扩展功能(B、C、E、J、K、N、R、S、T 型)读取热电偶,并返回 °C、测得的电压和冷端温度。 |
reconnect | 🛑 安全 | 关闭并重新打开与仪器的连接(例如,仪器断电重启或重新插拔线缆后)。 |
set_digital_output | ⚠️ 危险 | 将数字线路设为输出,并驱动为高电平(3.3 V)或低电平(0 V)。 |
set_outputs_safe | 🛑 安全 | 将输出置于安全状态:停止任何流,将 DAC0 和 DAC1 设为 0 V,并将此服务驱动过的所有数字线路(以及 safe_dio 选项中的线路)释放为输入;也可以用 dio_mode='low' 将它们驱动为低电平。完成操作或发现异常时请使用。 |
stream_analog | 👁 读取 | 通过硬件定时,在一个或多个模拟输入上采集波形(LJM 流模式),并返回各通道统计数据及降采样波形;还可选择将全部数据保存为 CSV。 |
write_dac | ⚠️ 危险 | 将模拟输出(DAC0/DAC1)设为直流电压。输出会保持该值,直到更改设置或调用 set_outputs_safe。 |
get_connection_info、get_command_log 和 reconnect 内置于每个 LabMCP 服务中。命令日志会记录每次 LJM 寄存器读取和写入。
安全限制
| 限制 | 默认值 | 含义 |
|---|---|---|
max_dac_voltage_v | 5 V | Agent 可设置的最高 DAC 电压(硬件范围:T4/T7 为 0-5 V,T8 为 0-10 V) |
max_stream_duration_s | 60 s | 硬件定时流的最长时长 |
max_scan_rate_hz | 10 000 Hz | 最高流扫描速率(仍受设备最大值限制) |
启动时可覆盖,例如:--limit max_dac_voltage_v=2.5。发送任何内容前都会检查限制。流的总采样数也限制为 200 万。
示例提示词
- “以 ±1 V 量程读取 AIN0-AIN3,并告诉我哪些通道看起来处于浮空状态。”
- “以 5 kHz 对 AIN0 和 AIN1 采样 2 秒,给出每个通道的均方根值和峰峰值,并将数据保存到 ~/data/run12.csv。”
- “每隔 10 秒读取 AIN2 上的 K 型热电偶,持续一分钟,并告诉我它是否仍在升温。”
- “将 DAC0 设为 1.25 V,然后检查 AIN2 上的回环,并以毫伏为单位报告误差。”
- “目前哪些数字线路设为输出?它们的电平是多少?”
- “我们结束了——将所有输出恢复到安全状态。”
说明
- 会强制执行型号差异。 有效输入范围(
AIN#_RANGE)和分辨率索引取自 LabJack 的寄存器映射:T7 为 ±10/±1/±0.1/±0.01 V,索引为 0-8(T7-Pro 为 0-12,但 9-12 无法用于流式采集);T8 为 ±11 … ±0.018 V,索引为 0-16(所有输入共用一个索引);T4 为固定范围(AIN0-3 为 ±10 V,AIN4-11 为 0-2.5 V),索引为 0-5。DAC 范围:T4/T7 为 0-5 V,T8 为 0-10 V。 - 设置会持久保留。 通过
read_analog_inputs设置的范围、分辨率和差分设置会保留在设备上,直到更改设置或断电。省略的设置保持原样;每次读数都会报告测量所依据的参考端(GND、T7 的负输入端或 T8 的隔离端子)。 - 读取数字线路不会改变其方向。
read_digital_inputs使用DIO_STATE/DIO_DIRECTION位掩码。(读取FIO3之类的单线路寄存器会将该线路切换为输入。) - T4 灵活 I/O。 AIN4-AIN11 与 FIO4-EIO3 共用端子。当线路为数字输出时,服务会拒绝读取这些 AIN,因为读取操作会将其切换为模拟模式,并释放其当前驱动的对象。
set_outputs_safe的默认值是input,即 T 系列设备上电时的状态(带上拉的输入)。如果连接的继电器板会将带上拉的输入视为“开启”,请改用dio_mode="low"。- 热电偶使用 AIN 扩展功能(
AIN#_EF_INDEX20-30)。当cjc="internal"时,CJC 寄存器会设为其文档规定的默认值TEMPERATURE_DEVICE_K(地址 60052),T8 固件会将其映射到各通道自身的端子传感器(TEMPERATURE#_CAPTURE);cjc="lm34"使用 LabJack 的 LM34 转换方式(55.56 K/V,255.37 K)。输入端开路时会返回valid=false(设备报告 -9999)。 - 流式采集遵循 LabJack 的
stream_basic.py示例(内部时钟、无触发、自动稳定)。流式采集运行期间,设备会阻止命令-响应式模拟读取。跳过的扫描(缓冲区溢出)会被报告,并留空。set_outputs_safe不会等待正在运行的流式采集:它会在下一次读取时停止采集(返回的部分结果中会包含aborted: true)。流式采集的速度为每秒 1 次扫描或更快(以便及时停止),且至少会执行两次扫描;max_stream_duration_s限制检查的就是这一实际时长。返回的波形会通过保留每个区块的最小值和最大值进行降采样,因此不会丢失短暂尖峰;save_path必须指向一个新的.csv文件(绝不会覆盖已有文件,且会在开始流式采集前检查路径)。 - **导入 LJM 封装库时,**如果缺少原生库,就会向 stdout 打印内容。服务会重定向导入输出,确保 MCP 标准输入输出通道不会受到干扰,并提供明确的安装提示。
硬件验证
| 型号 | 固件 | 接口 | 验证者 | 日期 |
|---|---|---|---|---|
| 暂无:成为首位验证者 |
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。