EMQX 采用商业源码许可证,加速 MQTT + AI 创新 →

自然语言 + 工业数据:AI agent 驱动的 IIoT 数据探索实践

Rocky Jin
2025-5-30
自然语言 + 工业数据:AI agent 驱动的 IIoT 数据探索实践

概览

随着人工智能(AI)技术的快速发展,越来越多的工业企业开始探索其在智能制造与工业数据分析中的应用潜力。与此同时,工业物联网(IIoT)持续推动设备互联与数据采集方式的演进,为 AI 赋能工业场景提供了坚实的数据基础。

本文展示了一个融合多项前沿技术的 IIoT 数据探索与分析演示应用。该应用结合大语言模型(LLM)、RAG(Retrieval-Augmented Generation)、MCP 协议、Sparkplug B 协议、MQTT 消息中间件、时序数据库以及关系数据库等基础软件,实现了一个智能化、交互式的工业数据应用——用户只需通过应用使用自然语言在对话框中输入问题,即可快速完成设备数据查询、历史指标分析和状态监控。系统还能将产品手册向量化,当检测到设备上报错误代码时,自动为用户提供对应的解决方案,帮助快速定位与解决问题。

希望读者可以通过本文获得一些关于 AI 驱动 IIoT 应用开发的启发,在工业制造场景中充分利用 AI 的价值。

场景模拟

我们假设了一个典型的工业场景,并通过 SparkPlug B 协议定义了以下的结构:

  • 工厂:SparkPlug 中定义的标识为 factory_1
  • 生产线:SparkPlug 中定义的标识为 assembly_1
  • 具体的设备:SparkPlug 中定义的标识为 demo(为该设备取外号名为“擎天柱”,该信息保存在第三方的关系型数据库中)

在本 demo 中我们模拟了 ABB FlexPendant 虚拟设备的运行数据,并使用了其公开文档作为知识库。ABB FlexPendant 是一款手持式触摸屏设备,用于编程和控制工业机器人。该设备作为机器人控制器的用户界面,允许操作员执行多种操作,如更改和运行程序、教授机器人新的动作以及调整参数。为了简化问题,我们定义了如下的采集点位,分别代表的是:

  • 机械臂的电压、电流值点位
  • 诊断错误号码
{
  "robotic_arm": { "voltage": 3.14, "current": 5.0},
  "diagnose": {"error_code": 50153}
}

交互场景示例

用户可以通过 AI 对话框跟系统进行交互,系统内置了相关的 Agentic,集成了各种 MCP 服务,会根据用户的需求自动生成相关的查询请求,并返回数据分析结果报告。典型的交互场景如下:

  • 列出设备 demo 的树形结构:AI 查询相关的数据,展示设备的逻辑结构图;
  • 查询设备 demo 最新的 robotic_arm/voltage 点位数据:AI 查询 demo 设备上点位 robotic_arm/voltage 上报的最新数据;
  • 分析过去一周设备 demo 的 robotic_arm/voltage 点位数据:AI 查询并分析 demo 设备 robotic_arm/voltage 点位保存在 TDengine 数据库中一周的数据,该数据量可能会比较多,AI 会根据内置相关指令,自动对数据进行聚合,并给出相关的分析报告;
  • 查询设备别名为擎天柱的最新的 robotic_arm/current 点位数据:由于用户查询的是别名擎天柱,AI 会尝试从 MariaDB MCP 服务中找到对应名为 demo 的设备 ID ,然后获取最新点位数据;
  • 查询设备 demo 最新的 diagnose/error_code 点位数据:AI 根据 diagnose/error_code 上报的点位数据,通过 RAG 技术从向量库中获取相关的手册知识,并呈现给用户完整的错误报告以及解决方案;
  • 分析过去一天设备 demo 的 diagnose/error_code 点位数据:AI 查询过去一天的诊断错误号码,结合向量库中的运维手册,生成完整的错误报告、解决方案以及建议等;

效果演示

列出设备 demo 的树形结构

以下为用户输入“列出设备 demo 的树形结构”的运行结果截图

image.png

查询设备别名为"擎天柱"的最新 robotic_arm/current 点位数据

1. 概览

  • 分析时间范围:最新数据点(实时)
  • 数据量统计:1 条记录
  • 关键发现摘要
    • 设备别名为"擎天柱"(实际设备key为demo)的最新电流值为 2.5A

2. 详细分析

时间戳 设备别名 实际设备Key 点位路径 数值(A)
[最新] 擎天柱 demo robotic_arm/current 2.5

3. 诊断与建议

  • 当前状态评估: 该电流值处于正常范围内(ABB FlexPendant机器人典型工作电流为2-6A)
  • 建议操作
    1. 持续监控该值变化趋势
    2. 如果持续低于3A,建议检查:
      • 机械臂负载是否过轻
      • 程序运行是否完整执行
      • 供电电压是否稳定

4. 补充说明

本报告基于单点瞬时数据生成,如需趋势分析建议查询时间范围数据。ABB FlexPendant设备的电流值正常波动范围为±10%标称值。


分析过去一周设备 demo 的 robotic_arm/voltage 点位数据

设备名称: demo 分析点位: robotic_arm/voltage 时间范围: 2025-05-13 至 2025-05-20

1. 数据概览

  • 总数据量: 8982条原始记录
  • 采样策略: 6小时均值聚合(共28个数据点)
  • 电压范围: -17.40V ~ 3.40V

关键发现

  1. 主电压稳定值: 3.40V(占多数时间段)
  2. 异常低电压: -17.40V(需重点排查)

….

查询设备 demo 最新的 diagnose/error_code 点位数据,并查询相关知识库获取诊断信息

1. 概览

  • 设备名称: demo
  • 分析时间: 最新数据
  • 数据点位: diagnose/error_code
  • 关键发现: 设备当前存在错误代码10139

2. 错误详情

错误代码 错误类型
10139 编辑主监控超时导致的"停止执行"事件

3. 诊断分析

错误描述: 该错误表示由于编辑主监控超时,系统作为安全措施已停止执行。

影响范围:

  • RAPID程序执行被中断
  • 机器人操作暂停

可能原因:

  1. RAPID和编辑主程序执行期间未定期发送看门狗命令
  2. RobotControlMate连接异常(如果使用)
  3. 系统监控参数配置不当

4. 解决方案建议

立即措施:

  1. [基础方案]

    • 检查并重新启动RAPID程序执行
    • 验证RobotControlMate连接状态(如使用)
  2. [配置修改方案]

    若未使用RobotControlMate:

    1. 进入控制器配置界面
    2. 定位到Controller/OperatorSafety/Heartbeat参数
    3. 将值修改为"False"
    4. 保存并重启系统
    

长期预防:

  1. 定期检查看门狗命令发送机制
  2. 建立心跳监测日志记录系统
  3. 考虑升级到最新版控制系统软件

5. 注意事项

  • ⚠️修改配置参数前请备份当前设置
  • ⚠️重启可能导致未保存的程序变更丢失
  • ⚠️建议在非生产时段执行维护操作

是否需要提供更详细的RAPID程序调试指导或其他相关信息?

相关技术和软件

本应用所用到的软件列表如下所示:

image.png

  • 工业数据采集软件 - NeuronEX
    • 定义采集数据,以及北向的 Sparkplug B 插件,将点位数据以 Sparkplug B 协议格式上报到云端。
  • 消息中间件 - EMQX
    • 用于接收从边缘上报的 Sparkplug B 的数据报文;
    • Sparkplug App 通过相关主题订阅到上报的数据,将数据存入时序库中。
  • 时序数据库 - TDengine
    • 保存设备上报的点位数据,并提供灵活的数据访问能力。
  • 关系数据库 - MariaDB
    • 保存设备和外号的对应关系,比如 demo 设备的外号为“擎天柱”,用于对应 OT 系统和 IT 系统之间的关联关系。在实际业务系统中,这代表 IT 系统保存的业务数据,比如 MES、ERP 和 CRM 等信息。
  • 大模型 (LLM) - Deepseek v3
    • 由硅基流动提供的 Deepseek v3 大模型。
  • RAG(知识库)
    • 支持 BAAI/bge-base-en-v1.5 和 Aliyun 向量模型;
    • 向量数据库采用了本地的 MilvusVectorStore;
    • 将用户操作手册的内容通过向量模型向量化,保存到向量数据库中;如果用户查询的是错误码,则应用会到向量库查询,大模型会结合向量库返回的内容输出解决方案和建议。
  • MCP
    • 封装了时序数据 TDengine 的 MCP 服务,用于获取设备上报的点位数据,以及节点、设备上下线等信息;
    • 封装了关系型数据 MariaDB 的 MCP 服务,用于保存设备 OT 数据和业务 IT 数据之间的对应关系,比如 OT 中设备上报自己的标识符为 demo,在 IT 中人们称之为“擎天柱”,而查询的时候用户更倾向于用 IT 中的别名或者外号对设备进行数据的查询。

相关的代码我们都已经开源,读者可以通过 GitHub - emqx/uns-demo: Use natural language to explore IIoT Sparkplug B data by leveraging MCP, AI and agent 获取到相关源码。

总结

本文简单介绍了如何利用 AI 和各种基础软件搭建一个前沿的 IIoT 数据探索应用,为读者构建自己专属的 AI +工业应用提供一些思路。EMQ 工业团队正在规划将 Sparkplug B 数据上报、存储和基于 AI 分析功能正式集成到 ECP 产品中,预计将于下半年发布。欢迎感兴趣的读者联系我们的销售团队进行优先体验。

咨询 EMQ 技术专家
联系我们 →

推荐阅读

2022-9-15
工厂生产数据实时分析,产品质量高效管控

EMQ 基于云原生和云边协同的产品质量溯源解决方案,在现场设备端可实现数据的实时采集分析和异常报警,在云端实现工厂海量数据的统一接入存储,满足智慧工厂质量溯源需求。