Appearance
OpenPlant-MCP 使用说明书
1. 项目概述
OpenPlant-MCP 是一个基于 MCP (Model Context Protocol) 的 OpenPlant 工业数据查询代理工具。该项目为 AI 助手提供了与 OpenPlant 工业自动化系统进行交互的能力,使 AI 能够查询实时数据、测点静态信息和历史数据。通过标准化的 MCP 协议,实现了 AI 与工业数据系统的无缝集成。
2. 使用场景
2.1 工业数据分析
- 实时监控:AI 助手可以实时查询工业设备的运行状态和参数
- 趋势分析:通过历史数据查询,分析设备运行趋势和性能变化
- 故障诊断:结合实时和历史数据,协助进行设备故障诊断
2.2 智能运维
- 预测性维护:基于历史数据模式,预测设备维护需求
- 智能报表生成:基于历史数据查询结果,利用AI驱动的可视化引擎,自动生成多维度数据报表,支持自定义图表类型和分析维度,显著提升数据洞察效率和决策支持能力
- 实时异常监测:采用智能算法对实时数据流进行持续监控,通过阈值分析、趋势预测和模式识别技术,实现异常状态的早期预警和快速响应
- 报告生成:自动生成设备运行报告和数据分析报告
2.3 决策支持
- 生产优化:通过数据分析,优化生产流程和参数设置
- 能耗管理:监控和分析能源消耗数据,提供节能建议
- 质量控制:实时监控产品质量相关参数
3. 作用和意义
3.1 技术价值
- 标准化接口:提供标准化的 MCP 协议接口,便于 AI 系统集成
- 数据互通:打通 AI 与工业数据系统之间的数据壁垒
- 实时响应:支持实时数据查询,满足快速响应需求
3.2 业务价值
- 提升效率:通过 AI 辅助,提高数据分析和决策效率
- 降低成本:减少人工数据查询和分析的工作量
- 增强洞察:利用 AI 能力,发现数据中的深层模式和洞察
3.3 战略意义
- 数字化转型:推动工业企业的数字化和智能化转型
- 竞争优势:通过数据驱动的决策,提升企业竞争力
- 创新驱动:为工业 AI 应用创新提供基础设施支持
4. 核心功能
4.1 测点静态信息查询 (point_static_info_query)
- 功能描述:查询测点的静态配置信息
- 输入参数:
keyword
:关键字模糊搜索(覆盖点名、别名、描述)page
:页码(默认为1)size
:每页数量(默认为20)
- 返回数据:
- 测点详细配置信息,包括ID、类型、量程、报警限值等
- 测点详细配置信息,包括ID、类型、量程、报警限值等
4.2 实时数据查询 (point_realtime_query)
- 功能描述:查询指定测点的实时数值
- 输入参数:
gn
:测点全局名称,格式为 XX.XX.XX
- 返回数据:
- 测点ID、全局名称、实时值、状态、时间戳
- 测点ID、全局名称、实时值、状态、时间戳
4.3 历史数据查询 (point_history_values_query)
- 功能描述:查询指定时间范围内的历史数据
- 输入参数:
gn
:测点全局名称begin
:开始时间(格式:YYYY-MM-DD HH:MM:SS)end
:结束时间(格式:YYYY-MM-DD HH:MM:SS)mode
:查询模式,支持以下模式:raw
:原始值 - 返回原始采集的数据点arch
:原始值 - 与raw相同,返回原始数据span
:等间距 - 按指定时间间隔返回数据点plot
:绘图值 - 适合绘图显示的数据点flow
:流量值 - 流量相关的计算值max
:最大值 - 指定时间间隔内的最大值min
:最小值 - 指定时间间隔内的最小值avg
:面积平均值 - 基于面积加权的平均值mean
:算术平均值 - 简单算术平均值stdev
:标准方差 - 数据的标准偏差sum
:算术和 - 指定时间间隔内的数值总和
interval
:查询间隔(秒)page
:页码size
:每页数量
- 返回数据:
- 历史数据记录,包括时间戳、数值、状态等
- 历史数据记录,包括时间戳、数值、状态等
5. 安装配置
5.1 环境要求
- Go 1.24.2 或更高版本
- OpenPlant 系统访问权限
- 网络连接到 OpenPlant 服务器
5.2 依赖安装
bash
go mod download
5.3 编译构建
bash
go build -o openplant-mcp main.go
6. 使用方法
6.1 命令行参数
bash
./openplant-mcp [选项]
选项:
-ip string OpenPlant 服务器地址 (默认: "127.0.0.1")
-port int OpenPlant 服务器端口 (默认: 8200)
-user string 用户名 (默认: "sis")
-password string 密码 (默认: "openplant")
6.2 启动示例
bash
# 使用默认配置启动
./openplant-mcp
# 指定服务器地址和端口
./openplant-mcp -ip 192.168.1.100 -port 8200 -user admin -password mypassword
6.3 MCP 集成
该工具作为 MCP 服务器运行,通过标准输入输出与 MCP 客户端通信。可以集成到支持 MCP 协议的 AI 助手中,如 Claude Desktop 、Trae等。
7. API 接口说明
7.1 实时数据查询接口
json
{
"method": "tools/call",
"params": {
"name": "point_realtime_query",
"arguments": {
"gn": "PLANT.UNIT1.TEMP01"
}
}
}
响应示例:
json
[
{
"ID": 1024,
"GN": "PLANT.UNIT1.TEMP01",
"AV": 85.5,
"DS": 0,
"TM": "2024-01-15 14:30:25"
}
]
7.2 静态信息查询接口
json
{
"method": "tools/call",
"params": {
"name": "point_static_info_query",
"arguments": {
"keyword": "温度",
"page": 1,
"size": 10
}
}
}
7.3 历史数据查询接口
json
{
"method": "tools/call",
"params": {
"name": "point_history_values_query",
"arguments": {
"gn": "PLANT.UNIT1.TEMP01",
"begin": "2024-01-15 00:00:00",
"end": "2024-01-15 23:59:59",
"mode": "raw",
"interval": 60,
"page": 1,
"size": 100
}
}
}
8. 数据模型
8.1 实时数据结构
go
type Realtime struct {
ID int32 // 测点ID
GN string // 测点全局名称
AV interface{} // 测点实时值
DS int16 // 测点状态
TM string // 测点时间
}
8.2 测点静态信息结构
go
type OPPoint struct {
ID int32 // 测点ID
RT int32 // 点的类型
PN string // 点名
AN string // 别名
ED string // 描述
PT int32 // 点的来源
// ... 其他字段
}
9. 错误处理
9.1 常见错误
- 连接失败:检查网络连接和服务器地址
- 认证失败:验证用户名和密码
- 测点不存在:确认测点全局名称格式正确
- 时间格式错误:使用正确的时间格式 YYYY-MM-DD HH:MM:SS
9.2 调试建议
- 查看控制台输出的错误信息
- 验证 OpenPlant 服务器状态
- 检查测点配置和权限
10. 最佳实践
10.1 性能优化
- 合理设置分页参数,避免一次查询过多数据
- 历史数据查询时,选择合适的时间范围和间隔
- 使用适当的查询模式以获得最佳性能
10.2 安全建议
- 使用强密码和安全的网络连接
- 定期更新认证凭据
- 限制网络访问权限
10.3 监控建议
- 监控服务运行状态
- 记录查询日志以便问题排查
- 定期检查数据质量和完整性