sdm-mcp
by lxkang00
README.md
# SDM Digital Multimeter MCP Server
基于 **SDM Programming Manual CN03-2** 编写的 MCP Server,通过 TCP/IP (SCPI 协议,端口 5024) 远程控制 Siglent SDM3000 系列数字万用表。
**适用型号**:SDM3055X-E、SDM3055X、SDM3045X、SDM3065X
## 快速开始
```bash
pip install -r requirements.txt
```
## 通信协议
| 项目 | 说明 |
|------|------|
| 物理层 | Ethernet (TCP/IP) |
| 端口 | **5024** |
| 协议 | Raw TCP Socket |
| 命令 | IEEE 488.2 + SCPI |
## 可用工具(26 个)
### 连接
| 工具 | 说明 |
|------|------|
| `connect` | 连接 DMM |
| `disconnect` | 断开 |
| `send_command` | 发送任意 SCPI 命令 |
| `get_id` | 设备 ID |
| `reset` | 恢复出厂 |
### 测量(核心)
| 工具 | 说明 |
|------|------|
| `measure` | **一键测量**:配置功能+量程+NPLC+自动调零 → 触发 → 读取值 |
| `read_value` | 快速读取当前值(不改设置) |
| `configure_function` | 配置测量功能+量程(不读数,用于重复 read) |
| `get_config` | 读取当前配置 |
测量功能:DCV/ACV/DCI/ACI/2W-Ω/4W-Ω/频率/周期/电容/通断/二极管/RTD/热电偶
### 相对值(NULL)
| 工具 | 说明 |
|------|------|
| `configure_relative` | 启用/禁用相对测量,设置参考值 |
### 限值测试
| 工具 | 说明 |
|------|------|
| `configure_limits` | 设置上下限、启用 PASS/FAIL 测试 |
| `get_limits` | 读取限值设置 |
### 统计
| 工具 | 说明 |
|------|------|
| `configure_statistics` | 启用/禁用、设置平均次数、清零 |
| `get_statistics` | 读取:平均值/最小值/最大值/标准差/峰峰值 |
### dB/dBm 刻度
| 工具 | 说明 |
|------|------|
| `configure_scale` | 配置 dB 或 dBm 刻度 |
### 温度
| 工具 | 说明 |
|------|------|
| `configure_temperature` | 配置 RTD/热电偶类型、单位 (C/F/K)、参考端 |
### 触发
| 工具 | 说明 |
|------|------|
| `configure_trigger` | 配置触发源/斜率/延迟/计数 |
| `trigger` | 发送软件触发 (*TRG) |
### 读数存储
| 工具 | 说明 |
|------|------|
| `configure_memory` | 设置存储点数、清零 |
| `get_memory_data` | 读取全部存储数据 |
### 直方图
| 工具 | 说明 |
|------|------|
| `configure_histogram` | 启用/量程/箱数/清零 |
| `get_histogram` | 读取直方图数据 |
### 系统
| 工具 | 说明 |
|------|------|
| `configure_system` | 蜂鸣器开关、通断阈值 |
| `get_network` | 读取网络设置 |
| `get_status` | 设备状态+错误队列 |
| `quick_snapshot` | 一键概览:功能+读数+NPLC+限值+相对+统计 |
## 使用示例
```
> connect host=192.168.1.102
Connected to 192.168.1.102:5024
> measure function=VOLT:DC nplc=10
Measuring VOLT:DC...
NPLC: 10.0
>>> +3.31495E+00
> configure_function function=RES auto_range=true
Configured: RES
Auto-Range: ON
> read_value
Reading: +1.00032E+03
> configure_statistics state=true count=100
Statistics:
- Statistics: ON
- Count: 100
> quick_snapshot
=== SDM Quick Snapshot ===
Device: Siglent,SDM3055X-E,...
Function: VOLT:DC
Reading: +3.31495E+00
NPLC: 10 | Auto-Zero: ON
Limits: OFF
Relative (NULL): OFF
Statistics: ON | Average: +3.31493E+00
```
## 项目结构
```
sdm-mcp/
├── server.py
├── requirements.txt
├── .mcp.json
├── README.md
├── .gitignore
└── sdm_mcp.log
```
## 兼容性
- SDM3045X (4.5 位)
- SDM3055X / SDM3055X-E (5.5 位)
- SDM3065X (6.5 位)
This server cannot be deployed
Maintenance
ActivityStale
ResponsivenessNo issues